v0.3 changes
This commit is contained in:
1 parent
5f802c9273
commit
51314163ea
34 files changed
+246
-244
No files matched your search
+2
-4
@@ -1,14 +1,12 @@
|
||||
# gt bash script 0.1
|
||||
# _BASH_SCRIPT_SCRIPT_NAME_ 0.1
|
||||
|
||||
A helper for git functions I really miss, like merging the lastest develop / main branch into my current branch, showing what I (or someone else) has checked in over the time, etc.
|
||||
TODO: Your description here
|
||||
|
||||
## Changelog
|
||||
|
||||
__0.1__
|
||||
|
||||
* Created the initial bash script
|
||||
* Added config functions (for future use)
|
||||
* Added commands pull, tag, mine, pullAndMerge
|
||||
|
||||
## Sources
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
0.1
|
||||
@@ -0,0 +1,4 @@
|
||||
# sets the version of the script
|
||||
BASH_SCRIPT_COMPILER_VERSION=0.1
|
||||
# optionally set the name of the compiled script (otherwise the directory name will be taken)
|
||||
#BASH_SCRIPT_COMPILER_SCRIPT_NAME=bash-script-compiler
|
||||
@@ -1,28 +1,15 @@
|
||||
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}
|
||||
if [ ! -f "${CONFIG_FILE}" ]; then
|
||||
echo Could not find any config file, creating a file for you to fill in the values in ${CONFIG_FILE}
|
||||
if [ ! -d "${CONFIG_PATH}" ]; then
|
||||
echo "Config directory '${CONFIG_PATH}' does not exist yet, creating..."
|
||||
mkdir -p ${CONFIG_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
|
||||
cat <<END >${CONFIG_FILE}
|
||||
# this file was created by bash-script-compiler script _BASH_SCRIPT_COMPILER_VERSION_ 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
|
||||
)
|
||||
# TODO: Add your config values here like CONFIG_VAR_KEY="config var value"
|
||||
END
|
||||
|
||||
fi
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
configPrint() {
|
||||
echo ""
|
||||
echo "Configuration file:"
|
||||
cat ${DEV_CONFIG_FILE} | while read line
|
||||
cat ${CONFIG_FILE} | while read line
|
||||
do
|
||||
echo "$line"
|
||||
done
|
||||
|
||||
@@ -1,23 +1,13 @@
|
||||
# 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}
|
||||
if [ -f "${CONFIG_FILE}" ]; then
|
||||
echo found config file in ${CONFIG_FILE}
|
||||
source ${CONFIG_FILE}
|
||||
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}
|
||||
if [ -f "${SCRIPTPATH}/${CONFIG_FILE_NAME}" ]; then
|
||||
echo "found config file in ${SCRIPTPATH}/${CONFIG_FILE_NAME}"
|
||||
declare $(env -i `cat ${SCRIPTPATH}/${CONFIG_FILE_NAME}` >/dev/null 2>&1)
|
||||
fi
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
demo() {
|
||||
echo "$DEMO_GREETING"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
gitPull() {
|
||||
if [ -f ".git" ]; then
|
||||
git pull
|
||||
else
|
||||
echo "Seems not to be a git repo"
|
||||
fi
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
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
|
||||
}
|
||||
@@ -12,11 +12,7 @@ The options are:
|
||||
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)
|
||||
demo (STRING) ... echoes a greeting or the given STRING
|
||||
|
||||
help ... show this page
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
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"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
parseArgs_demo() {
|
||||
DEMO_GREETING="Welcome to our demo, $USER"
|
||||
if [ -z "$1" ]; then
|
||||
DEMO_GREETING="$1"
|
||||
fi
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
parseArgs_mine() {
|
||||
echo "Fetching user: $1"
|
||||
if [ -n "$1" ]; then
|
||||
GIT_USER=$1
|
||||
fi
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
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
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
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]}"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
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
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
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
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
utilIsExistingFile() {
|
||||
if ls $1 1> /dev/null 2>&1; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
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'"
|
||||
}
|
||||
+2
-3
@@ -11,10 +11,9 @@
|
||||
# Created by bash-script-compiler version BASH_SCRIPT_COMPILER_VERSION
|
||||
|
||||
# set default constants / variables
|
||||
VERSION="0.1"
|
||||
VERSION="_BASH_SCRIPT_COMPILER_VERSION_"
|
||||
|
||||
# define your global variables here
|
||||
CONFIG_FILE_NAME=BASH_SCRIPT_COMPILER_SCRIPT_NAME.config
|
||||
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
-4
@@ -1,12 +1,20 @@
|
||||
|
||||
# main
|
||||
# import colors
|
||||
# if there is a import colors script source it
|
||||
if [ -f ${BASH_SOURCE%/*}/define-colors ]; then
|
||||
. ${BASH_SOURCE%/*}/define-colors ""
|
||||
fi
|
||||
# read configuration (if any)
|
||||
configRead
|
||||
# set the action to the first parameter (if your script runs without, just remove these lines)
|
||||
local action=${1:-"help"}
|
||||
local parseArgsFunc="${PARSE_ARGS_PREFIX}${action}"
|
||||
# if there is a parseArgs_ARG1, call it
|
||||
local isParseArgsDefined=$(type -t $parseArgsFunc)
|
||||
if [ "function" == "$isParseArgsDefined" ]; then
|
||||
"$parseArgsFunc" "${@:2}"
|
||||
fi
|
||||
# parse the arguments
|
||||
parseArgs "$@"
|
||||
# run the script
|
||||
runScript "$@"
|
||||
configRead
|
||||
# run the script (by default calls the function given in the first arg)
|
||||
"$action" "${@:2}"
|
||||
Reference in new issue
Block a user