mirror of
https://codeberg.org/knightsub9/lxcafe.git
synced 2026-07-19 19:30:16 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9f778b1bb | ||
|
|
fd27403f30 | ||
|
|
5bfca35773 | ||
|
|
fa7f5e586f | ||
|
|
3f21bd5151 |
@@ -16,4 +16,35 @@ software to create a virtual machine with Linux Mint XFCE. Then, copy the script
|
||||
This allows you to test the script without affecting your main system.
|
||||
You can also make use of snapshot feature of the virtualization software to easily revert to a clean state after testing,
|
||||
e.g. state directly after Linux Mint installation, before running the post-installation script.
|
||||
This way you can test the script multiple times without needing to reinstall Linux Mint each time.
|
||||
This way you can test the script multiple times without needing to reinstall Linux Mint each time.
|
||||
|
||||
## Release Process
|
||||
|
||||
This project uses a simple release process based on git tags.
|
||||
|
||||
### Versioning
|
||||
- Version is stored in `VERSION` file (format: v0, v1, v2, ...)
|
||||
- Major version increments only (major-bugfix scheme)
|
||||
- Script version is also stored in `SCRIPT_VERSION` variable within the main script to display version during script execution
|
||||
|
||||
### Creating a Release
|
||||
Run the release script from the repository root:
|
||||
```bash
|
||||
./release.sh
|
||||
```
|
||||
|
||||
The script will:
|
||||
1. Check for uncommitted local changes (exits if any exist)
|
||||
2. Show current version and propose next version
|
||||
3. Prompt for confirmation
|
||||
4. Update VERSION file and SCRIPT_VERSION in the script
|
||||
5. Create a git commit
|
||||
6. Create an annotated tag
|
||||
7. Prompt to push to origin (including tags)
|
||||
|
||||
### Gitea Integration
|
||||
When a tag is pushed to the remote, Gitea automatically creates a release from it.
|
||||
|
||||
### Requirements
|
||||
- Clean working tree (no uncommitted changes)
|
||||
- Git remote configured (origin)
|
||||
@@ -1,380 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
cMode="KeineSimulation"
|
||||
cMode="simulation"
|
||||
bIsVlcInstalled=false
|
||||
|
||||
|
||||
echo "
|
||||
###################################
|
||||
#### Nachinstallationsarbeiten ####
|
||||
###################################
|
||||
"
|
||||
#
|
||||
#
|
||||
#
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo " simulation sudo apt-get update"
|
||||
else
|
||||
sudo apt-get update
|
||||
fi
|
||||
|
||||
sSuffixDate=$(date '+%Y-%m-%d_%H:%M:%S')
|
||||
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "A) #### 64 bit Mint XFCE ####"
|
||||
echo "B) #### 32 bit Debian XFCE ####"
|
||||
echo "q) Quit. Abbruch"
|
||||
echo "sonst <enter> zum überspringen."
|
||||
read -p "
|
||||
Geben Sie a oder b ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " option;
|
||||
case "$option" in
|
||||
[aAmM])
|
||||
echo "A) #### 64 bit Mint XFCE ####"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo "simulation
|
||||
sudo apt -y install xfce4-goodies clementine vlc htop hardinfo font-manager asunder gtkhash pcmanfm
|
||||
";
|
||||
bIsVlcInstalled=true
|
||||
else
|
||||
sudo apt -y install xfce4-goodies clementine vlc htop hardinfo font-manager asunder gtkhash pcmanfm
|
||||
bIsVlcInstalled=true
|
||||
fi
|
||||
;;
|
||||
[bBdD])
|
||||
echo "#### 32 bit Debian XFCE ####"
|
||||
echo "## sources list"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo "### Paketquellen eintragen:"
|
||||
echo " cp /etc/apt/sources.list /etc/apt/sources.list_" $sSuffixDate
|
||||
echo "simulation deb http://deb.debian.org/debian bookworm main contrib non-free > /etc/apt/sources.list"
|
||||
echo "simulation deb-src http://deb.debian.org/debian bookworm main contrib non-free >> /etc/apt/sources.list"
|
||||
echo "simulation deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free >> /etc/apt/sources.list"
|
||||
echo "simulation deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib non-free >> /etc/apt/sources.list"
|
||||
echo "simulation deb http://deb.debian.org/debian bookworm-updates main contrib non-free >> /etc/apt/sources.list"
|
||||
echo "simulation deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free >> /etc/apt/sources.list"
|
||||
echo "### zusätzliche Standardprogramme installieren:"
|
||||
echo "simulation sudo apt install xfce4-goodies clementine vlc htop hardinfo font-manager asunder gtkhash pcmanfm timeshift gnome-system-tools gnome-disk-utility inxi "
|
||||
bIsVlcInstalled=true
|
||||
echo " FIN #### 64 bit Mint XFCE ####"
|
||||
else
|
||||
echo "### Paketquellen eintragen:"
|
||||
cp /etc/apt/sources.list /etc/apt/sources.list_$sSuffixDate
|
||||
deb http://deb.debian.org/debian bookworm main contrib non-free > /etc/apt/sources.list
|
||||
deb-src http://deb.debian.org/debian bookworm main contrib non-free >> /etc/apt/sources.list
|
||||
deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free >> /etc/apt/sources.list
|
||||
deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib non-free >> /etc/apt/sources.list
|
||||
deb http://deb.debian.org/debian bookworm-updates main contrib non-free >> /etc/apt/sources.list
|
||||
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free >> /etc/apt/sources.list
|
||||
echo "### zusätzliche Standardprogramme installieren:"
|
||||
sudo apt install xfce4-goodies clementine vlc htop hardinfo font-manager asunder gtkhash pcmanfm timeshift gnome-system-tools gnome-disk-utility inxi
|
||||
bIsVlcInstalled=true
|
||||
echo " FIN #### 32 bit Debian XFCE ####"
|
||||
fi
|
||||
;;
|
||||
q) echo "Quit. Abbruch"
|
||||
exit
|
||||
;;
|
||||
*) echo "Unknown parameter"
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "#### alle Systeme ####"
|
||||
#
|
||||
echo "### Taskleiste mit XFCE-Applets für Systemauslastung und 2x Netzwerkmonitor (LAN + WLAN) ergänzen und konfigurieren"
|
||||
echo " leider fehlt die automatisierung noch "
|
||||
echo " Manuelle Arbeit notwendig "
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
echo
|
||||
echo
|
||||
echo "#### nur auf Wunsch / bei Bedarf ####"
|
||||
#
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
### Sensoren ###
|
||||
# alle Abfragen können mit "ja" beantwortet werden!
|
||||
read -p " ### Sensoren ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo "### Sensoren ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo " simulation "
|
||||
echo " apt -y Automatic yes to prompts; assume "yes" as answer to all prompts and run non-interactively."
|
||||
echo "simulation sudo apt -y install lm-sensors psensor"
|
||||
echo "simulation sudo sensors-detect"
|
||||
echo "# alle Abfragen können mit "ja" beantwortet werden!"
|
||||
echo "simulation sudo service kmod start"
|
||||
else
|
||||
sudo apt install lm-sensors psensor
|
||||
sudo sensors-detect
|
||||
echo "# alle Abfragen können mit "ja" beantwortet werden!"
|
||||
sudo service kmod start
|
||||
echo "## dann psensor konfigurieren im Applet in der Taskleiste"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
echo
|
||||
if $bIsVlcInstalled; then
|
||||
echo "### Kauf-DVDs abspielen ###"
|
||||
read -p " ### Film DVDs ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo "### Sensoren ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo " simulation "
|
||||
echo "simulation sudo service kmod start"
|
||||
echo " simulation sudo apt install libdvd-pkg"
|
||||
echo " simulationsudo dpkg-reconfigure libdvd-pkg"
|
||||
else
|
||||
sudo apt install libdvd-pkg
|
||||
sudo dpkg-reconfigure libdvd-pkg
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Player Fehlt
|
||||
## vlc muss installiert sein! Zum Kauf-DVDs abspielen"
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "### Schriften, falls Microsoft-Office-Dokumente weiterverwendet werden sollen oder Dokumentenaustausch mit Microsoft-Nutzern gewünscht ist ###
|
||||
## frei verfügbare, alte Microsoft-Standardschriften installieren:"
|
||||
|
||||
read -p " ### M$ Schriften ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo "### M$ Schriften ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo "simulation
|
||||
sudo apt install ttf-mscorefonts-installer"
|
||||
else
|
||||
sudo apt install ttf-mscorefonts-installer
|
||||
fi
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
echo " ## freie Google-Schriften mit gleicher Laufweite wie aktuelle MS-Standardschriften installieren:"
|
||||
read -p " ### Google Schriften ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo
|
||||
echo "### Google Schriften ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
|
||||
_gf="google-fonts"
|
||||
fGoogleSchriften=./$_gf".tar.gz"
|
||||
if [ ! -f "$fGoogleSchriften" ]; then
|
||||
echo
|
||||
echo "$fGoogleSchriften nicht gefunden."
|
||||
echo " soll das Archiv "google-fonts.tar.gz" von Github runter geladen werden ca. 1GB gross! "
|
||||
read -p " ### Download Google Schriften ### j/n: " runterLaden;
|
||||
if [ $runterLaden == 'j' -o $runterLaden == 'J' -o $runterLaden == 'ja' -o $runterLaden == 'y' -o $runterLaden == 'Y' ]; then
|
||||
echo " Download Google Schriften ###"
|
||||
echo "simulation
|
||||
_wgeturl=https://github.com/google/fonts/archive/main.tar.gz
|
||||
_gf=google-fonts
|
||||
o Connecting to Github server to download fonts...
|
||||
wget $_wgeturl -O $_gf.tar.gz"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "$fGoogleSchriften" ]; then
|
||||
echo
|
||||
echo "Extracting the downloaded archive..."
|
||||
echo " simulationtar -zxvf $_gf.tar.gz"
|
||||
echo "Creating the /usr/share/fonts/truetype/$_gf folder"
|
||||
echo " simulationsudo mkdir -p /usr/share/fonts/truetype/$_gf"
|
||||
echo "Installing all .ttf fonts in /usr/share/fonts/truetype/$_gf"
|
||||
echo " simulationfind $PWD/fonts-main/ -name "*.ttf" -exec sudo install -m644 {} /usr/share/fonts/truetype/google-fonts/ \; "
|
||||
echo "Updating the font cache"
|
||||
echo " simulationfc-cache -f"
|
||||
else
|
||||
echo "Schriften Fehlen immer noch. Manuell runterladen und installieren"
|
||||
fi
|
||||
|
||||
# "Simulation"
|
||||
else
|
||||
# "KeineSimulation"
|
||||
|
||||
_gf="google-fonts"
|
||||
fGoogleSchriften=./$_gf".tar.gz"
|
||||
if [ ! -f "$fGoogleSchriften" ]; then
|
||||
echo ""
|
||||
echo "$fGoogleSchriften nicht gefunden."
|
||||
echo " soll das Archiv "google-fonts.tar.gz" von Github runter geladen werden ca. 1GB gross! "
|
||||
read -p " ### Download Google Schriften ### " runterLaden;
|
||||
if [ $runterLaden == 'j' -o $runterLaden == 'J' -o $runterLaden == 'ja' -o $runterLaden == 'y' -o $runterLaden == 'Y' ]; then
|
||||
_wgeturl="https://github.com/google/fonts/archive/main.tar.gz"
|
||||
echo "Connecting to Github server to download fonts..."
|
||||
wget $_wgeturl -O $_gf.tar.gz
|
||||
fi
|
||||
fi
|
||||
if [ -f "$fGoogleSchriften" ]; then
|
||||
echo
|
||||
echo "$fGoogleSchriften nicht gefunden."
|
||||
echo "Extracting the downloaded archive..."
|
||||
tar -zxvf $_gf.tar.gz
|
||||
echo "Creating the /usr/share/fonts/truetype/$_gf folder"
|
||||
sudo mkdir -p /usr/share/fonts/truetype/$_gf
|
||||
echo "Installing all .ttf fonts in /usr/share/fonts/truetype/$_gf"
|
||||
find $PWD/fonts-main/ -name "*.ttf" -exec sudo install -m644 {} /usr/share/fonts/truetype/google-fonts/ \; || echo "An error occured, please run this script again."
|
||||
echo "Updating the font cache"
|
||||
fc-cache -f
|
||||
echo "Done. Now you can delete the tarball file $_gf.tar.gz if you wish."
|
||||
else
|
||||
echo "Schriften Fehlen immer noch. Manuell runterladen und installieren"
|
||||
fi
|
||||
|
||||
# "KeineSimulation"
|
||||
fi
|
||||
fi
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "#### Chromium Browser installieren:"
|
||||
read -p " ### Chromium ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo "### Chromium ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo "simulation
|
||||
sudo apt install chromium
|
||||
sudo apt install chromium-browser
|
||||
"
|
||||
echo " tbd DateiName!?
|
||||
## Gnome-Schlüsselbund-Fehlermeldung bei jedem Start von Chrome/Chromium beheben: Starter bzw. .desktop-Datei mit folgendem Parameter ergänzen:
|
||||
## --password-store=basic "
|
||||
else
|
||||
sudo apt install chromium-browser
|
||||
fi88=
|
||||
fi
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "### Vivaldi Browser installieren:#### "
|
||||
read -p " ### Vivaldi ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo "### ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo "simulation
|
||||
## nötige Zusatzpakete installieren
|
||||
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl -y
|
||||
## key importieren
|
||||
curl -fsSL https://repo.vivaldi.com/archive/linux_signing_key.pub | gpg --dearmor | sudo tee /usr/share/keyrings/vivaldi.gpg > /dev/null
|
||||
## Repository hinzufügen
|
||||
echo deb [arch=amd64,armhf signed-by=/usr/share/keyrings/vivaldi.gpg] https://repo.vivaldi.com/stable/deb/ stable main | sudo tee /etc/apt/sources.list.d/vivaldi.list
|
||||
sudo apt update && sudo apt install vivaldi-stable"
|
||||
echo " tbd DateiName!?
|
||||
## Gnome-Schlüsselbund-Fehlermeldung bei jedem Start von Chrome/Chromium beheben: Starter bzw. .desktop-Datei mit folgendem Parameter ergänzen:
|
||||
## --password-store=basic "
|
||||
|
||||
|
||||
else
|
||||
echo "## nötige Zusatzpakete installieren"
|
||||
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl -y
|
||||
#
|
||||
echo "## ## key importieren"
|
||||
curl -fsSL https://repo.vivaldi.com/archive/linux_signing_key.pub | gpg --dearmor | sudo tee /usr/share/keyrings/vivaldi.gpg > /dev/null
|
||||
#
|
||||
echo "## ## Repository hinzufügen"
|
||||
echo deb [arch=amd64,armhf signed-by=/usr/share/keyrings/vivaldi.gpg] https://repo.vivaldi.com/stable/deb/ stable main | sudo tee /etc/apt/sources.list.d/vivaldi.list
|
||||
#
|
||||
sudo apt update && sudo apt install vivaldi-stable
|
||||
#
|
||||
echo "## ## Gnome-Schlüsselbund-Fehlermeldung bei jedem Start von Chrome/Chromium beheben: Starter bzw. .desktop-Datei mit folgendem Parameter ergänzen: "
|
||||
echo "## ## --password-store=basic"
|
||||
#
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "####Signal für Desktop (setzt Signalinstallation auf einem Android- Oder Apple-Gerät voraus!)#### "
|
||||
read -p " ### Signal ###
|
||||
Geben Sie j oder n ein und die Eingabetaste,
|
||||
Abbruch mit jeder anderen Taste ... " kommando;
|
||||
if [ $kommando == 'j' -o $kommando == 'J' -o $kommando == 'ja' -o $kommando == 'y' -o $kommando == 'Y' ]; then
|
||||
echo "### ###"
|
||||
if [ "$cMode" != "KeineSimulation" ]; then
|
||||
echo "simulation
|
||||
## zusätzliches Repository nötig!
|
||||
#
|
||||
## NOTE: These instructions only work for 64-bit Debian-based
|
||||
## Linux distributions such as Ubuntu, Mint etc.
|
||||
#
|
||||
## key importieren
|
||||
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
|
||||
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
|
||||
## Repository hinzufügen:
|
||||
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list
|
||||
sudo apt update && sudo apt install signal-desktop
|
||||
|
||||
"
|
||||
else
|
||||
echo "## zusätzliches Repository nötig!
|
||||
## NOTE: These instructions only work for 64-bit Debian-based
|
||||
## Linux distributions such as Ubuntu, Mint etc.
|
||||
## key importieren
|
||||
"
|
||||
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
|
||||
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
|
||||
#
|
||||
echo "## Repository hinzufügen:"
|
||||
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list
|
||||
sudo apt update && sudo apt install signal-desktop
|
||||
#
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "Skript ENDE"
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo "Manuelle Schritte"
|
||||
echo
|
||||
echo "### Taskleiste mit XFCE-Applets für Systemauslastung und 2x Netzwerkmonitor (LAN + WLAN) ergänzen und konfigurieren"
|
||||
echo
|
||||
echo
|
||||
echo "Wenn
|
||||
### Sensoren ###
|
||||
installiert wurden
|
||||
## dann psensor konfigurieren im Applet in der Taskleiste "
|
||||
echo
|
||||
echo
|
||||
|
||||
+5
-10
@@ -1,12 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
# "Anderungs Historie
|
||||
# Datum Version Name Änderung
|
||||
# 2025-11-11 v6 MartinP mehr Erläuterungen reingeschrieben
|
||||
# 2025-11-17 v7 Mark Simualtion Modus und 32Bit abfrage entfernt
|
||||
# 2025-12-12 v8 MartinP Erläuterungen ergänzt und Typos entfernt
|
||||
#
|
||||
SCRIPT_VERSION="v9"
|
||||
|
||||
bIsVlcInstalled=false
|
||||
|
||||
@@ -26,9 +20,10 @@ question_answered_with_yes() {
|
||||
|
||||
|
||||
echo "
|
||||
###################################
|
||||
#### Nachinstallationsarbeiten ####
|
||||
###################################
|
||||
#####################################
|
||||
#### Nachinstallationsarbeiten
|
||||
#### Version: $SCRIPT_VERSION
|
||||
#####################################
|
||||
|
||||
#### Was tut dieses Skript? ####
|
||||
|
||||
@@ -5,7 +5,7 @@ This directory contains files belonging to the Linux Mint XFCE post-installation
|
||||
## Prerequisites to run the script
|
||||
- Linux Mint XFCE installed and running
|
||||
- Internet connection for downloading packages and updates
|
||||
- Script file: `20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh` copied to Desktop
|
||||
- Script file: `Nachinstallationsarbeiten_LC_Esslingen_XFCE.sh` copied to Desktop
|
||||
- External files are referenced by the script, please check header comments in the script
|
||||
|
||||
## Usage
|
||||
@@ -14,7 +14,7 @@ Run the main script:
|
||||
|
||||
```bash
|
||||
cd post_installation_script
|
||||
bash 20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh
|
||||
bash Nachinstallationsarbeiten_LC_Esslingen_XFCE.sh
|
||||
```
|
||||
|
||||
The script is interactive and will prompt for confirmation before each installation step.
|
||||
|
||||
Executable
+85
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "Error: You have uncommitted local changes."
|
||||
echo "Please commit or stash them before releasing."
|
||||
echo ""
|
||||
echo "Uncommitted files:"
|
||||
git status --short
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION_FILE="VERSION"
|
||||
SCRIPT_FILE="post_installation_script/Nachinstallationsarbeiten_LC_Esslingen_XFCE.sh"
|
||||
|
||||
if [ ! -f "$VERSION_FILE" ]; then
|
||||
echo "Error: $VERSION_FILE not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CURRENT_VERSION=$(cat "$VERSION_FILE" | tr -d '\n')
|
||||
|
||||
if [ ! -f "$SCRIPT_FILE" ]; then
|
||||
echo "Error: $SCRIPT_FILE not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CURRENT_MAJOR=${CURRENT_VERSION#v}
|
||||
|
||||
if ! [[ "$CURRENT_VERSION" =~ ^v[0-9]+$ ]]; then
|
||||
echo "Error: Invalid version format in $VERSION_FILE. Expected v0, v1, v2, etc."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NEXT_VERSION=$((CURRENT_MAJOR + 1))
|
||||
NEXT_VERSION_STR="v$NEXT_VERSION"
|
||||
|
||||
if git rev-parse "refs/tags/$NEXT_VERSION_STR" >/dev/null 2>&1; then
|
||||
echo "Error: Tag $NEXT_VERSION_STR already exists locally."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if git remote get-url origin >/dev/null 2>&1; then
|
||||
if git ls-remote --tags origin "$NEXT_VERSION_STR" 2>/dev/null | grep -q "$NEXT_VERSION_STR"; then
|
||||
echo "Error: Tag $NEXT_VERSION_STR already exists on remote."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Warning: No remote configured. You can still create the release locally."
|
||||
fi
|
||||
|
||||
echo "Current version: $CURRENT_VERSION"
|
||||
echo "Proposed version: $NEXT_VERSION_STR"
|
||||
echo ""
|
||||
|
||||
read -p "Confirm release version $NEXT_VERSION_STR? [y/N]: " confirm
|
||||
|
||||
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
|
||||
echo "Release aborted."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "$NEXT_VERSION_STR" > "$VERSION_FILE"
|
||||
|
||||
sed -i.bak "s/^SCRIPT_VERSION=.*/SCRIPT_VERSION=\"$NEXT_VERSION_STR\"/" "$SCRIPT_FILE"
|
||||
if [ -f "${SCRIPT_FILE}.bak" ]; then
|
||||
rm "${SCRIPT_FILE}.bak"
|
||||
fi
|
||||
|
||||
git add "$VERSION_FILE" "$SCRIPT_FILE"
|
||||
git commit -m "Release $NEXT_VERSION_STR"
|
||||
|
||||
git tag -a "$NEXT_VERSION_STR" -m "Release $NEXT_VERSION_STR"
|
||||
|
||||
echo ""
|
||||
echo "Tag $NEXT_VERSION_STR created locally."
|
||||
read -p "Push to origin (includes tags)? [y/N]: " push_confirm
|
||||
|
||||
if [[ "$push_confirm" == "y" || "$push_confirm" == "Y" ]]; then
|
||||
git push origin --tags
|
||||
echo "Done! Gitea will create release from tag $NEXT_VERSION_STR"
|
||||
else
|
||||
echo "Release prepared locally. Push manually with: git push origin --tags"
|
||||
fi
|
||||
Reference in New Issue
Block a user