#!/bin/bash print-help() { echo "Usage: myx-dev-project COMMAND [ARGS]" echo "COMMAND:" echo " -i Initialization" echo " -u Update" echo " -h Help" echo "ARGS:" echo " -s server (default: gitlab.2)" echo " -d directory (default: .)" } while [[ $# -gt 0 ]]; do key="$1" case $key in -h|--help) print-help exit 0 ;; -i|--init) INIT="1" UPDATE="1" ACTION="1" shift # past argument ;; -u|--update) UPDATE="1" ACTION="1" shift # past argument ;; -s|--server) SERVER="$2" shift # past argument shift # past value ;; -d|--dir|--directory) DIRECTORY="$2" shift # past argument shift # past value ;; *) # unknown option DIRECTORY="$1" break ;; esac done if [[ -z "${ACTION}" ]]; then echo "Command is not defined." print-help exit 1 fi [[ -z "${SERVER}" ]] && SERVER=gitlab.2 TYPE=gitea [[ "${SERVER}" == *"gitlab"* ]] && TYPE=gitlab if [[ "$TYPE" == "gitea" ]]; then BASE_URL="https://${SERVER}" BRANCH_API="raw/branch" GITHOOKS_ARCHIVE="archive/master.tar.gz" fi if [[ "$TYPE" == "gitlab" ]]; then BASE_URL="http://${SERVER}" BRANCH_API="-/raw" GITHOOKS_ARCHIVE="-/archive/master/githooks-master.tar.gz" fi if [[ "x$INIT" == "x1" ]] ; then [[ -z "$DIRECTORY" ]] && DIRECTORY="$(pwd)" if [[ -d "${DIRECTORY}/.git" ]]; then echo "Directory already has repository. Exiting" exit 1 fi if ! mkdir -p "$DIRECTORY"; then echo "Can't create directory for git repository" exit 1 fi fi if ! cd "$DIRECTORY" >/dev/null; then echo "Can't change directory to $DIRECTORY" exit 1 fi if [[ "x$INIT" == "x1" ]] ; then if ! git init; then echo "Can't create git repository in directory $DIRECTORY" exit 1 fi fi mkdir -p files/{etc,log,share,var} touch files/{etc,log,share,var}/.gitkeep TF=$(mktemp -u) if ! wget -O "$TF" "${BASE_URL}/f1x1t/cmake-format/${BRANCH_API}/master/.cmake-format.py" 2>/dev/null; then echo "Can't download .clang-format.py" exit 1 else mv -f "$TF" .clang-format.py fi if ! wget -O "$TF" "${BASE_URL}/f1x1t/cmlib-gitignore/${BRANCH_API}/master/.gitignore" 2>/dev/null; then echo "Can't download .gitignore" exit 1 else mv -f "$TF" .gitignore fi if ! wget -O "$TF" "${BASE_URL}/f1x1t/gitlab-ci/${BRANCH_API}/master/.gitlab-ci.yml" 2>/dev/null; then echo "Can't download .gitlab-ci.yml" exit 1 else mv -f "$TF" .gitlab-ci.yml fi if ! wget -O "$TF" "${BASE_URL}/f1x1t/uncrustify-config/${BRANCH_API}/master/default.cfg" 2>/dev/null; then echo "Can't download .uncrustify.cfg" exit 1 else mv -f "$TF" .uncrustify.cfg fi if ! wget -O "$TF" "${BASE_URL}/f1x1t/clang-tidy-config/${BRANCH_API}/master/.clang-tidy" 2>/dev/null; then echo "Can't download .clang-tidy" exit 1 else mv -f "$TF" .clang-tidy fi if ! wget -O - "${BASE_URL}/f1x1t/githooks/${GITHOOKS_ARCHIVE}" | tar zx --strip-components=1 -C .git/hooks; then echo "Can't download ${GITHOOKS_ARCHIVE}" exit 1 fi sed -i '/.*_CMD.*/d' .gitlab-ci.yml sed -i '/.*variables:.*/d' .gitlab-ci.yml sed -i 's/^UNCRUST_CONFIG.*/UNCRUST_CONFIG=$REPO\/.uncrustify.cfg/' .git/hooks/pre-commit-uncrustify.cfg if [[ "x$INIT" != "x1" ]] ; then exit 0 fi tee -a CMakeLists.txt >/dev/null <