move to git.pi-farm.de
This commit is contained in:
238
start.sh
Normal file
238
start.sh
Normal file
@@ -0,0 +1,238 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
if [ ! -f ".config" ]; then
|
||||
touch ".config"
|
||||
echo -e "PROJECTPATH" > ".config"
|
||||
fi
|
||||
|
||||
PACKAGE="dialog"
|
||||
if command -v "$PACKAGE" &> /dev/null; then
|
||||
true
|
||||
else
|
||||
echo "$PACKAGE is not installed, please install it first."
|
||||
fi
|
||||
|
||||
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\nINCREASE" > "$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 ""
|
||||
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[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) Build the Image with current settings"
|
||||
echo "m) Build with Docker manifest with different Dockerfiles for dif. architectures"
|
||||
echo
|
||||
echo "n) Create new Project"
|
||||
echo "g) Create new Project from Git-URL"
|
||||
echo "c) Change to another Project"
|
||||
echo "r) Rename a Project"
|
||||
echo "d) Remove Project"
|
||||
echo "e) Edit Project-settings"
|
||||
echo ""
|
||||
echo "s) Setup Docker and BuildX-PlugIn"
|
||||
echo "x) Exit Image-Builder"
|
||||
echo ""
|
||||
read -p 'Your choice: ' -n 1 menue_wahl
|
||||
|
||||
case "$menue_wahl" in
|
||||
c)
|
||||
clear
|
||||
echo "Current Project-Path: $PROJECTPATH"
|
||||
echo "Change to: "
|
||||
|
||||
folder=(projects/*)
|
||||
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
|
||||
clear
|
||||
echo "Change Project-Directory to '$foldername'"
|
||||
sed -i "1s%.*%$foldername%" "$CONF"
|
||||
break
|
||||
else
|
||||
echo "Not valid. Try again..."
|
||||
fi
|
||||
done
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
n)
|
||||
clear
|
||||
read -p 'Project-Name: ' NEWPROJECT
|
||||
mkdir projects/$NEWPROJECT
|
||||
touch projects/$NEWPROJECT/.config
|
||||
echo -e "$NEWPROJECT\nREPOSITORY\nVERSION\nSUBVERSION\nARCH\nPUSH\nINCREASE\nLATEST\nBUILDCACHE" > "projects/$NEWPROJECT/.config"
|
||||
sed -i "1s%.*%projects/$NEWPROJECT%" "$CONF"
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
g)
|
||||
clear
|
||||
read -p 'Project-Name: ' NEWPROJECT
|
||||
read -p 'Git-URL: ' GITURL
|
||||
mkdir projects/$NEWPROJECT
|
||||
git clone $GITURL projects/$NEWPROJECT
|
||||
touch projects/$NEWPROJECT/.config
|
||||
echo -e "$NEWPROJECT\nREPOSITORY\nVERSION\nSUBVERSION\nARCH\nPUSH\nINCREASE\nLATEST\nBUILDCACHE" > "projects/$NEWPROJECT/.config"
|
||||
sed -i "1s%.*%projects/$NEWPROJECT%" "$CONF"
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
r)
|
||||
clear
|
||||
echo "Select the Project to rename: "
|
||||
|
||||
folder=(projects/*)
|
||||
PS3="Please chose the Project-Directory: "
|
||||
select foldername in "${folder[@]}" "quit"; do
|
||||
if [ "$foldername" = "quit" ]; then
|
||||
break
|
||||
fi
|
||||
if [ "$foldername" = "$(sed -n '1p' $CONF)" ]; then
|
||||
echo "Renaming not possible, Project is active. Please change to another Project first."
|
||||
break
|
||||
fi
|
||||
if [ -n "$foldername" ]; then
|
||||
read -p 'New Project-Name: ' NEWPROJECT
|
||||
echo "Renaming to : '$NEWPROJECT'"
|
||||
mv $foldername projects/$NEWPROJECT
|
||||
sed -i "1s%.*%$NEWPROJECT%" "projects/$NEWPROJECT/$CONF"
|
||||
clear
|
||||
echo "Renaming succuessfull..."
|
||||
break
|
||||
else
|
||||
echo "Not valid. Try again..."
|
||||
fi
|
||||
done
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
d)
|
||||
clear
|
||||
echo "Select the Project to delete: "
|
||||
|
||||
folder=(projects/*)
|
||||
PS3="Please chose the Project-Directory: "
|
||||
select foldername in "${folder[@]}" "quit"; do
|
||||
if [ "$foldername" = "quit" ]; then
|
||||
break
|
||||
fi
|
||||
if [ "$foldername" = "$(sed -n '1p' $CONF)" ]; then
|
||||
echo "Delete not possible, Project is active. Please change to another Project first."
|
||||
break
|
||||
fi
|
||||
if [ -n "$foldername" ]; then
|
||||
echo "Deleting Project-Directory: '$foldername'"
|
||||
rm -r $foldername
|
||||
break
|
||||
else
|
||||
echo "Not valid. Try again..."
|
||||
fi
|
||||
done
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
b)
|
||||
bash build.sh
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
m)
|
||||
source ./manifest-build.sh
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
e)
|
||||
clear
|
||||
bash edit.sh
|
||||
;;
|
||||
#############################################
|
||||
s)
|
||||
clear
|
||||
bash setup.sh
|
||||
;;
|
||||
#############################################
|
||||
x|X)
|
||||
clear
|
||||
ende
|
||||
;;
|
||||
#############################################
|
||||
*)
|
||||
echo "Key not valid"
|
||||
read -p "Try again..." WEITER
|
||||
clear
|
||||
menue
|
||||
;;
|
||||
#############################################
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
clear
|
||||
menue
|
||||
Reference in New Issue
Block a user