From 45ee27a35f0cd91dc9621b691f76316f9544be06 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Fri, 3 Apr 2020 22:58:57 +0430 Subject: [PATCH 01/15] new depends-on macro --- lib/fpkg.el | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 33e787b..db31b50 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -76,16 +76,24 @@ (fpkg-initialize))) -(defun depends-on1 (pkgname) +(defun depends-on (pkgname) "Install the given PKGNAME if it isn't installed." (straight-use-package pkgname)) - -(defmacro depends-on (pkgdesc) - `(progn - (straight-use-package ,@pkgdesc))) +(defun fg42-install-extension (name options) + "Install given extension NAME with given OPTIONS.") -(macroexpand '(depends-on 'sam)) +(defmacro depends-on2 (name &rest options) + "Install given NAME with provided OPTIONS." + + (add-to-list 'options name) + (if (string= (car (last (split-string (symbol-name name) "-"))) "extension") + `(fg42-install-extension ,options) + `(straight-use-package ,options))) + +;; (macroexpand '(depends-on2 go-extension :type git :host github :repo "your-name/el-patch")) +;; (macroexpand '(depends-on2 go :type git :host github :repo "your-name/el-patch")) + (provide 'fpkg) ;;; fpkg.el ends here From 8e622a838e4cae869ce88c4a7db774e3bd10b957 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 00:50:17 +0430 Subject: [PATCH 02/15] depends-on now treats extensions and normal package differently --- lib/fpkg.el | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index db31b50..908dd93 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -75,25 +75,21 @@ (when (not fpkg-initilized-p) (fpkg-initialize))) +(defun fg42-install-extension (args) + + ) +(defun extensionp (args) + "Tell if given ARGS is a FG42 extension or a normal straight package." + (cond + ((symbolp args) (string= (car (last (split-string (symbol-name args) "-"))) "extension")) + ((listp args) (string= (car (last (split-string (symbol-name (car args)) "-"))) "extension")))) -(defun depends-on (pkgname) - "Install the given PKGNAME if it isn't installed." - (straight-use-package pkgname)) +(defmacro depends-on (args) + (if (extensionp args) + `(fg42-install-extension ,args) + `(straight-use-package ,args) + )) -(defun fg42-install-extension (name options) - "Install given extension NAME with given OPTIONS.") - - -(defmacro depends-on2 (name &rest options) - "Install given NAME with provided OPTIONS." - - (add-to-list 'options name) - (if (string= (car (last (split-string (symbol-name name) "-"))) "extension") - `(fg42-install-extension ,options) - `(straight-use-package ,options))) - -;; (macroexpand '(depends-on2 go-extension :type git :host github :repo "your-name/el-patch")) -;; (macroexpand '(depends-on2 go :type git :host github :repo "your-name/el-patch")) (provide 'fpkg) ;;; fpkg.el ends here From 19323c0d0c8b119e8c5264f3ebcc4d8d37a071d7 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 01:18:56 +0430 Subject: [PATCH 03/15] depends-on installs official extensions, 3rd party extensions, elpa packages --- lib/fpkg.el | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 908dd93..b5c0fe5 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -75,21 +75,40 @@ (when (not fpkg-initilized-p) (fpkg-initialize))) + +(defun get-extension-name (args) + (cond + ((symbolp args) args) + ((listp args) (car args)))) + +(defvar official-extensions '(devops-extension)) + +(defun is-official-extension (args) + (member args official-extensions)) + +(defun get-official-extension-receipe (name) + (list name :host 'gitlab :repo (format "amirrezaask/%s" name))) + + (defun fg42-install-extension (args) - - ) + (let ((extension-name (get-extension-name args))) + (if (is-official-extension extension-name) + (straight-use-package (get-official-extension-receipe extension-name)) + (straight-use-package extension-name)))) + (defun extensionp (args) "Tell if given ARGS is a FG42 extension or a normal straight package." (cond ((symbolp args) (string= (car (last (split-string (symbol-name args) "-"))) "extension")) ((listp args) (string= (car (last (split-string (symbol-name (car args)) "-"))) "extension")))) -(defmacro depends-on (args) +(defun depends-on (args) (if (extensionp args) - `(fg42-install-extension ,args) - `(straight-use-package ,args) - )) + (fg42-install-extension args) + (straight-use-package args) + )) +(fg42-install-extension 'devops-extension) (provide 'fpkg) ;;; fpkg.el ends here From 456b1b77227edf7b2e520e23c03af77d592a592a Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 01:24:27 +0430 Subject: [PATCH 04/15] remove extra line --- lib/fpkg.el | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index b5c0fe5..1abcd64 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -89,7 +89,6 @@ (defun get-official-extension-receipe (name) (list name :host 'gitlab :repo (format "amirrezaask/%s" name))) - (defun fg42-install-extension (args) (let ((extension-name (get-extension-name args))) (if (is-official-extension extension-name) @@ -108,7 +107,6 @@ (straight-use-package args) )) -(fg42-install-extension 'devops-extension) (provide 'fpkg) ;;; fpkg.el ends here From 8a1dd275cab6d5f75b122874086ec57f5f3b183a Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 01:26:32 +0430 Subject: [PATCH 05/15] add example usage of depends-on for different scenarios --- lib/fpkg.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 1abcd64..5aaa294 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -104,9 +104,12 @@ (defun depends-on (args) (if (extensionp args) (fg42-install-extension args) - (straight-use-package args) - )) + (straight-use-package args))) +;; (depends-on 'badwolf-theme) ;; elpa +;; (depends-on 'devops-extension) ;; official extension +;; (depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension + (provide 'fpkg) ;;; fpkg.el ends here From b78591827d5dffbcd3af36bbe5a50caef15082ba Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 01:32:41 +0430 Subject: [PATCH 06/15] fix project name --- lib/fpkg.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 5aaa294..6b68a51 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -87,7 +87,7 @@ (member args official-extensions)) (defun get-official-extension-receipe (name) - (list name :host 'gitlab :repo (format "amirrezaask/%s" name))) + (list name :host 'gitlab :repo (format "FG42/%s" name))) (defun fg42-install-extension (args) (let ((extension-name (get-extension-name args))) From 5a78ec226bc62086edc260481cb6238ba772eff3 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 01:50:56 +0430 Subject: [PATCH 07/15] simplify procedure --- lib/fpkg.el | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 6b68a51..a6fd8c9 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -91,18 +91,10 @@ (defun fg42-install-extension (args) (let ((extension-name (get-extension-name args))) - (if (is-official-extension extension-name) - (straight-use-package (get-official-extension-receipe extension-name)) - (straight-use-package extension-name)))) - -(defun extensionp (args) - "Tell if given ARGS is a FG42 extension or a normal straight package." - (cond - ((symbolp args) (string= (car (last (split-string (symbol-name args) "-"))) "extension")) - ((listp args) (string= (car (last (split-string (symbol-name (car args)) "-"))) "extension")))) + (straight-use-package (get-official-extension-receipe extension-name)))) (defun depends-on (args) - (if (extensionp args) + (if (is-official-extension args) (fg42-install-extension args) (straight-use-package args))) From 3c26510fe0537c8025f568891bc50d95ddfa86e2 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 02:22:26 +0430 Subject: [PATCH 08/15] more simplification in the process --- lib/fpkg.el | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index a6fd8c9..285de22 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -75,33 +75,25 @@ (when (not fpkg-initilized-p) (fpkg-initialize))) - -(defun get-extension-name (args) - (cond - ((symbolp args) args) - ((listp args) (car args)))) - (defvar official-extensions '(devops-extension)) (defun is-official-extension (args) (member args official-extensions)) -(defun get-official-extension-receipe (name) +(defun get-receipe (name) (list name :host 'gitlab :repo (format "FG42/%s" name))) (defun fg42-install-extension (args) - (let ((extension-name (get-extension-name args))) - (straight-use-package (get-official-extension-receipe extension-name)))) + (straight-use-package (get-receipe args))) (defun depends-on (args) (if (is-official-extension args) (fg42-install-extension args) (straight-use-package args))) - -;; (depends-on 'badwolf-theme) ;; elpa -;; (depends-on 'devops-extension) ;; official extension -;; (depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension +(depends-on 'cyberpunk-theme) ;; elpa +(depends-on 'devops-extension) ;; official extension +(depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension (provide 'fpkg) ;;; fpkg.el ends here From 41e9a51f03feddfc768c9578ddf7faa36e343370 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 03:05:42 +0430 Subject: [PATCH 09/15] comment depends-on examples --- lib/fpkg.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 285de22..3ff7a87 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -91,9 +91,9 @@ (fg42-install-extension args) (straight-use-package args))) -(depends-on 'cyberpunk-theme) ;; elpa -(depends-on 'devops-extension) ;; official extension -(depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension +;; (depends-on 'cyberpunk-theme) ;; elpa +;; (depends-on 'devops-extension) ;; official extension +;; (depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension (provide 'fpkg) ;;; fpkg.el ends here From 750ce2d89318ac22de571885423522af506683a6 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 15:25:08 +0430 Subject: [PATCH 10/15] resolve merge request discussions --- lib/fpkg.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 3ff7a87..9a15fec 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -51,6 +51,9 @@ (defvar required-packages (make-hash-table) "A hash of `fg42-package structure representing required packages.") +(defvar fg42/extensions '(devops-extension) + "A list of official FG42 extensions.") + ;; Functions ---------------------------------- (defun fpkg-initialize () "Initilize the straight.e package manager and setup necessary hooks." @@ -75,9 +78,7 @@ (when (not fpkg-initilized-p) (fpkg-initialize))) -(defvar official-extensions '(devops-extension)) - -(defun is-official-extension (args) +(defun official-extension-p (args) (member args official-extensions)) (defun get-receipe (name) From 83a3cbbb1fc4f02d616ce1547fc8f20bbc28a12c Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 15:32:17 +0430 Subject: [PATCH 11/15] some fixes after renames --- lib/fpkg.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 9a15fec..411e6e0 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -79,7 +79,8 @@ (fpkg-initialize))) (defun official-extension-p (args) - (member args official-extensions)) + "Predicate to say if ARGS is an official FG42 extension." + (member args fg42/extensions)) (defun get-receipe (name) (list name :host 'gitlab :repo (format "FG42/%s" name))) @@ -88,7 +89,7 @@ (straight-use-package (get-receipe args))) (defun depends-on (args) - (if (is-official-extension args) + (if (official-extension-p args) (fg42-install-extension args) (straight-use-package args))) From c359932368feb47f0e9937fcd0b9f447168e6208 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 15:34:47 +0430 Subject: [PATCH 12/15] install use-package in fpkg initialization --- lib/fpkg.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 411e6e0..a3260ac 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -76,7 +76,8 @@ (defun fpkg-initialize-once () "Initilize FPKG only once." (when (not fpkg-initilized-p) - (fpkg-initialize))) + (fpkg-initialize) + (straight-use-package 'use-package))) (defun official-extension-p (args) "Predicate to say if ARGS is an official FG42 extension." From e55816d1633a9f3bca2d975662f12d89dd612fcf Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 16:05:53 +0430 Subject: [PATCH 13/15] integreate use-package into fpkg --- lib/fpkg.el | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index a3260ac..4c6363a 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -72,7 +72,7 @@ (eval-print-last-sexp)) (load bootstrap-file nil 'nomessage)))) - +(setq straight-use-package-by-default t) (defun fpkg-initialize-once () "Initilize FPKG only once." (when (not fpkg-initilized-p) @@ -84,18 +84,28 @@ (member args fg42/extensions)) (defun get-receipe (name) + "Get the receipe for given NAME if that is an official extension." (list name :host 'gitlab :repo (format "FG42/%s" name))) -(defun fg42-install-extension (args) - (straight-use-package (get-receipe args))) +(defmacro fg42-install-extension (args) + "Install if given ARGS is an official extension." + (let ((reciepe (get-receipe args))) + `(use-package ,args :straight ,reciepe))) -(defun depends-on (args) - (if (official-extension-p args) - (fg42-install-extension args) - (straight-use-package args))) -;; (depends-on 'cyberpunk-theme) ;; elpa -;; (depends-on 'devops-extension) ;; official extension +(defmacro depends-on (&rest args) + "Install given ARGS." + (message "%s" args) + (if (official-extension-p (car args)) + `(fg42-install-extension ,@args) + `(use-package ,@args))) + +;; depends on now is a wrapper around use-package +;; (macroexpand-1 '(depends-on go-mode :mode "\\.go\\'")) +;; (macroexpand-1 '(depends-on devops-extension)) +;; (macroexpand-1 '(fg42-install-extension devops-extension)) +;; (depends-on cyberpunk-theme) ;; elpa +;; (depends-on devops-extension) ;; official extension ;; (depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension (provide 'fpkg) From fd67f2f76a973d51171d1270cff94e469a353cd7 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 4 Apr 2020 16:20:18 +0430 Subject: [PATCH 14/15] add adapter layer for depends-on --- lib/fpkg.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 4c6363a..aa28927 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -93,18 +93,24 @@ `(use-package ,args :straight ,reciepe))) +(defun old-depends-on-calls-adapter (args) + (if (listp (car args)) + (progn (add-to-list 'args (car (cdr (pop args)))) args) + args)) + (defmacro depends-on (&rest args) "Install given ARGS." - (message "%s" args) + (setq args (old-depends-on-calls-adapter args)) (if (official-extension-p (car args)) `(fg42-install-extension ,@args) `(use-package ,@args))) + ;; depends on now is a wrapper around use-package ;; (macroexpand-1 '(depends-on go-mode :mode "\\.go\\'")) ;; (macroexpand-1 '(depends-on devops-extension)) ;; (macroexpand-1 '(fg42-install-extension devops-extension)) -;; (depends-on cyberpunk-theme) ;; elpa +;; (depends-on cyberpunk-theme) ;; (depends-on devops-extension) ;; official extension ;; (depends-on '(go-extension :host gitlab :repo "amirrezaask/go-extension")) ;; 3rd party extension From 58fba5e2f71028722f1420aaf32d49d3364b7061 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Fri, 10 Apr 2020 09:57:54 +0430 Subject: [PATCH 15/15] use let instead of setq --- lib/fpkg.el | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index aa28927..a273e18 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -95,16 +95,15 @@ (defun old-depends-on-calls-adapter (args) (if (listp (car args)) - (progn (add-to-list 'args (car (cdr (pop args)))) args) - args)) + (progn (add-to-list 'args (car (cdr (pop args)))) args)) + args) (defmacro depends-on (&rest args) "Install given ARGS." - (setq args (old-depends-on-calls-adapter args)) - (if (official-extension-p (car args)) - `(fg42-install-extension ,@args) - `(use-package ,@args))) - + (let ((adapted-args (old-depends-on-calls-adapter args))) + (if (official-extension-p (car args)) + `(fg42-install-extension ,@args) + `(use-package ,@args)))) ;; depends on now is a wrapper around use-package ;; (macroexpand-1 '(depends-on go-mode :mode "\\.go\\'"))