initial commit

This commit is contained in:
manuel.manhart committed 2024-03-25 10:20:47 +01:00
commit df1999fd4f
46 files changed
+913

No files matched your search

@@ -0,0 +1,54 @@
_BASH_SCRIPT_COMPILER_SCRIPT_NAME-completion()
{
local cur prev opts tag help
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
prevPrev="${COMP_WORDS[COMP_CWORD-2]}"
opts="mind pullAndMerge help config"
config="print set init"
# TODO check if this is still the most efficient way to list help options
HELP_PATH=${BASH_SOURCE%/*}/gt-help
help=${opts}
#help=`ls $HELP_PATH`
if [[ ${cur} == "help" ]] ; then
createFromString "${help}"
return 0
elif [[ $COMP_CWORD -gt 1 ]]; then
if [ "$prev" == "tag" ]; then
# no suggestions for tags
return 0
elif [ "$prev" == "config" ]; then
createFromString "$config"
elif [ "$prevPrev" == "config" ]; then
# no suggestions after config xyz
return 0
elif [ "$prev" == "--path" ] || [ "$prev" == "-p" ]; then
createFromDirectory "$DOCKER_SERVICES_HOME"
elif [[ $COMP_CWORD -gt 1 ]] && [ "$prev" == "-p" ]; then
createFromDirectory "$DOCKER_SERVICES_HOME"
# elif [[ $COMP_CWORD -gt 1 ]] && [ "$prev" != "desc" ] && [ "$prev" != "year" ]; then
# createFromString "${twoPlus}"
else
createFromString "${opts}"
fi
return 0
elif [[ $COMP_CWORD -eq 1 ]]; then
createFromString "${opts}"
return 0
fi
}
createFromString() {
COMPREPLY=( $(compgen -W "${1}" -- ${cur}) )
}
createFromDirectory() {
pushd $1 >/dev/null
COMPREPLY=( $(compgen -o plusdirs -- $cur) )
popd >/dev/null
}
complete -F _BASH_SCRIPT_COMPILER_SCRIPT_NAME-completion BASH_SCRIPT_COMPILER_SCRIPT_NAME
+28
View File
@@ -0,0 +1,28 @@
configInit() {
if [ ! -f "${DEV_CONFIG_FILE}" ]; then
echo Could not find any config file, creating a file for you to fill in the values in ${DEV_CONFIG_FILE}
if [ ! -d "${DEV_CONFIG_FILE_PATH}" ]; then
echo "Config directory '${DEV_CONFIG_FILE_PATH}' does not exist yet, creating..."
mkdir -p ${DEV_CONFIG_FILE_PATH}
fi
if [ -f "/IMAGE_NAME" ]; then
# || [ `whoami` = 'dev' ]; then
MODE=devcontainer
GRADLE_DEFAULT=wrapper
else
MODE=host
GRADLE_DEFAULT=normal
fi
cat <<END >${DEV_CONFIG_FILE}
# this file was created by dev script by Manuel Manhart
# it is now in your hands and will not be changed by scripts anymore
MODE=$MODE
LIFERAY_DOCKER=(
"TODO" # change this to the real path
)
END
fi
}
+11
View File
@@ -0,0 +1,11 @@
# reads the configuration file where the docker container names are saved
configPrint() {
echo ""
echo "Configuration file:"
cat ${DEV_CONFIG_FILE} | while read line
do
echo "$line"
done
echo ""
echo "Version: $SCRIPT_VERSION"
}
+23
View File
@@ -0,0 +1,23 @@
# reads the configuration file where the docker container names are saved
configRead() {
if [ -f "${DEV_CONFIG_FILE_PATH}/${DEV_CONFIG_FILE_NAME}" ]; then
echo found config file in ${DEV_CONFIG_FILE_PATH}/${DEV_CONFIG_FILE_NAME}
source ${DEV_CONFIG_FILE_PATH}/${DEV_CONFIG_FILE_NAME}
# Read common vars from the config file
# the incantation here ensures (by env) that only key=value pairs are present
# then declare-ing the result puts those vars in our environment
# declare $(env -i `cat ${DEV_CONFIG_FILE_PATH}/${DEV_CONFIG_FILE_NAME}` >/dev/null 2>&1) >/dev/null 2>&1
# IFS=$'\n' read -d '' -r -a LIFERAY_DOCKER < ${DEV_CONFIG_FILE_PATH}/${DEV_CONFIG_FILE_NAME}
fi
# as fallback search in script home directory
SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
if [ -f "${SCRIPTPATH}/${DEV_CONFIG_FILE_NAME}" ]; then
echo found config file in ${SCRIPTPATH}/${DEV_CONFIG_FILE_NAME}
declare $(env -i `cat ${SCRIPTPATH}/${DEV_CONFIG_FILE_NAME}` >/dev/null 2>&1)
# source ${SCRIPTPATH}/${DEV_CONFIG_FILE_NAME}
# IFS=$'\n' read -d '' -r -a LIFERAY_DOCKER < ${SCRIPTPATH}/${DEV_CONFIG_FILE_NAME}
fi
}
+7
View File
@@ -0,0 +1,7 @@
gitPull() {
if [ -f ".git" ]; then
git pull
else
echo "Seems not to be a git repo"
fi
}
+17
View File
@@ -0,0 +1,17 @@
gitTag() {
if [ -n "$2" ]; then
git pull >/dev/null
local message=""
if [ -n "$3" ]; then
message="-m $3"
fi
git tag -a $2 $message
git push --tags
else
git fetch origin >/dev/null
echo "Existing tags"
git tag
echo ""
echo "If you want to create a new tag, just provide a tag version"
fi
}
+27
View File
@@ -0,0 +1,27 @@
help() {
local progName=$(echo "$0" | rev | cut -d'/' -f1 | rev)
cat <<-END
$progName is a tool for makeing git easier to use.
Usage:
$progName [options]
The options are:
need a param (you can combine like ubd)
config init ... for creating a config file (if none exists yet - automatically checked)
config print ... for printing the config file content
mine [USER] ... fetches the log of either the given user or the one defined in git config
pullAndMerge BRANCH ... pulls the given branch and merges it into the current one (updating to latest develop / main)
pull ... for pulling from git (not working?)
tag NAME [MESSAGE] ... creates and pushes a new tag
branch NAME ... creates a new branch (TODO)
help ... show this page
Version: $SCRIPT_VERSION
END
exit
}
+13
View File
@@ -0,0 +1,13 @@
mine() {
# fetch user from args
local gitUser=$GIT_USER
# Get the user defined in the local config
if [ -z "$gitUser" ]; then
gitUser=$(git config --get user.name)
echo "Fetching user from git config: $gitUser"
fi
echo "Git user: $gitUser"
# get my commits
git log --author="$gitUser"
}
+36
View File
@@ -0,0 +1,36 @@
parseArgs() {
if [ -z "$1" ]; then
help
fi
local setVariable=0
local variableName=""
#echo "parsing args"
for var in "$@"
do
#echo "DEBUG - arg[i]: '$var' - setVariable: $setVariable"
if [ "$setVariable" == 0 ]; then
variableName=""
fi
if [ "$var" == "-h" ] || [ "$var" == "--help" ]; then
help
elif [ $setVariable -gt 0 ]; then
#echo "Setting variables..."
setVariable="$(($setVariable - 1))"
if [ "$variableName" == "tag" ]; then
TAG=$var
#echo "DEBUG - Setting tag to '$var'"
elif [ "$variableName" == "path" ]; then
SOURCE_PATH=$var
#echo "DEBUG - Setting source path to '$var'"
fi
elif [ "$var" == "-p" ] || [ "$var" == "--path" ]; then
setVariable=1
variableName="path"
elif [ "$var" == "tag" ]; then
setVariable=1
variableName="tag"
fi
done
}
+6
View File
@@ -0,0 +1,6 @@
parseArgs_mine() {
echo "Fetching user: $1"
if [ -n "$1" ]; then
GIT_USER=$1
fi
}
@@ -0,0 +1,9 @@
parseArgs_pullAndMerge() {
echo "Pulling and merging branch $1 into current one"
if [ -z "$1" ]; then
echo "ERROR: Argument BRANCH is missing"
help pullAndMerge
else
GIT_BRANCH=$1
fi
}
+19
View File
@@ -0,0 +1,19 @@
preset() {
# not yet working
# FIXME properties file not correctly read
# FIXME how do we set multiple values in a simple properties file
# TODO think about a better mechanism
utilIsReadPropertiesFile ./.dev-presets presetOptions presetValues
printf "presetOptions %s\n" "${presetOptions[@]}"
printf "presetValues %s\n" "${presetValues[@]}"
echo 'Please enter your choice: '
local index=0
for item in "${presetOptions[@]}"
do
echo ${index}. ${item}
index="$((index + 1))"
done
read n
echo "opt: $n"
echo "presetValue: ${presetValues[$n]}"
}
+12
View File
@@ -0,0 +1,12 @@
pullAndMerge() {
# fetch user from args
local gitBranch=$GIT_BRANCH
local currentBranch=$(git rev-parse --abbrev-ref HEAD)
echo "current branch: $currentBranch"
# Update the current branch to the latest of the given branch
git checkout $gitBranch
git pull
git checkout $currentBranch
echo DEBUG: git merge $gitBranch
}
+34
View File
@@ -0,0 +1,34 @@
runScript() {
# go to source path (if neccessary)
pushd $SOURCE_PATH >/dev/null 2>&1
local runFunctions=${@// /|}
#echo "DEBUG - runFunctions: $runFunctions"
# in the execution there are in- and dependent tasks, this file ensures that everything
# will be executed in a helpful way
if [[ "$runFunctions" = *"help"* ]]; then
help
fi
# run config functions
if [[ "$runFunctions" = *"config"* ]]; then
if [[ "$runFunctions" = *"config init"* ]]; then
configInit
elif [[ "$runFunctions" = *"config print"* ]]; then
configPrint
exit
elif [[ "$runFunctions" = *"config set"* ]]; then
echo "Setting configurations is not yet supported"
fi
fi
local parseArgsFunc="parseArgs_$ACTION"
local isParseArgsDefined=$(type -t $parseArgsFunc)
if [ "function" == "$isParseArgsDefined" ]; then
"$parseArgsFunc" "${@:2}"
fi
"$ACTION" "${@:2}"
# return to initial path (if neccessary)
popd >/dev/null 2>&1
}
+7
View File
@@ -0,0 +1,7 @@
utilIsExistingFile() {
if ls $1 1> /dev/null 2>&1; then
return 0
else
return 1
fi
}
@@ -0,0 +1,21 @@
utilIsReadPropertiesFile() {
local fileName=$1
local keysName=$2
local valuesName=$3
local keys=()
local values=()
echo "reading properties file $1 into $2 and $3"
if [ -n "$fileName" ]; then
while IFS='=' read -r key value
do
key=$(echo $key | tr '.' '_')
keys+=("$key")
values+=("$value")
# eval ${key}=\${value}
done < "$fileName"
fi
echo "keys: $keys"
echo "values: $values"
eval $keysName="'$keys'"
eval $valuesName="'$values'"
}
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
#
# This script is generated. Please do checkout the source code for editing!
#
# REPLACE with a short description what the script does
# Source Code: REPLACE with your git URL
# Maintainer: Manuel Manhart
# Company: Manuel Manhart IT e.U.
# License: REPLACE with the license
# Created by bash-script-compiler version BASH_SCRIPT_COMPILER_VERSION
# set default constants / variables
SCRIPT_VERSION="0.1"
# define your global variables here
CONFIG_FILE_NAME=BASH_SCRIPT_COMPILER_SCRIPT_NAME.config
CONFIG_PATH=${HOME}/.config/mmit
CONFIG_FILE=${CONFIG_PATH}/${CONFIG_FILE_NAME}
ACTION=${1:-"help"}
+12
View File
@@ -0,0 +1,12 @@
# main
# import colors
if [ -f ${BASH_SOURCE%/*}/define-colors ]; then
. ${BASH_SOURCE%/*}/define-colors ""
fi
# read configuration (if any)
configRead
# parse the arguments
parseArgs "$@"
# run the script
runScript "$@"