changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: skel fixes

changeset 79: 24728cba3558
parent 78: 966f92770ddf
child 80: eaf36eb2fc97
author: ellis <ellis@rwest.io>
date: Mon, 04 Dec 2023 21:13:35 -0500
files: install.org lisp/app/cli/homer.lisp lisp/app/cli/organ.lisp lisp/lib/skel/core/mk.lisp lisp/lib/skel/core/obj.lisp lisp/lib/skel/core/util.lisp lisp/lib/skel/pkg.lisp
description: skel fixes
     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)