Loading share/hits/clean.hit +2 −4 Viewed Changes for share/hits/clean.hit: 2 added lines, 4 removed lines. Original line number Diff line number Diff line ;; -*- mode: lisp -*- (clean :depends-on () (let ((target-dir (or (try (get-skeleton-target (find-skeleton (project-slot-value *jabs-current-project* 'skeleton)))) (try (get-skeleton-target (find-skeleton (car (project-slot-value *jabs-current-project* 'skeleton)))))))) (let ((target-dir (try (get-skeleton-target (find-project-skeleton *jabs-current-project*))))) (when target-dir (os-rm target-dir :recursive t)))) share/hits/deploy-local.hit +16 −9 Viewed Changes for share/hits/deploy-local.hit: 16 added lines, 9 removed lines. Original line number Diff line number Diff line ;; -*- mode: lisp -*- (deploy-local :depends-on () (let* ((current-skeleton (or (try (find-skeleton (car (project-slot-value *jabs-current-project* 'skeleton)))) (try (find-skeleton (project-slot-value *jabs-current-project* 'skeleton))))) (target-dir (when current-skeleton (pathname-as-directory (parse-namestring (get-skeleton-target current-skeleton))))) (let* ((current-skeleton (find-project-skeleton *jabs-current-project*)) (target-dir (try (pathname-as-directory (parse-namestring (get-skeleton-target current-skeleton))))) ;; (src-dir (try (get-skeleton-src current-skeleton))) (bin-dir (try (get-skeleton-bin current-skeleton))) Loading @@ -17,16 +19,21 @@ (install-file (try (get-skeleton-install-file current-skeleton))) ;; ) (when (not target-dir) (jlog:crit "Target directory for skeleton ``~a'', project ``~a'' is not set. Can not deploy locally" (if (not target-dir) (jlog:wrn "Target directory for skeleton ``~a'', project ``~a'' is not set. Can not deploy locally. Skipping" (get-skeleton-name current-skeleton) (get-project-name *jabs-current-project*))) (get-project-name *jabs-current-project*)) ;; (dolist (dir (list src-dir bin-dir doc-dir test-dir contrib-dir script-dir share-dir conf-dir)) (let ((dst-dir (when dir (pathname-as-directory (or (try (parse-namestring dir)) (progn (dolist (dir (list src-dir bin-dir doc-dir test-dir contrib-dir script-dir share-dir conf-dir)) (let ((dst-dir (when dir (pathname-as-directory (or (try (parse-namestring dir)) (try (parse-namestring (car dir)))))))) ;; (jlog:crit "AAAA ~a" dst-dir) (when dst-dir (jlog:info "Deploying ``~a'' to ``~a''" dst-dir target-dir) (os-cp dst-dir (merge-pathnames dst-dir target-dir) :recursive t :force t)))) (dolist (file (list readme-file license-file install-file)) (when (and file (file-exists-p file)) (os-cp file (merge-pathnames file target-dir) :recursive t :force t))))) (os-cp file (merge-pathnames file target-dir) :recursive t :force t))))))) share/plugins/generic/make-binary/src/make-binary.lisp +1 −2 Viewed Changes for share/plugins/generic/make-binary/src/make-binary.lisp: 1 added line, 2 removed lines. Original line number Diff line number Diff line Loading @@ -27,8 +27,7 @@ (pathname-as-directory (parse-namestring (get-skeleton-bin (find-skeleton (car (jabs:project-slot-value *jabs-current-project* 'jabs::skeleton)))))) (find-project-skeleton *jabs-current-project*)))) ""))) ;; (when (not function) Loading src/core/jabs-depmanager/jabs-depmanager.lisp +41 −4 Viewed Changes for src/core/jabs-depmanager/jabs-depmanager.lisp: 41 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -68,11 +68,13 @@ Created for ASDF compatability" (add-hook *post-init-hook* #'map-global-projects-to-files) (add-hook *post-init-hook* #'map-global-systems-to-files) (defgeneric get-project-projects-map (project) ) (defmethod get-project-projects-map ((project project)) "Get project names mapped to files for only for given project w\o global map" (let* ((skel-name (or (car (try (slot-value project 'skeleton))) *jabs-default-skeleton-name*)) (let* ((skel-name (get-project-skeleton-name project)) (skel (or (find-skeleton skel-name) (and Loading @@ -95,11 +97,13 @@ w\o global map" (cons lib (cons contrib opt))) hash)) (defgeneric get-project-systems-map (project) ) (defmethod get-project-systems-map ((project project)) "Get asdf system names mapped to files for only for given project w\o global map. For ASDF back compatability" (let* ((skel-name (or (car (try (slot-value project 'skeleton))) *jabs-default-skeleton-name*)) (let* ((skel-name (get-project-skeleton-name project)) (skel (or (find-skeleton skel-name) (and Loading @@ -122,19 +126,31 @@ w\o global map. For ASDF back compatability" (cons lib (cons contrib opt))) hash)) (defgeneric get-project-depends-on (project) ) (defmethod get-project-depends-on ((project project)) (try (slot-value project 'depends-on))) (defgeneric dependency-project-reachable-locally-p (name project) ) (defmethod dependency-project-reachable-locally-p (name (project project)) (check-type name keyword) (or (gethash name (get-project-projects-map project)) (gethash name *jabs-global-projects-map*))) (defgeneric dependency-system-reachable-locally-p (name project) ) (defmethod dependency-system-reachable-locally-p (name (project project)) (check-type name keyword) (or (gethash name (get-project-systems-map project)) (gethash name *jabs-global-systems-map*))) (defgeneric find-project-dependency-force-locally (name project) ) (defmethod find-project-dependency-force-locally (name (project project)) "Like ``find-project'', but tries to load local project or system file, than retry to find project" Loading Loading @@ -166,24 +182,36 @@ system file, than retry to find project" found-project-file-asd)) found-project))))) (defgeneric dependency-project-reachable-remotely-p (name project) ) (defmethod dependency-project-reachable-remotely-p (name (project project)) "Check if project can be reachable in all accessible plugins" (let ((plugins (filter-project-plugins-by-type project :repository))) (plugins-api-call-to-true :find-repository-project plugins name))) (defgeneric find-project-dependencies-remotely (name project) ) (defmethod find-project-dependencies-remotely (name (project project)) "Check if project can be reachable in all accessible plugins" (let ((plugins (filter-project-plugins-by-type project :repository))) (plugins-api-call-to-true :repository-project-dependencies plugins name))) (defgeneric load-project-remote-dependency (name project) ) (defmethod load-project-remote-dependency (name (project project)) "Check if project can be reachable in all accessible plugins" (let ((plugins (filter-project-plugins-by-type project :repository))) (plugins-api-call-to-true :load-repository-project plugins name))) (defgeneric dependency-project-reachable-p (name project) ) (defmethod dependency-project-reachable-p (name (project project)) (or (dependency-project-reachable-locally-p name project) (dependency-system-reachable-locally-p name project) Loading @@ -191,6 +219,9 @@ system file, than retry to find project" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defgeneric make-project-depencencies-list (project) ) (defmethod make-project-depencencies-list ((project project)) "Make full list of project dependencies (recursively)" (labels Loading @@ -212,11 +243,17 @@ system file, than retry to find project" (remove (get-project-name project) (reverse (remove-duplicates (reverse (make-deps-list (get-project-name project)))))))) (defgeneric load-project-local-dependency (name project) ) (defmethod load-project-local-dependency (name (project project)) (jlog:dbg "Loading project ``~a'' as dependency for project ``~a''" name (get-project-name project)) (and (find-project-dependency-force-locally name project) (asdf:operate 'asdf:load-op name))) (defgeneric load-project-dependencies (project) ) (defmethod load-project-dependencies ((project project)) (dolist (v (make-project-depencencies-list project)) (or Loading src/core/jabs-operations/jabs-operations.lisp +21 −0 Viewed Changes for src/core/jabs-operations/jabs-operations.lisp: 21 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -10,26 +10,47 @@ (in-package :jabs) (defgeneric load-op (project &optional source-force) ) (defmethod load-op ((project project) &optional source-force) (if source-force (asdf:operate 'asdf:load-source-op (get-project-name project)) (asdf:operate 'asdf:load-op (get-project-name project)))) (defgeneric load-dependencies-op (project) ) (defmethod load-dependencies-op ((project project)) (load-project-dependencies project)) (defgeneric compile-op (project) ) (defmethod compile-op ((project project)) (asdf:operate 'asdf:compile-op (get-project-name project))) (defgeneric test-op (project) ) (defmethod test-op ((project project)) (run-tests project)) (defgeneric lib-op (project) ) (defmethod lib-op ((project project)) (jlog:err "lib-op Not implemented")) (defgeneric link-op (project) ) (defmethod link-op ((project project)) (jlog:err "link-op Not implemented")) (defgeneric prepare-op (project) ) (defmethod prepare-op ((project project)) (jlog:err "prepare-source-op Not implemented")) Loading Loading
share/hits/clean.hit +2 −4 Viewed Changes for share/hits/clean.hit: 2 added lines, 4 removed lines. Original line number Diff line number Diff line ;; -*- mode: lisp -*- (clean :depends-on () (let ((target-dir (or (try (get-skeleton-target (find-skeleton (project-slot-value *jabs-current-project* 'skeleton)))) (try (get-skeleton-target (find-skeleton (car (project-slot-value *jabs-current-project* 'skeleton)))))))) (let ((target-dir (try (get-skeleton-target (find-project-skeleton *jabs-current-project*))))) (when target-dir (os-rm target-dir :recursive t))))
share/hits/deploy-local.hit +16 −9 Viewed Changes for share/hits/deploy-local.hit: 16 added lines, 9 removed lines. Original line number Diff line number Diff line ;; -*- mode: lisp -*- (deploy-local :depends-on () (let* ((current-skeleton (or (try (find-skeleton (car (project-slot-value *jabs-current-project* 'skeleton)))) (try (find-skeleton (project-slot-value *jabs-current-project* 'skeleton))))) (target-dir (when current-skeleton (pathname-as-directory (parse-namestring (get-skeleton-target current-skeleton))))) (let* ((current-skeleton (find-project-skeleton *jabs-current-project*)) (target-dir (try (pathname-as-directory (parse-namestring (get-skeleton-target current-skeleton))))) ;; (src-dir (try (get-skeleton-src current-skeleton))) (bin-dir (try (get-skeleton-bin current-skeleton))) Loading @@ -17,16 +19,21 @@ (install-file (try (get-skeleton-install-file current-skeleton))) ;; ) (when (not target-dir) (jlog:crit "Target directory for skeleton ``~a'', project ``~a'' is not set. Can not deploy locally" (if (not target-dir) (jlog:wrn "Target directory for skeleton ``~a'', project ``~a'' is not set. Can not deploy locally. Skipping" (get-skeleton-name current-skeleton) (get-project-name *jabs-current-project*))) (get-project-name *jabs-current-project*)) ;; (dolist (dir (list src-dir bin-dir doc-dir test-dir contrib-dir script-dir share-dir conf-dir)) (let ((dst-dir (when dir (pathname-as-directory (or (try (parse-namestring dir)) (progn (dolist (dir (list src-dir bin-dir doc-dir test-dir contrib-dir script-dir share-dir conf-dir)) (let ((dst-dir (when dir (pathname-as-directory (or (try (parse-namestring dir)) (try (parse-namestring (car dir)))))))) ;; (jlog:crit "AAAA ~a" dst-dir) (when dst-dir (jlog:info "Deploying ``~a'' to ``~a''" dst-dir target-dir) (os-cp dst-dir (merge-pathnames dst-dir target-dir) :recursive t :force t)))) (dolist (file (list readme-file license-file install-file)) (when (and file (file-exists-p file)) (os-cp file (merge-pathnames file target-dir) :recursive t :force t))))) (os-cp file (merge-pathnames file target-dir) :recursive t :force t)))))))
share/plugins/generic/make-binary/src/make-binary.lisp +1 −2 Viewed Changes for share/plugins/generic/make-binary/src/make-binary.lisp: 1 added line, 2 removed lines. Original line number Diff line number Diff line Loading @@ -27,8 +27,7 @@ (pathname-as-directory (parse-namestring (get-skeleton-bin (find-skeleton (car (jabs:project-slot-value *jabs-current-project* 'jabs::skeleton)))))) (find-project-skeleton *jabs-current-project*)))) ""))) ;; (when (not function) Loading
src/core/jabs-depmanager/jabs-depmanager.lisp +41 −4 Viewed Changes for src/core/jabs-depmanager/jabs-depmanager.lisp: 41 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -68,11 +68,13 @@ Created for ASDF compatability" (add-hook *post-init-hook* #'map-global-projects-to-files) (add-hook *post-init-hook* #'map-global-systems-to-files) (defgeneric get-project-projects-map (project) ) (defmethod get-project-projects-map ((project project)) "Get project names mapped to files for only for given project w\o global map" (let* ((skel-name (or (car (try (slot-value project 'skeleton))) *jabs-default-skeleton-name*)) (let* ((skel-name (get-project-skeleton-name project)) (skel (or (find-skeleton skel-name) (and Loading @@ -95,11 +97,13 @@ w\o global map" (cons lib (cons contrib opt))) hash)) (defgeneric get-project-systems-map (project) ) (defmethod get-project-systems-map ((project project)) "Get asdf system names mapped to files for only for given project w\o global map. For ASDF back compatability" (let* ((skel-name (or (car (try (slot-value project 'skeleton))) *jabs-default-skeleton-name*)) (let* ((skel-name (get-project-skeleton-name project)) (skel (or (find-skeleton skel-name) (and Loading @@ -122,19 +126,31 @@ w\o global map. For ASDF back compatability" (cons lib (cons contrib opt))) hash)) (defgeneric get-project-depends-on (project) ) (defmethod get-project-depends-on ((project project)) (try (slot-value project 'depends-on))) (defgeneric dependency-project-reachable-locally-p (name project) ) (defmethod dependency-project-reachable-locally-p (name (project project)) (check-type name keyword) (or (gethash name (get-project-projects-map project)) (gethash name *jabs-global-projects-map*))) (defgeneric dependency-system-reachable-locally-p (name project) ) (defmethod dependency-system-reachable-locally-p (name (project project)) (check-type name keyword) (or (gethash name (get-project-systems-map project)) (gethash name *jabs-global-systems-map*))) (defgeneric find-project-dependency-force-locally (name project) ) (defmethod find-project-dependency-force-locally (name (project project)) "Like ``find-project'', but tries to load local project or system file, than retry to find project" Loading Loading @@ -166,24 +182,36 @@ system file, than retry to find project" found-project-file-asd)) found-project))))) (defgeneric dependency-project-reachable-remotely-p (name project) ) (defmethod dependency-project-reachable-remotely-p (name (project project)) "Check if project can be reachable in all accessible plugins" (let ((plugins (filter-project-plugins-by-type project :repository))) (plugins-api-call-to-true :find-repository-project plugins name))) (defgeneric find-project-dependencies-remotely (name project) ) (defmethod find-project-dependencies-remotely (name (project project)) "Check if project can be reachable in all accessible plugins" (let ((plugins (filter-project-plugins-by-type project :repository))) (plugins-api-call-to-true :repository-project-dependencies plugins name))) (defgeneric load-project-remote-dependency (name project) ) (defmethod load-project-remote-dependency (name (project project)) "Check if project can be reachable in all accessible plugins" (let ((plugins (filter-project-plugins-by-type project :repository))) (plugins-api-call-to-true :load-repository-project plugins name))) (defgeneric dependency-project-reachable-p (name project) ) (defmethod dependency-project-reachable-p (name (project project)) (or (dependency-project-reachable-locally-p name project) (dependency-system-reachable-locally-p name project) Loading @@ -191,6 +219,9 @@ system file, than retry to find project" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defgeneric make-project-depencencies-list (project) ) (defmethod make-project-depencencies-list ((project project)) "Make full list of project dependencies (recursively)" (labels Loading @@ -212,11 +243,17 @@ system file, than retry to find project" (remove (get-project-name project) (reverse (remove-duplicates (reverse (make-deps-list (get-project-name project)))))))) (defgeneric load-project-local-dependency (name project) ) (defmethod load-project-local-dependency (name (project project)) (jlog:dbg "Loading project ``~a'' as dependency for project ``~a''" name (get-project-name project)) (and (find-project-dependency-force-locally name project) (asdf:operate 'asdf:load-op name))) (defgeneric load-project-dependencies (project) ) (defmethod load-project-dependencies ((project project)) (dolist (v (make-project-depencencies-list project)) (or Loading
src/core/jabs-operations/jabs-operations.lisp +21 −0 Viewed Changes for src/core/jabs-operations/jabs-operations.lisp: 21 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -10,26 +10,47 @@ (in-package :jabs) (defgeneric load-op (project &optional source-force) ) (defmethod load-op ((project project) &optional source-force) (if source-force (asdf:operate 'asdf:load-source-op (get-project-name project)) (asdf:operate 'asdf:load-op (get-project-name project)))) (defgeneric load-dependencies-op (project) ) (defmethod load-dependencies-op ((project project)) (load-project-dependencies project)) (defgeneric compile-op (project) ) (defmethod compile-op ((project project)) (asdf:operate 'asdf:compile-op (get-project-name project))) (defgeneric test-op (project) ) (defmethod test-op ((project project)) (run-tests project)) (defgeneric lib-op (project) ) (defmethod lib-op ((project project)) (jlog:err "lib-op Not implemented")) (defgeneric link-op (project) ) (defmethod link-op ((project project)) (jlog:err "link-op Not implemented")) (defgeneric prepare-op (project) ) (defmethod prepare-op ((project project)) (jlog:err "prepare-source-op Not implemented")) Loading