https://github.com/thblt/borg-queen
Manage, install and upgrade Borg drones. (PRE-ALPHA - NOT USABLE)
https://github.com/thblt/borg-queen
Last synced: about 1 year ago
JSON representation
Manage, install and upgrade Borg drones. (PRE-ALPHA - NOT USABLE)
- Host: GitHub
- URL: https://github.com/thblt/borg-queen
- Owner: thblt
- License: gpl-3.0
- Created: 2017-07-11T18:04:55.000Z (almost 9 years ago)
- Default Branch: initial-dev
- Last Pushed: 2018-03-15T18:08:31.000Z (about 8 years ago)
- Last Synced: 2025-02-16T01:25:29.335Z (over 1 year ago)
- Language: Emacs Lisp
- Homepage:
- Size: 722 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+TITLE: Borg Queen: Manage and upgrade Borg drones
*This is pre-alpha software. DO NOT USE.*
#+CAPTION: Screenshot of Borg-Queen in use.
[[./screenshot.png]]
Borg Queen is a package management frontend for [[https://github.com/emacscollective/borg][Borg]], providing a
visual interface to manage and upgrade your drones, along with a few
utility functions.
Borg is a minimal Emacs package manager which stores packages as Git
submodules. Unlike the standard =package.el=, Borg makes it trivial to
contribute back changes to packages, since everything is already a git
repository. No more need to clone repositories and update =load-path=
to start working on a package: everything's already there. Also, Borg
makes your configuration perfectly reproducible, since Git submodules
always point to a specific commit.
On top of Borg, Borg-Queen provides:
- A *unified package management UI* for both clones and drones (simple
clones or submodules).
- *Manually managed upgrades*. Borg Queen leaves you in full
control of what, when and how you upgrade. You may pull everything
to the more recent commit, or just pull two new commits for a
specific drone, or maybe pull a drone to the latest commit while
downgrading another to an older tag.
- *Stable or unstable mode*. Borg Queen allows to auto-upgrade only to
new tags or to each new commit.
- *PGP signatures*. Borg Queen allows to define (globally or for
each drone) a set of valid PGP keys and verify signatures *before*
building an updated drone. It has an extra paranoia mode where it
won't upgrade a drone unless it has a list of valid keys for it,
and of course the signature can be verified.
* Using Borg Queen
Try =borg-queen= by running:
#+BEGIN_EXAMPLE
M-x borg-clone RET borg-queen RET
M-x borg-queen
#+END_EXAMPLE
You'll be shown Borg Queen's UI.
** Using PGP signatures
Git allows for commits of tags to be digitally signed using GnuPG. By default, Borg Queen verifies such signatures when one is present, and dispays the signed ID in the main screen, and verification details on a popup.
It is better to tell Borg Queen which PGP keys are actually valid for signing packages:
- To configure a list of valid PGP keys for a given package, set the =submodules.DRONE.signingkey= entry in =.gitmodules=. This entry can be repeated if needed.
- To configure
* Standard bindings
These bindings are active in the Borg Queen interface, which is invoked with =M-x borg-queen RET=.
| Binding | Action |
|---------+-----------------------------------------------------|
| =u= | Mark for *auto upgrade* |
| =U= | Mark for *auto upgrade or downgrade* (see note below) |
| =c= | Mark for upgrade to most recent *commit* |
| =C= | *Prompt* for commit or tag, then mark for *upgrade* |
| =t= | Mark for *upgrade to latest tag* |
| =T= | *Prompt for tag*, then mark for *upgrade* |
| =A= | Mark clone for assimilation |
| =R= | Mark for removal |
|---------+-----------------------------------------------------|
| =x= | *Execute* marks |
|---------+-----------------------------------------------------|
| =a= | *Assimilate* new package as a submodule |
| =b= | *Clone* new package |
| =f= | *Fork* a package. |
| =!= | *Commit* changes to =.emacs.d=. |
|---------+-----------------------------------------------------|
| =g= | *Refresh* |