changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/bin/packy.lisp

changeset 650: 692dfd7f02d0
parent: 35bb0d5ec95e
child: af486e0a40c9
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 13 Sep 2024 20:30:55 -0400
permissions: -rw-r--r--
description: update with-cli syntax
1 (defpackage :bin/packy
2  (:use :cl :std :sb-ext :cli :packy :clap :log)
3  (:export :main))
4 
5 (in-package :bin/packy)
6 
7 ;;; CLI
8 (defvar *pk-targets* nil)
9 (defopt pk-help (print-help *cli*))
10 (defopt pk-version (print-version *cli*))
11 (defopt pk-log-level (when *arg* (setq *log-level* :debug)))
12 (defopt pk-target (setq *pk-targets* *arg*))
13 (defcmd pk-show (print (list *optc* *argc* *opts* *args* *pk-targets*)))
14 
15 (define-cli *cli*
16  :name "packy"
17  :version "0.1.0"
18  :description "Universal Package Manager"
19  :thunk 'pk-show
20  :opts ((:name "level" :global t :description "set the log level" :thunk pk-log-level)
21  (:name "help" :global t :description "print help" :thunk pk-help)
22  (:name "version" :global t :description "print version" :thunk pk-version))
23  :cmds ((:name show
24  :opts (:name "target" :thunk pk-target)
25  :thunk pk-show)))
26 
27 (defun run ()
28  (let ((*log-level* :info))
29  (with-cli (*cli* opts cmds args) (cli:args)
30  (do-cmd *cli*)
31  (debug-opts *cli*))))
32 
33 (defmain ()
34  (let ((*print-readably* t))
35  (run)
36  (sb-ext:exit :code 0)))