move to git.pi-farm.de

This commit is contained in:
2025-09-22 12:29:44 +02:00
commit 53668e986b
16 changed files with 1164 additions and 0 deletions

238
start.sh Normal file
View 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