diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b5a5e8..20be450 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(myx-dev VERSION 0.1.2) +project(myx-dev VERSION 0.1.6) include(GNUInstallDirs) install(DIRECTORY bin/ DESTINATION "${CMAKE_INSTALL_BINDIR}") diff --git a/bin/myx-dev-git-init b/bin/myx-dev-git-init deleted file mode 100755 index fe7a45d..0000000 --- a/bin/myx-dev-git-init +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -while [[ $# -gt 0 ]]; do - key="$1" - - case $key in - -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 - -[[ -z "$DIRECTORY" ]] && DIRECTORY="$(pwd)" -if [[ -d "${DIRECTORY}/.git" ]]; then - echo "Directory already has repository. Exiting" - 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 ! mkdir -p "$DIRECTORY"; then - echo "Can't create directory for git repository" - exit 1 -fi - -pushd "$DIRECTORY" >/dev/null - -if ! git init; then - echo "Can't create git repository in directory $DIRECTORY" - exit 1 -fi -mkdir -p files/{etc,log,share,var} -touch files/{etc,log,share,var}/.gitkeep - -wget "${BASE_URL}/f1x1t/cmake-format/${BRANCH_API}/master/.cmake-format.py" -wget "${BASE_URL}/f1x1t/cmlib-gitignore/${BRANCH_API}/master/.gitignore" -wget "${BASE_URL}/f1x1t/gitlab-ci/${BRANCH_API}/master/.gitlab-ci.yml" -wget -o files/etc/uncrustify.cfg "${BASE_URL}/f1x1t/uncrustify-config/${BRANCH_API}/master/default.cfg" -wget -O - "${BASE_URL}/f1x1t/githooks/${GITHOOKS_ARCHIVE}" | tar zx --strip-components=1 -C .git/hooks - -sed -i '/.*_CMD.*/d' .gitlab-ci.yml -sed -i '/.*variables:.*/d' .gitlab-ci.yml -sed -i 's/^UNCRUST_CONFIG.*/UNCRUST_CONFIG=$REPO\/files\/etc\/uncrustify.cfg/' .git/hooks/pre-commit-uncrustify.cfg - -git add .cmake-format.py .gitignore .gitlab-ci.yml files -git commit -m "Начало проекта" - -if [ -e .gitmodules ]; then - sed -i 's/git@${SERVER}:/..\/..\//' .gitmodules - git submodule sync --recursive - git commit -m "Относительные пути к подмодулям" .gitmodules -fi - -popd >/dev/null - diff --git a/bin/myx-dev-project b/bin/myx-dev-project new file mode 100755 index 0000000..fd8c748 --- /dev/null +++ b/bin/myx-dev-project @@ -0,0 +1,187 @@ +#!/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 <