1.1--- a/install.org Sun Dec 03 23:25:08 2023 -0500
1.2+++ b/install.org Mon Dec 04 21:13:35 2023 -0500
1.3@@ -25,7 +25,6 @@
1.4 -h, --help Print help
1.5 -V, --version Print version
1.6 #+end_example
1.7-
1.8 * TODO Packages
1.9 - State "TODO" from [2023-11-25 Sat 18:28]
1.10 ** Crates :rust:
1.11@@ -33,6 +32,16 @@
1.12 ** Quicklisp :lisp:
1.13 ** AUR :pacman:
1.14 * Images
1.15+We also ship FASL images for Lisp. These images can be downloaded and
1.16+loaded using the =--core= option of your lisp compiler like so:
1.17+
1.18+#+begin_src shell
1.19+sbcl --core std.core
1.20+#+end_src
1.21+
1.22+See [[https://www.sbcl.org/manual/#FASL-Format][FASL Format]] for details. Keep in mind that the FASL format is not
1.23+portable - they are tied to a specific version of the compiler and we
1.24+don't keep old versions around for long.
1.25 * Apps
1.26 ** Lisp
1.27 *** cli/skel
1.28@@ -48,10 +57,10 @@
1.29 : Load 1 ASDF system:
1.30 : cli/skel
1.31 : ; Loading "cli/skel"
1.32-: .....
1.33-: compressed 32768 bytes into 5073 at level 9
1.34-: compressed 236388352 bytes into 9360505 at level 9
1.35-: compressed 8388608 bytes into 2580716 at level 9
1.36+: ....
1.37+: compressed 32768 bytes into 5088 at level 9
1.38+: compressed 236388352 bytes into 9411692 at level 9
1.39+: compressed 8388608 bytes into 2588862 at level 9
1.40 : compressed 0 bytes into 9 at level 9
1.41
1.42 *** cli/organ
1.43@@ -63,6 +72,18 @@
1.44 #+end_src
1.45
1.46 #+RESULTS:
1.47+#+begin_example
1.48+To load "cli/organ":
1.49+ Load 1 ASDF system:
1.50+ cli/organ
1.51+; Loading "cli/organ"
1.52+..................................................
1.53+[package cli/organ].
1.54+compressed 32768 bytes into 5082 at level 9
1.55+compressed 236388352 bytes into 9296021 at level 9
1.56+compressed 8355840 bytes into 2571330 at level 9
1.57+compressed 0 bytes into 9 at level 9
1.58+#+end_example
1.59
1.60 *** cli/rdb
1.61 #+begin_src shell :results pp replace :exports code
1.62@@ -78,9 +99,9 @@
1.63 : cli/rdb
1.64 : ; Loading "cli/rdb"
1.65 : ..
1.66-: compressed 32768 bytes into 5094 at level 9
1.67-: compressed 236388352 bytes into 9175348 at level 9
1.68-: compressed 8257536 bytes into 2543259 at level 9
1.69+: compressed 32768 bytes into 5087 at level 9
1.70+: compressed 236388352 bytes into 9214043 at level 9
1.71+: compressed 8257536 bytes into 2554086 at level 9
1.72 : compressed 0 bytes into 9 at level 9
1.73
1.74 *** cli/homer
1.75@@ -92,15 +113,18 @@
1.76 #+end_src
1.77
1.78 #+RESULTS:
1.79-: To load "cli/homer":
1.80-: Load 1 ASDF system:
1.81-: cli/homer
1.82-: ; Loading "cli/homer"
1.83-: ...
1.84-: compressed 32768 bytes into 5082 at level 9
1.85-: compressed 236388352 bytes into 9367349 at level 9
1.86-: compressed 8388608 bytes into 2578766 at level 9
1.87-: compressed 0 bytes into 9 at level 9
1.88+#+begin_example
1.89+To load "cli/homer":
1.90+ Load 1 ASDF system:
1.91+ cli/homer
1.92+; Loading "cli/homer"
1.93+..................................................
1.94+[package cli/homer]
1.95+compressed 32768 bytes into 5074 at level 9
1.96+compressed 236388352 bytes into 9388341 at level 9
1.97+compressed 8388608 bytes into 2586302 at level 9
1.98+compressed 0 bytes into 9 at level 9
1.99+#+end_example
1.100
1.101 ** Rust
1.102 *** cli/cc-init
2.1--- a/lisp/app/cli/homer.lisp Sun Dec 03 23:25:08 2023 -0500
2.2+++ b/lisp/app/cli/homer.lisp Mon Dec 04 21:13:35 2023 -0500
2.3@@ -1,9 +1,34 @@
2.4 ;;; homer.lisp --- homectl utility
2.5
2.6 ;;; Code:
2.7-(uiop:define-package :cli/homer
2.8- (:use :cl :std))
2.9+(defpackage :cli/homer
2.10+ (:use :cl :std :std/log :std/fmt)
2.11+ (:export :main))
2.12
2.13 (in-package :cli/homer)
2.14
2.15-(defmain ())
2.16+(defopt homer-help (print-help $cli))
2.17+(defopt homer-version (print-version $cli))
2.18+(defopt homer-log-level (setq *log-level* (when $val :debug)))
2.19+
2.20+(defcmd homer-show)
2.21+
2.22+(define-cli $cli
2.23+ :name "homer"
2.24+ :version "0.1.0"
2.25+ :description "home manager"
2.26+ :opts (make-opts
2.27+ (:name level :global t :description "set the log level" :thunk homer-log-level)
2.28+ (:name help :global t :description "print help" :thunk homer-help)
2.29+ (:name version :global t :description "print version" :thunk homer-version))
2.30+ :cmds (make-cmds
2.31+ (:name show :thunk homer-show)))
2.32+
2.33+(defun run ()
2.34+ (with-cli (opts cmds args) $cli
2.35+ (do-cmd $cli)
2.36+ (debug-opts $cli)))
2.37+
2.38+(defmain ()
2.39+ (run)
2.40+ (sb-ext:exit :code 0))
3.1--- a/lisp/app/cli/organ.lisp Sun Dec 03 23:25:08 2023 -0500
3.2+++ b/lisp/app/cli/organ.lisp Mon Dec 04 21:13:35 2023 -0500
3.3@@ -2,61 +2,50 @@
3.4
3.5 ;;; Code:
3.6 (defpackage :cli/organ
3.7- (:use :cl :organ :std)
3.8+ (:use :cl :organ :std :std/fmt)
3.9 (:export :main))
3.10
3.11 (in-package :cli/organ)
3.12
3.13 (defopt organ-help (print-help $cli))
3.14 (defopt organ-version (print-version $cli))
3.15-(defopt organ-debug (setq *log-level* (if $val :debug nil)))
3.16+(defopt organ-log-level (setq *log-level* (if $val :debug nil)))
3.17
3.18 (defcmd organ-inspect (inspect (read-org-file (car $args))))
3.19
3.20 (defcmd organ-show
3.21- (fmt-tree t
3.22- (remove-if-not
3.23- (lambda (x) (eql (cadr x) 'headline))
3.24- (org-parse-lines (read-org-file (open (car $args)))))
3.25- :layout :down))
3.26+(fmt-tree t
3.27+ (mapcar (lambda (x) `(,(car x) ,(cddr x)))
3.28+ (remove-if-not (lambda (x) (equal (cadr x) (symb 'headline)))
3.29+ (org-parse-lines (read-org-file (open (car $args))))))
3.30+ :layout :down))
3.31
3.32-(defcmd organ-parse (print t))
3.33+(defcmd organ-parse
3.34+ (fmt-tree t (remove-if #'null (org-parse-lines (read-org-file (open (car $args))))) :layout :down))
3.35
3.36 (define-cli $cli
3.37 :name "organ"
3.38 :version "0.0.1"
3.39 :description "org-mode toolbox"
3.40 :opts (make-opts
3.41- (:name debug :global t)
3.42- (:name help :global t)
3.43- (:name version :global t))
3.44+ (:name level :global t :description "set the log level" :thunk organ-log-level)
3.45+ (:name help :global t :description "print help" :thunk organ-help)
3.46+ (:name version :global t :description "print version" :thunk organ-version))
3.47 :cmds (make-cmds
3.48- (:name inspect :opts (make-opts (:name input)) :thunk organ-inspect)
3.49- (:name show :thunk organ-show)
3.50+ (:name inspect
3.51+ :description "inspect an org file"
3.52+ :opts (make-opts (:name input :description "path to org file" :kind file))
3.53+ :thunk organ-inspect)
3.54+ (:name show :opts nil :description "display local org info" :thunk organ-show)
3.55 (:name parse
3.56- :opts (make-opts (:name input) (:name output))
3.57+ :opts (make-opts (:name input :description "input source" :kind file)
3.58+ (:name output :description "compiler output" :kind string))
3.59 :thunk organ-parse)))
3.60
3.61 (defun run ()
3.62 (with-cli (opts cmds args) $cli
3.63- (when (find-opt $cli "debug" t) (setq *log-level* :debug))
3.64- (debug! (cli-opts $cli) (cli-cmd-args $cli) (cli-cmds $cli))
3.65-
3.66- (when-let ((a (find-cmd $cli "inspect" t)))
3.67- (inspect (read-org-file (open (car a)))))
3.68-
3.69- (when-let ((a (find-cmd $cli "parse" t)))
3.70- (fmt-tree t (remove-if #'null (org-parse-lines (read-org-file (open (car a))))) :layout :down))
3.71-
3.72- (when-let ((a (find-cmd $cli "show" t)))
3.73- (fmt-tree t
3.74- (mapcar (lambda (x) `(,(car x) ,(cddr x)))
3.75- (remove-if-not (lambda (x) (equal (cadr x) (symb 'headline)))
3.76- (org-parse-lines (read-org-file (open (car a))))))
3.77- :layout :down))
3.78-
3.79- (when (find-opt $cli "help" t) (print-help $cli))
3.80- (when (find-opt $cli "version" t) (print-version $cli))))
3.81+ (do-cmd $cli)
3.82+ (debug-opts $cli)))
3.83
3.84 (defmain ()
3.85 (run)
4.1--- a/lisp/lib/skel/core/mk.lisp Sun Dec 03 23:25:08 2023 -0500
4.2+++ b/lisp/lib/skel/core/mk.lisp Mon Dec 04 21:13:35 2023 -0500
4.3@@ -1,1 +1,4 @@
4.4-(in-package :skel)
4.5+(defpackage :skel/mk
4.6+ (:use :cl :std))
4.7+
4.8+(in-package :skel/mk)
5.1--- a/lisp/lib/skel/core/obj.lisp Sun Dec 03 23:25:08 2023 -0500
5.2+++ b/lisp/lib/skel/core/obj.lisp Mon Dec 04 21:13:35 2023 -0500
5.3@@ -6,12 +6,17 @@
5.4 ;; cfg
5.5 :*skel-project* :*skel-user-config* :*default-skelrc* :*skel-project-registry*
5.6 :*default-skelfile* :*default-skel-user* :*default-skel-cache* :*default-user-skel-config*
5.7- :*default-system-skel-config* :*skelfile-extension* :*skelfile-boundary*
5.8+ :*default-user-skelrc* :*default-system-skel-config* :*skelfile-extension* :*skelfile-boundary*
5.9+ :*default-skel-stash* :*default-skel-shed* :*default-system-skelrc*
5.10+ ;; helpers
5.11+ :file-read-forms :load-ast
5.12 ;; obj
5.13+ :sk-author :sk-path :sk-shed :sk-stash :sk-user
5.14 :skel :sk-meta :def-sk-class :sk-project :sk-target :sk-source :sk-vc
5.15 :sk-rule :sk-rule-target :sk-rule-source :sk-rule-recipe :make-sk-rule
5.16 :sk-description :sk-kind :sk-rules :sk-id :sk-version :sk-name :sk-docs :sk-document
5.17- :sk-command :sk-scripts :sk-script :sk-config :sk-snippets :sk-snippet :sk-abbrevs :sk-abbrev))
5.18+ :sk-command :sk-scripts :sk-script :sk-config :sk-snippets :sk-snippet :sk-abbrevs :sk-abbrev
5.19+ :sk-user-config))
5.20
5.21 (in-package :skel/core/obj)
5.22
5.23@@ -188,7 +193,7 @@
5.24 ;; ast is valid, modify object, set ast nil
5.25 (progn
5.26 (sb-int:doplist (k v) ast
5.27- (setf (slot-value self (intern (symbol-name k) :skel)) v))
5.28+ (setf (slot-value self (intern (symbol-name k) :skel/core/obj)) v)) ;; needs to be the correct package
5.29 (when (bound-string-p self 'stash) (setf (sk-stash self) (pathname (sk-stash self))))
5.30 (when (bound-string-p self 'shed) (setf (sk-shed self) (pathname (sk-shed self))))
5.31 (when (bound-string-p self 'scripts) (setf (sk-scripts self)
5.32@@ -251,7 +256,7 @@
5.33 ;; ast is valid, modify object, set ast nil
5.34 (progn
5.35 (sb-int:doplist (k v) ast
5.36- (setf (slot-value self (intern (symbol-name k) :skel)) v))
5.37+ (setf (slot-value self (intern (symbol-name k) :skel/core/obj)) v)) ;; needs to be correct package
5.38 (when (bound-string-p self 'stash) (setf (sk-stash self) (pathname (sk-stash self))))
5.39 (when (bound-string-p self 'shed) (setf (sk-shed self) (pathname (sk-shed self))))
5.40 (when (bound-string-p self 'scripts) (setf (sk-scripts self)
6.1--- a/lisp/lib/skel/core/util.lisp Sun Dec 03 23:25:08 2023 -0500
6.2+++ b/lisp/lib/skel/core/util.lisp Mon Dec 04 21:13:35 2023 -0500
6.3@@ -1,6 +1,6 @@
6.4 ;;; Utils
6.5 (defpackage :skel/core/util
6.6- (:use :cl :skel/core/obj :skel/core/proto :std/fu)
6.7+ (:use :cl :skel/core/obj :skel/core/proto :std)
6.8 (:export
6.9 :init-skelrc :load-skelrc
6.10 :init-skel-user-config
7.1--- a/lisp/lib/skel/pkg.lisp Sun Dec 03 23:25:08 2023 -0500
7.2+++ b/lisp/lib/skel/pkg.lisp Mon Dec 04 21:13:35 2023 -0500
7.3@@ -9,10 +9,7 @@
7.4 (:nicknames :skel)
7.5 (:use :cl :cl-ppcre :std :sb-mop)
7.6 (:use-reexport :skel/core :skel/comp)
7.7- (:import-from :sb-unix :uid-username)
7.8- (:import-from :uiop :ensure-absolute-pathname)
7.9 (:shadowing-import-from :uiop :pathname-parent-directory-pathname :read-file-forms))
7.10
7.11 (in-package :skel/pkg)
7.12 (defvar *skel-version* "0.1.0")
7.13-(provide :skel)