Skip to content

Guix pull and update with sudoloop. Elisp code which creates and runs shell scripts to more efficiently update Guix with sudoloop (for `guix system reconfigure') and multiple attempts to counteract transient timeouts/failure, so full guix updates are less painful.

License

Notifications You must be signed in to change notification settings

emacsomancer/emacs-guix-sudoloop-pull-ups

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NOTE: This package is in very early stages. I’m using it regularly, but many improvements need yet to be made, especially in being more extensible in various ways.

Guix Sudoloop Pull Ups

Guix pull and update with sudoloop. Elisp code which creates and runs shell scripts to more efficiently update Guix with sudoloop (for guix system reconfigure, to stop a full update process from hanging in the middle waiting the user to enter their sudo password) and multiple attempts at each action (to counteract transient timeouts/failure). In general, to make doing full guix updates (e.g., a sequence of guix pull, guix package -u, sudo guix system reconfigure ..., guix home reconfigure ...) be less painful.

Screenshots

./images/screenshot--guix-sudoloop-pullups-in-action.png

How to Install

Easiest if you’re using Emacs 30 or above is the built-in vc-use-package. If you use an alternative/supplement package manager already, you probably know what you’re doing. Otherwise:

Manual

Clone this repo or copy the guix-sudoloop-pull-ups.el file somewhere and load it via init.el, e.g., copy to ~/.emacs.d/lisp/guix-sudoloop-pull-ups/ and put in your init.el:

(add-to-list 'load-path
             "~/.emacs.d/lisp/guix-sudoloop-pull-ups")
  (require 'guix-sudoloop-pull-ups)

vc-use-package [built-in]

Included in Emacs 30+. Probably the easiest method:

(use-package guix-sudoloop-pull-ups
  :vc (guix-sudoloop-pull-ups :url "https://github.com/emacsomancer/guix-sudoloop-pull-ups"
                    :branch "main")
  :ensure t)

vc-use-package [separately packaged]

The non-built-in version of vc-use-package uses slightly different syntax:

(use-package guix-sudoloop-pull-ups
  :vc (:fetcher github :repo "emacsomancer/guix-sudoloop-pull-ups")
  :ensure t)

elpaca

With elpaca:

(use-package guix-sudoloop-pull-ups
  :ensure (:host github :repo "emacsomancer/guix-sudoloop-pull-ups"))

straight

With straight:

(use-package guix-sudoloop-pull-ups
  :straight (guix-sudoloop-pull-ups :type git :host github :repo "emacsomancer/guix-sudoloop-pull-ups")
  :ensure t)

quelpa

With quelpa:

(use-package guix-sudoloop-pull-ups
  :quelpa (guix-sudoloop-pull-ups :fetcher github :repo "emacsomancer/guix-sudoloop-pull-ups")
  :ensure t)

With Elpaca

add to init.el:

(use-package guix-sudoloop-pull-ups
  :ensure (:host github :repo "emacsomancer/guix-sudoloop-pull-ups"))

Notes

Sudoloop

The sudoloop’ing part of the shell code is taken pretty much directly from Clar Fon’s implementation [https://codeberg.org/clarfonthey/sudoloop] (licensed under CC0 licence).

sudoloop issue/warning/possible dangers

Discussions

About

Guix pull and update with sudoloop. Elisp code which creates and runs shell scripts to more efficiently update Guix with sudoloop (for `guix system reconfigure') and multiple attempts to counteract transient timeouts/failure, so full guix updates are less painful.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published