Loading clpm/bundle.lisp +19 −26 Original line number Diff line number Diff line Loading @@ -80,32 +80,25 @@ (defun bundle-install (&key clpmfile (validate (constantly t)) no-resolve) "Given a clpmfile instance, install all releases from its lock file, creating the lock file if necessary." (with-bundle-session (clpmfile) (let* ((clpmfile (get-clpmfile clpmfile)) (lockfile-pathname (clpmfile-lockfile-pathname clpmfile)) (lockfile nil) (changedp nil)) (with-clpm-session () (with-context (lockfile (clpmfile-pathname clpmfile)) (let ((clpmfile (get-clpmfile clpmfile))) (unless (config-value :local) (dolist (s (context-sources clpmfile)) (unless (source-can-lazy-sync-p s) (sync-source s)))) (if (probe-file lockfile-pathname) (setf lockfile (load-lockfile lockfile-pathname)) (setf lockfile (create-empty-lockfile clpmfile))) (if no-resolve (mapc #'install-release (context-releases lockfile)) (progn ;; Nuke the lockfile's requirements so that we pick up deletions from the ;; clpmfile. ;; Nuke the lockfile's requirements so that we pick up deletions ;; from the clpmfile. (setf (context-requirements lockfile) nil) (setf (context-user-sources lockfile) (context-user-sources clpmfile)) (setf lockfile (install-requirements (context-requirements clpmfile) :context lockfile :validate (lambda (diff) (aprog1 (funcall validate diff) (setf changedp it))) :update-projects (config-table-keys :bundle :local))) (when changedp (save-context lockfile)))) :validate validate :update-projects (config-table-keys :bundle :local) :save-context-p t))))) lockfile))) Loading clpm/context.lisp +6 −3 Original line number Diff line number Diff line Loading @@ -158,7 +158,7 @@ can be named, global contexts, or anonymous.")) (defun call-with-context (thunk context-designator) (if (context-anonymous-p context-designator) (let* ((context-name context-designator) (let* ((context-name (context-name context-designator)) (*default-pathname-defaults* (uiop:pathname-directory-pathname context-name)) (*vcs-project-override-fun* (make-vcs-override-fun *default-pathname-defaults*))) (with-config-source (:pathname (merge-pathnames ".clpm/bundle.conf" Loading Loading @@ -346,8 +346,11 @@ in place with the same name. Return the new requirement if it was modified." ;; * Deserializing (defun load-anonymous-context-from-pathname (pn) (if (probe-file pn) (with-open-file (s pn) (load-context-from-stream s pn))) (load-context-from-stream s pn)) (make-instance 'context :name pn))) (defun context-downselect-sources (name sources) (let ((allowed-source-names (config-value :contexts name :sources))) Loading Loading
clpm/bundle.lisp +19 −26 Original line number Diff line number Diff line Loading @@ -80,32 +80,25 @@ (defun bundle-install (&key clpmfile (validate (constantly t)) no-resolve) "Given a clpmfile instance, install all releases from its lock file, creating the lock file if necessary." (with-bundle-session (clpmfile) (let* ((clpmfile (get-clpmfile clpmfile)) (lockfile-pathname (clpmfile-lockfile-pathname clpmfile)) (lockfile nil) (changedp nil)) (with-clpm-session () (with-context (lockfile (clpmfile-pathname clpmfile)) (let ((clpmfile (get-clpmfile clpmfile))) (unless (config-value :local) (dolist (s (context-sources clpmfile)) (unless (source-can-lazy-sync-p s) (sync-source s)))) (if (probe-file lockfile-pathname) (setf lockfile (load-lockfile lockfile-pathname)) (setf lockfile (create-empty-lockfile clpmfile))) (if no-resolve (mapc #'install-release (context-releases lockfile)) (progn ;; Nuke the lockfile's requirements so that we pick up deletions from the ;; clpmfile. ;; Nuke the lockfile's requirements so that we pick up deletions ;; from the clpmfile. (setf (context-requirements lockfile) nil) (setf (context-user-sources lockfile) (context-user-sources clpmfile)) (setf lockfile (install-requirements (context-requirements clpmfile) :context lockfile :validate (lambda (diff) (aprog1 (funcall validate diff) (setf changedp it))) :update-projects (config-table-keys :bundle :local))) (when changedp (save-context lockfile)))) :validate validate :update-projects (config-table-keys :bundle :local) :save-context-p t))))) lockfile))) Loading
clpm/context.lisp +6 −3 Original line number Diff line number Diff line Loading @@ -158,7 +158,7 @@ can be named, global contexts, or anonymous.")) (defun call-with-context (thunk context-designator) (if (context-anonymous-p context-designator) (let* ((context-name context-designator) (let* ((context-name (context-name context-designator)) (*default-pathname-defaults* (uiop:pathname-directory-pathname context-name)) (*vcs-project-override-fun* (make-vcs-override-fun *default-pathname-defaults*))) (with-config-source (:pathname (merge-pathnames ".clpm/bundle.conf" Loading Loading @@ -346,8 +346,11 @@ in place with the same name. Return the new requirement if it was modified." ;; * Deserializing (defun load-anonymous-context-from-pathname (pn) (if (probe-file pn) (with-open-file (s pn) (load-context-from-stream s pn))) (load-context-from-stream s pn)) (make-instance 'context :name pn))) (defun context-downselect-sources (name sources) (let ((allowed-source-names (config-value :contexts name :sources))) Loading