#! /usr/bin/env bash set -euo pipefail #### Detect Toolkit Project Root #### # if realpath is not available, create a semi-equivalent function command -v realpath >/dev/null 2>&1 || realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" } SCRIPT_PATH="$(realpath "${BASH_SOURCE[0]}")" SCRIPT_DIR="$(dirname "$SCRIPT_PATH")" TOOLKIT_ROOT="$(realpath "$SCRIPT_DIR/..")" if [[ ! -d "$TOOLKIT_ROOT/bin" ]] || [[ ! -d "$TOOLKIT_ROOT/config" ]]; then echo "ERROR: could not find root of overleaf-toolkit project (inferred project root as '$TOOLKIT_ROOT')" exit 1 fi function usage() { echo "Usage: bin/init" echo "" echo "Initialises local configuration files in the 'config/' directory" echo "" } function check_existing_config() { if [[ -f "$TOOLKIT_ROOT/config/overleaf.rc" ]] \ || [[ -f "$TOOLKIT_ROOT/config/variables.env" ]] \ || [[ -f "$TOOLKIT_ROOT/config/version" ]]; then echo "ERROR: Config files already exist, exiting " exit 1 fi } function set_up_config_files() { echo "Copying config files to 'config/'" cp "$TOOLKIT_ROOT/lib/config-seed/overleaf.rc" "$TOOLKIT_ROOT/config/" cp "$TOOLKIT_ROOT/lib/config-seed/variables.env" "$TOOLKIT_ROOT/config/" cp "$TOOLKIT_ROOT/lib/config-seed/version" "$TOOLKIT_ROOT/config/" } function __main__() { if [[ "${1:-null}" == "help" ]] || [[ "${1:-null}" == "--help" ]]; then usage exit fi check_existing_config set_up_config_files } __main__ "$@"