/durploy

A POSIX shell utility for d(e)ploy(ing) ur(bit) ships/desks

Primary LanguageShellGNU General Public License v3.0GPL-3.0

durploy: D(e)ploy Ur(bit)

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".

Installation

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.

Quick and Easy

curl -LO https://raw.githubusercontent.com/sidnym-ladrut/durploy/release/durploy
chmod u+x ./durploy
./durploy

Adding Autocomplete

Bash

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

ZSH

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

Usage

Create/Run a Development Ship

# fake ship
durploy ship zod

# real ship (comet)
durploy ship -p com com

Bootstrap a Development Ship w/ Init Scripts

durploy ship zod /path/to/init1.sh /path/to/init2.sh

(See the examples directory for samples.)

Synchronize a Desk to a Running Ship

durploy desk zod my-desk /path/to/my-desk/

Continually Deploy a Desk to a Running Ship

durploy desk -w zod my-desk /path/to/my-desk/

Remove a Development Ship

durploy nuke zod

Configuration

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.

Inspiration/Alternatives

Dependencies

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:

The following are additional dependencies required by the autocomplete scripts: