Skip to content

Commit b925aa5

Browse files
fnussbaumbcc32
authored andcommitted
[core] Split configuration-layer/update-packages into two functions
This allows programmatically updating specific packages (I am using this for testing syl20bnr#16938, for example). It also prepares the possibility of selecting packages to update through embark. Additionally, it might be slightly easier to read.
1 parent 497299f commit b925aa5

File tree

1 file changed

+47
-42
lines changed

1 file changed

+47
-42
lines changed

core/core-configuration-layer.el

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2073,13 +2073,7 @@ to update."
20732073
(configuration-layer//get-packages-to-update distant-packages))
20742074
(skipped-count (length
20752075
configuration-layer--check-new-version-error-packages))
2076-
(date (format-time-string "%y-%m-%d_%H.%M.%S"))
2077-
(rollback-dir (expand-file-name
2078-
(concat configuration-layer-rollback-directory
2079-
(file-name-as-directory date))))
2080-
(upgrade-count (length update-packages))
2081-
(upgraded-count 0)
2082-
(update-packages-alist))
2076+
(upgrade-count (length update-packages)))
20832077
(when configuration-layer--check-new-version-error-packages
20842078
(spacemacs-buffer/warning
20852079
(concat "--> Warning: cannot update %s package(s), possibly due"
@@ -2122,45 +2116,56 @@ to update."
21222116
(list pkg)))
21232117
update-packages))))
21242118
(setq upgrade-count (length update-packages)))))
2125-
(spacemacs-buffer/append
2126-
"--> performing backup of package(s) to update...\n" t)
2127-
(spacemacs//redisplay)
2128-
(dolist (pkg update-packages)
2129-
(unless (memq pkg dotspacemacs-frozen-packages)
2130-
(let* ((src-dir (configuration-layer//get-package-directory pkg))
2131-
(dest-dir (expand-file-name
2132-
(concat rollback-dir
2133-
(file-name-as-directory
2134-
(file-name-nondirectory src-dir))))))
2135-
(copy-directory src-dir dest-dir 'keeptime 'create 'copy-content)
2136-
(push (cons pkg (file-name-nondirectory src-dir))
2137-
update-packages-alist))))
2138-
(spacemacs/dump-vars-to-file
2139-
'(update-packages-alist)
2140-
(expand-file-name (concat rollback-dir
2141-
configuration-layer-rollback-info)))
2142-
(dolist (pkg update-packages)
2143-
(unless (memq pkg dotspacemacs-frozen-packages)
2144-
(setq upgraded-count (1+ upgraded-count))
2145-
(spacemacs-buffer/replace-last-line
2146-
(format "--> preparing update of package %s... [%s/%s]"
2147-
pkg upgraded-count upgrade-count) t)
2148-
(spacemacs//redisplay)
2149-
(configuration-layer//package-delete pkg)))
2150-
(spacemacs-buffer/append
2151-
(format "\n--> %s package(s) to be updated.\n" upgraded-count))
2152-
(spacemacs-buffer/append
2153-
(format "\nRestart Emacs to install the updated packages. %s\n"
2154-
(if (member 'restart-emacs update-packages)
2155-
(concat "\n(SPC q r) won't work this time, because the"
2156-
"\nrestart-emacs package is being updated.")
2157-
"(SPC q r)")))
2158-
(configuration-layer//cleanup-rollback-directory)
2159-
(spacemacs//redisplay))
2119+
(configuration-layer//update-packages update-packages))
21602120
(when (eq upgrade-count 0)
21612121
(spacemacs-buffer/append "--> All packages are up to date.\n")
21622122
(spacemacs//redisplay))))
21632123

2124+
(defun configuration-layer//update-packages (update-packages)
2125+
"Back up and delete packages in UPDATE-PACKAGES."
2126+
(let* ((date (format-time-string "%y-%m-%d_%H.%M.%S"))
2127+
(rollback-dir (expand-file-name
2128+
(concat configuration-layer-rollback-directory
2129+
(file-name-as-directory date))))
2130+
(update-packages-alist)
2131+
(upgraded-count 0)
2132+
(upgrade-count (length update-packages)))
2133+
(spacemacs-buffer/append
2134+
"--> performing backup of package(s) to update...\n" t)
2135+
(spacemacs//redisplay)
2136+
(dolist (pkg update-packages)
2137+
(unless (memq pkg dotspacemacs-frozen-packages)
2138+
(let* ((src-dir (configuration-layer//get-package-directory pkg))
2139+
(dest-dir (expand-file-name
2140+
(concat rollback-dir
2141+
(file-name-as-directory
2142+
(file-name-nondirectory src-dir))))))
2143+
(copy-directory src-dir dest-dir 'keeptime 'create 'copy-content)
2144+
(push (cons pkg (file-name-nondirectory src-dir))
2145+
update-packages-alist))))
2146+
(spacemacs/dump-vars-to-file
2147+
'(update-packages-alist)
2148+
(expand-file-name (concat rollback-dir
2149+
configuration-layer-rollback-info)))
2150+
(dolist (pkg update-packages)
2151+
(unless (memq pkg dotspacemacs-frozen-packages)
2152+
(setq upgraded-count (1+ upgraded-count))
2153+
(spacemacs-buffer/replace-last-line
2154+
(format "--> preparing update of package %s... [%s/%s]"
2155+
pkg upgraded-count upgrade-count) t)
2156+
(spacemacs//redisplay)
2157+
(configuration-layer//package-delete pkg)))
2158+
(spacemacs-buffer/append
2159+
(format "\n--> %s package(s) to be updated.\n" upgraded-count))
2160+
(spacemacs-buffer/append
2161+
(format "\nRestart Emacs to install the updated packages. %s\n"
2162+
(if (member 'restart-emacs update-packages)
2163+
(concat "\n(SPC q r) won't work this time, because the"
2164+
"\nrestart-emacs package is being updated.")
2165+
"(SPC q r)")))
2166+
(configuration-layer//cleanup-rollback-directory)
2167+
(spacemacs//redisplay)))
2168+
21642169
(defun configuration-layer//rollback-slots ()
21652170
"Return a completion table for rollback slots."
21662171
(let ((dirs 'unset))

0 commit comments

Comments
 (0)