270 lines
8.3 KiB
Bash
270 lines
8.3 KiB
Bash
#!/bin/bash
|
|
|
|
|
|
##############################################################
|
|
ende()
|
|
{
|
|
exit
|
|
}
|
|
##############################################################
|
|
|
|
menue()
|
|
{
|
|
CONF=".config"
|
|
PROJECTPATH=$(sed -n '1p' $CONF)
|
|
if [ ! -f "$PROJECTPATH/.config" ]; then
|
|
touch "$PROJECTPATH/.config"
|
|
echo -e "PROJECTNAME\nREPOSITORY\nVERSION\nSUBVERSION\nARCH\nPUSH\n" > "$PROJECTPATH/.config"
|
|
fi
|
|
|
|
PROJECT_CONF="$PROJECTPATH/.config"
|
|
PROJECTNAME=$(sed -n '1p' "$PROJECT_CONF")
|
|
VERSION=$(sed -n '3p' "$PROJECT_CONF").$(sed -n '4p' "$PROJECT_CONF")
|
|
REPO=$(sed -n '2p' "$PROJECT_CONF")
|
|
ARCH=$(sed -n '5p' "$PROJECT_CONF")
|
|
PUSH=$(sed -n '6p' "$PROJECT_CONF")
|
|
INCREASE=$(sed -n '7p' "$PROJECT_CONF")
|
|
LATEST=$(sed -n '8p' "$PROJECT_CONF")
|
|
BUILDCACHE=$(sed -n '9p' "$PROJECT_CONF")
|
|
DF386=$(sed -n '10p' "$PROJECT_CONF")
|
|
DFAMD64=$(sed -n '11p' "$PROJECT_CONF")
|
|
DFARM64=$(sed -n '12p' "$PROJECT_CONF")
|
|
|
|
green_checkmark="\033[32m\xE2\x9C\x93\033[0m"
|
|
red_x="\033[31m\xE2\x9C\x97\033[0m"
|
|
|
|
if [[ $PUSH = "yes" ]];
|
|
then PUSHSTAT=$green_checkmark; fi
|
|
if [[ $PUSH = "no" ]];
|
|
then PUSHSTAT=$red_x; fi
|
|
|
|
if [[ $INCREASE = "yes" ]];
|
|
then INCREASESTAT=$green_checkmark; fi
|
|
if [[ $INCREASE = "no" ]];
|
|
then INCREASESTAT=$red_x; fi
|
|
|
|
if [[ $LATEST = "yes" ]];
|
|
then LATESTSTAT=$green_checkmark; fi
|
|
if [[ $LATEST = "no" ]];
|
|
then LATESTSTAT=$red_x; fi
|
|
|
|
if [[ $BUILDCACHE = "yes" ]];
|
|
then BUILDCACHESTAT=$green_checkmark; fi
|
|
if [[ $BUILDCACHE = "no" ]];
|
|
then BUILDCACHESTAT=$red_x; fi
|
|
|
|
|
|
clear
|
|
echo ""
|
|
echo "------------- CURRENT SETTINGS -------------"
|
|
echo -e "\033[4mProject-Path:\033[0m \033[3m$PROJECTPATH\033[0m"
|
|
echo -e "\033[4mProject:\033[0m \033[3m$PROJECTNAME\033[0m"
|
|
echo -e "\033[4mImage-Name:\033[0m \033[3m$REPO/$PROJECTNAME:$VERSION\033[0m"
|
|
echo -e "\033[4mArch:\033[0m \033[3m$ARCH\033[0m"
|
|
echo -e "\033[4mDockerfile 386:\033[0m \033[3m$DF386\033[0m"
|
|
echo -e "\033[4mDockerfile amd64:\033[0m \033[3m$DFAMD64\033[0m"
|
|
echo -e "\033[4mDockerfile arm64:\033[0m \033[3m$DFARM64\033[0m"
|
|
echo -e "\033[4mUpload:\033[0m \033[3m$PUSHSTAT\033[0m"
|
|
echo -e "\033[4mIncrease Subversion:\033[0m \033[3m$INCREASESTAT\033[0m"
|
|
echo -e "\033[4mTag as 'latest':\033[0m \033[3m$LATESTSTAT\033[0m"
|
|
echo -e "\033[4mUse Build-Cache:\033[0m \033[3m$BUILDCACHESTAT\033[0m"
|
|
echo "--------------------------------------------"
|
|
echo ""
|
|
echo "b) Back to Build-Menue"
|
|
echo ""
|
|
echo "f) Project-Path"
|
|
echo "p) Project"
|
|
echo "r) Docker-Registy"
|
|
echo "m) Main-Version"
|
|
echo "s) Start of Sub-Version"
|
|
echo "a) Arch"
|
|
echo "d1) Set Dockerfile-name for i386"
|
|
echo "d2) Set Dockerfile-name for amd64"
|
|
echo "d3) Set Dockerfile-name for arm64"
|
|
echo "u) Upload to Registry (yes/no)"
|
|
echo "i) Automatic Increase Subversion (yes/no)"
|
|
echo "l) Tag as 'latest' (yes/no)"
|
|
echo "c) Use Build-Cache (yes/no)"
|
|
echo "x) Exit Image-Builder"
|
|
echo ""
|
|
read -p "Edit: " -n 2 menue_wahl
|
|
|
|
case "$menue_wahl" in
|
|
d1)
|
|
clear
|
|
echo "Current Dockerfile-name: $DF386"
|
|
echo "Change to: "
|
|
|
|
read NEW_DF
|
|
sed -i "10s/.*/$NEW_DF/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
d2)
|
|
clear
|
|
echo "Current Dockerfile-name: $DFAMD64"
|
|
echo "Change to: "
|
|
|
|
read NEW_DF
|
|
sed -i "11s/.*/$NEW_DF/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
d3)
|
|
clear
|
|
echo "Current Dockerfile-name: $DFARM64"
|
|
echo "Change to: "
|
|
|
|
read NEW_DF
|
|
sed -i "12s/.*/$NEW_DF/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
f)
|
|
clear
|
|
echo "Current Project-Path: $PROJECTPATH"
|
|
echo "Change to: "
|
|
|
|
folder=(projects/*)
|
|
#ordner=( "${ordner[@]%/}" )
|
|
|
|
PS3="Please chose the Project-Directory (or 'q' to quit): "
|
|
select foldername in "${folder[@]}" "quit"; do
|
|
if [ "$foldername" = "quit" ]; then
|
|
break
|
|
fi
|
|
if [ -n "$foldername" ]; then
|
|
echo "Change Project-Directory to '$foldername'"
|
|
sed -i "1s%.*%$foldername%" "$CONF"
|
|
break
|
|
else
|
|
echo "Not valid. Try again..."
|
|
fi
|
|
done
|
|
menue
|
|
;;
|
|
p)
|
|
clear
|
|
echo "Current Project: $PROJECTNAME"
|
|
echo "Change to: "
|
|
read NEW_PROJECTNAME
|
|
sed -i "1s/.*/$NEW_PROJECTNAME/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
r)
|
|
clear
|
|
echo "Current Repository: $REPO"
|
|
echo "Change to: (for hub.docker.com, simply set your username)"
|
|
read NEW_REPO
|
|
sed -i "2s/.*/$NEW_REPO/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
m)
|
|
clear
|
|
echo "Current Main-Version: $VERSION"
|
|
echo "Change to: "
|
|
read NEW_VERSION
|
|
sed -i "3s/.*/$NEW_VERSION/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
s)
|
|
clear
|
|
echo "Current Sub-Version: $SUBVERSION"
|
|
echo "Change to: "
|
|
read NEW_SUBVERSION
|
|
sed -i "4s/.*/$NEW_SUBVERSION/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
a)
|
|
clear
|
|
|
|
options=(
|
|
1 "386" off
|
|
2 "amd64" off
|
|
3 "arm64" off
|
|
)
|
|
|
|
selection=$(dialog --checklist "Arch to build:" 10 40 3 "${options[@]}" 2>&1 >/dev/tty)
|
|
if [ $? -ne 0 ]; then
|
|
echo "Canceled."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Build Archs:"
|
|
selected_options=""
|
|
for choice in $selection; do
|
|
case $choice in
|
|
1) selected_options+="linux/386,";;
|
|
2) selected_options+="linux/amd64,";;
|
|
3) selected_options+="linux/arm64,";;
|
|
esac
|
|
done
|
|
|
|
selected_options=${selected_options%,}
|
|
sed -i "5s%.*%$selected_options%" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
u)
|
|
clear
|
|
echo "Current status of Push: ($PUSH)"
|
|
echo "Change to: "
|
|
read NEW_PUSH
|
|
sed -i "6s/.*/$NEW_PUSH/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
i)
|
|
clear
|
|
echo "Current status of Automatic Increase Subversion: ($INCREASE)"
|
|
echo "Change to: "
|
|
read NEW_INCREASE
|
|
sed -i "7s/.*/$NEW_INCREASE/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
l)
|
|
clear
|
|
echo "Current status of Tag as 'latest': ($LATEST)"
|
|
echo "Change to: "
|
|
read NEW_LATEST
|
|
sed -i "8s/.*/$NEW_LATEST/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
c)
|
|
clear
|
|
echo "Current status of User Build-Cache: ($BUILDCACHE)"
|
|
echo "Change to: "
|
|
read NEW_BUILDCACHE
|
|
sed -i "9s/.*/$NEW_BUILDCACHE/" "$PROJECT_CONF"
|
|
menue
|
|
;;
|
|
#############################################
|
|
b)
|
|
clear
|
|
bash start.sh
|
|
;;
|
|
#############################################
|
|
x|X)
|
|
clear
|
|
ende
|
|
;;
|
|
#############################################
|
|
*)
|
|
echo "Key not valid"
|
|
read -p "Try again... " WEITER
|
|
clear
|
|
menue
|
|
;;
|
|
#############################################
|
|
esac
|
|
|
|
}
|
|
|
|
#####################################################################
|
|
|
|
clear
|
|
menue
|