aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/commands.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/commands.lisp')
-rw-r--r--lisp/commands.lisp14
1 files changed, 14 insertions, 0 deletions
diff --git a/lisp/commands.lisp b/lisp/commands.lisp
index e92c8b2..2e406ad 100644
--- a/lisp/commands.lisp
+++ b/lisp/commands.lisp
@@ -128,3 +128,17 @@ remove all tags from bookmark."
Print the version number and exit."
(format t "clark version ~A~%" version))
+
+(defcommand tags (&optional (num 0))
+ "List a number of or all tags."
+ "Usage: clark tags [<num>]
+
+Print a list of tags and the number of bookmarks tagged with it
+ordered by that number. If NUM is given, only print the first NUM
+tags."
+ (let ((num (if (integerp num) num (parse-integer num)))
+ (counter 1))
+ (dolist (tag (tag-list))
+ (format t "~30A~10D~%" (car tag) (cadr tag))
+ (if (> (incf counter) num 0)
+ (return)))))