68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SEQGITURL="https://winklerfamilie.eu/git/efelon/shell_sequencer.git"
|
|
DEFAULT_DIR="/opt/sequencer"
|
|
DEFAULT_USER_SEQS="/opt/seqs"
|
|
SEQUENCER_DIR=
|
|
|
|
# Get script working directory
|
|
WDIR="$(cd "$(dirname -- "${BASH_SOURCE[0]}")" >>/dev/null 2>&1 && pwd)"
|
|
|
|
SEQUENCER_DIR="$1"
|
|
|
|
# Installation directory was not set by argument -d
|
|
if [ -z "$SEQUENCER_DIR" ]; then
|
|
[ -w "$(dirname "$DEFAULT_DIR")" ] && SEQUENCER_DIR="$DEFAULT_DIR"
|
|
# Fallback to working directory
|
|
[ -z "$SEQUENCER_DIR" ] && $SEQUENCER_DIR="${WDIR}/sequencer"
|
|
fi
|
|
|
|
# Check if already installed
|
|
if [ -d "$SEQUENCER_DIR" ]; then
|
|
echo " [E] Sequencer seems to be already installed at:"
|
|
echo " $SEQUENCER_DIR"
|
|
exit 1
|
|
fi
|
|
if [ ! -w "$(dirname $SEQUENCER_DIR)" ]; then
|
|
echo " [E] Your user has no permission to write to $(dirname $SEQUENCER_DIR)"
|
|
exit 2
|
|
fi
|
|
|
|
# Install git if neccessary
|
|
which git >>/dev/null 2>&1
|
|
if [ $? != 0 ]; then
|
|
echo " [W] Git not found and will be installed"
|
|
apt update
|
|
if [ $? != 0 ]; then
|
|
echo " [W] Cannot update apt repositories"
|
|
fi
|
|
apt install git -y
|
|
if [ $? != 0 ]; then
|
|
echo " [E] Cannot install git via apt"
|
|
exit 3
|
|
fi
|
|
fi
|
|
|
|
# Clone sequncer to target directory
|
|
git clone $SEQGITURL "$SEQUENCER_DIR"
|
|
if [ $? -ne 0 ]; then
|
|
echo " [E] Error cloning git repository:"
|
|
echo " $SEQGITURL"
|
|
exit 4
|
|
fi
|
|
|
|
# If available use configuration
|
|
. ${SEQUENCER_DIR}/sequencer.cfg >/dev/null 2>&1
|
|
|
|
# Set to default if not configured
|
|
[ -z "$SEQUENCER_USER_SEQS" ] && SEQUENCER_USER_SEQS="$DEFAULT_USER_SEQS"
|
|
|
|
# Install sequncer script
|
|
ln -s "${SEQUENCER_DIR}/sequencer/sequencer.sh" "/usr/local/bin"
|
|
if [ "$SEQUENCER_USER_SEQS" != "$SEQUENCER_DIR/seqs" ]; then
|
|
ln -sT "${SEQUENCER_DIR}/seqs" "${SEQUENCER_USER_SEQS}"
|
|
fi
|
|
|
|
echo " [I] Successfully installed shell sequencer"
|
|
echo " to: $SEQUENCER_DIR"
|