durploy
is a shell utility for deploying and managing Urbit ships and desks.
More specifically, it's wrapper script for all the common Urbit workflows found
on the Urbit website, particularly those enumerated in Urbit "Environment
Setup" and Urbit "Software Distribution".
durploy
is written in Bourne Shell and thus should run on most *NIX platforms.
Presently, it has only been tested on Linux; your mileage may vary! Please
review the "Dependencies" section below if you encounter any
issues with missing commands.
curl -LO https://raw.githubusercontent.com/sidnym-ladrut/durploy/release/durploy
chmod u+x ./durploy
./durploy
mkdir -p ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions/
curl -O https://raw.githubusercontent.com/sidnym-ladrut/durploy/release/complete/durploy \
> ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions/
# If you don't have bash autocomplete configured, run the following:
echo "source ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions/durploy" >> ~/.bashrc
mkdir -p ${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion/
curl -O https://raw.githubusercontent.com/sidnym-ladrut/durploy/release/complete/_durploy \
> ${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion/
# Be sure this runs before the 'autoload -U compinit; compinit' commands in your `.zshrc`
echo "fpath=(${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion/ $fpath)" >> $ZDOTDIR/.zshrc
# Refresh the autocomplete commands in the current session
autoload -U compinit
compinit
# fake ship
durploy ship zod
# real ship (comet)
durploy ship -p com com
durploy ship zod /path/to/init1.sh /path/to/init2.sh
(See the examples
directory for samples.)
durploy desk zod my-desk /path/to/my-desk/
durploy desk -w zod my-desk /path/to/my-desk/
durploy nuke zod
Most default directory locations and Urbit files used by durploy
can be
configured. For more information, see the "Config options" section of the
documentation output by durploy --help
.
udm
: Urbit desk manager written in Rust by nogirabouncer
: Urbit development/installation pipeline manager written in Ruby by ~datder-sonnetinstall.sh
: Urbit desk synchronization script written in Bash by ~timluc-miptev (with a more featureful version by ~midlev-mindyr)copy.sh
: An Urbit desk and dependencies synchronization script written in Bash by ~palfun-foslup
durploy
uses a small set of system binaries for processing. Most of these
utilities are available by default on modern Linux systems, and all of them
should be readily available to install on most modern *NIX systems.
This list is ordered roughly in descending order of expected availability:
git
curl
pgrep
which
readlink
xargs
sha256sum
touch
sh
mkdir
awk
sed
grep
printf
cp
basename
dirname
sleep
kill
The following are additional dependencies required by the autocomplete scripts: