#!/usr/bin/env bash # # Install the Spectre CLI tool. set -e cd "${BASH_SOURCE%/*}" source bashlib inf "This will install the spectre tool." # Try to guess then ask for the bin dir to install to. IFS=: read -a paths <<< "$PATH" if inArray ~/bin "${paths[@]}"; then bindir=~/bin elif inArray ~/.bin "${paths[@]}"; then bindir=~/.bin elif inArray /usr/local/bin "${paths[@]}"; then bindir=/usr/local/bin else bindir=~/bin fi bindir=$(ask -d "$bindir" "What bin directory should I install to?") [[ -d "$bindir" ]] || mkdir "$bindir" || ftl 'Cannot create missing bin directory: %s' "$bindir" || exit [[ -w "$bindir" ]] || ftl 'Cannot write to bin directory: %s' "$bindir" || exit # Install Spectre. install -m555 spectre "$bindir" [[ ! -e "$bindir/bashlib" ]] && install bashlib "$bindir" ||: # Convenience bash function. inf "Installation successful!" echo inf "To improve usability, you can install an spectre function in your bash shell." inf "This function adds the following features:" inf " - Automatically remember your user name in the shell if not set." inf " - Automatically put the password in the clipboard (some platforms)." echo inf "To do this you need the following function in ~/.bashrc:\n%s" "$(> ~/.bashrc inf "Done! Don't forget to run '%s' to apply the changes!" "source ~/.bashrc" fi echo inf "You can also save your user name in ~/.bashrc. Leave blank to skip this step." if SPECTRE_USERNAME=$(ask "Your full name:") && [[ $SPECTRE_USERNAME ]] ; then printf 'export SPECTRE_USERNAME=%q\n' "$SPECTRE_USERNAME" >> ~/.bashrc fi inf "If you have an askpass program you'd like to use, you can specify it here." inf "An askpass program provides a graphical interface for entering things like your personal secret." inf "Leave blank to skip this step and enter passwords using the terminal." if [[ ! $SPECTRE_ASKPASS ]] && hash ssh-askpass 2>/dev/null; then SPECTRE_ASKPASS=ssh-askpass fi if SPECTRE_ASKPASS=$(ask +"$SPECTRE_ASKPASS" "askpass program:") && [[ $SPECTRE_ASKPASS ]] ; then printf 'export SPECTRE_ASKPASS=%q\n' "$SPECTRE_ASKPASS" >> ~/.bashrc fi echo inf "Shell features installed." inf "To load these convenience features into your already running shell, type: source ~/.bashrc" inf "To begin using Spectre, type: spectre -h or spectre my-site-name"