mirror of
https://gitlab.com/spectre.app/cli.git
synced 2024-11-01 02:41:44 +01:00
08d1c01f36
[UPDATED] Renamed all Master Password names and namespaces to Spectre equivalents.
64 lines
2.4 KiB
Bash
Executable file
64 lines
2.4 KiB
Bash
Executable file
#!/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" "$(<spectre.bashrc)"
|
|
echo
|
|
inf "We can do this for you automatically now."
|
|
if ask -c Y!n "Append the spectre function to your .bashrc?"; then
|
|
cat spectre.bashrc >> ~/.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"
|