raphiz/passwordcards

View on GitHub
deploy.sh

Summary

Maintainability
Test Coverage
#!/usr/bin/env bash

# Abort if a command fails!
set -e

TEMP_DIR=/tmp/

if [ ! -n "$HOST" ];then
    echo "missing option \"HOST\", aborting"
    exit 1
fi
if [ ! -n "$USER" ];then
    echo  "missing option \"HOST\", aborting"
    exit 1
fi
if [ ! -n "$PASSWORD" ];then
    echo  "missing option \"HOST\", aborting"
    exit 1
fi
if [ ! -n "$DIRECTORY" ];then
    echo  "missing option \"DIRECTORY\", aborting"
    exit 1
fi
if [ ! -n "$IGNORE" ];then
    IGNORE=''
fi

# Create temporary director
WORKING_DIR="$TEMP_DIR/workspace"

# TODO: fail if exists..
mkdir -p $WORKING_DIR
export COMPOSER_HOME="$WORKING_DIR"

# Clone the repo & checkout branch
echo "Creating archive..."
git archive master --format=tar --output=$TEMP_DIR/export.tar
tar -xf $TEMP_DIR/export.tar -C $WORKING_DIR

# Change directory into the working dir
cd "$WORKING_DIR"

# install the dependencies
echo "Install dependencies..."
composer install --no-dev --optimize-autoloader

# Prepare ignore parameters
IFS=';' read -a igor <<< "$IGNORE"
params=''
for element in "${igor[@]}"
do
    params=$(echo "$params --exclude $element")
done

# TODO: allow SFTP
# TODO: allow verify cert
echo "Uploading..."
lftp -e "
open $HOST
set ssl:verify-certificate no
set ftp:ssl-allow off
set cmd:fail-exit true
user $USER $PASSWORD
cd $DIRECTORY
mirror --reverse $params --delete --ignore-time --verbose --parallel . .
bye
"

# Complete!
echo "Done!"
exit 0