test: verify update script
This commit is contained in:
84
cflash.sh
Executable file
84
cflash.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
# cflash launcher with self-update via git + rebuild (requires sudo for update)
|
||||
|
||||
CFLASH_DIR="/usr/local/lib/cflash"
|
||||
CFLASH_JAR="$CFLASH_DIR/cflash.jar"
|
||||
GIT_REPO="https://gitea.cametendo.org/cametendo/cflash.git"
|
||||
|
||||
update_cflash() {
|
||||
# Check for sudo/root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "cflash --update requires root privileges. Please run with sudo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Updating cflash from repository..."
|
||||
|
||||
TMP_DIR=$(mktemp -d)
|
||||
echo "Cloning repository into $TMP_DIR..."
|
||||
|
||||
if ! git clone --depth 1 "$GIT_REPO" "$TMP_DIR"; then
|
||||
echo "Failed to clone repository."
|
||||
rm -rf "$TMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pushd "$TMP_DIR" >/dev/null
|
||||
|
||||
# Logic to handle if the repo contents are nested inside a 'cflash' folder
|
||||
if [[ ! -f "./build.sh" && -d "cflash" ]]; then
|
||||
echo "Detected nested directory, moving into cflash/..."
|
||||
cd cflash
|
||||
fi
|
||||
|
||||
# Ensure build.sh is executable (git usually preserves this, but just in case)
|
||||
if [[ -f "./build.sh" ]]; then
|
||||
chmod +x ./build.sh
|
||||
echo "Building cflash..."
|
||||
if ! ./build.sh; then
|
||||
echo "Build failed."
|
||||
popd >/dev/null
|
||||
rm -rf "$TMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Error: build.sh not found in the repository root or cflash/ directory."
|
||||
popd >/dev/null
|
||||
rm -rf "$TMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing new version..."
|
||||
if [[ -f "./install.sh" ]]; then
|
||||
chmod +x ./install.sh
|
||||
if ! ./install.sh; then
|
||||
echo "Install failed."
|
||||
popd >/dev/null
|
||||
rm -rf "$TMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Error: install.sh not found."
|
||||
popd >/dev/null
|
||||
rm -rf "$TMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
rm -rf "$TMP_DIR"
|
||||
echo "Update completed successfully!"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Handle --update argument
|
||||
if [[ "$1" == "--update" ]]; then
|
||||
update_cflash
|
||||
fi
|
||||
|
||||
# Run cflash normally
|
||||
if [[ -f "$CFLASH_JAR" ]]; then
|
||||
java --enable-native-access=ALL-UNNAMED -jar "$CFLASH_JAR" "$@"
|
||||
else
|
||||
echo "Error: $CFLASH_JAR not found. Please run 'sudo cflash --update' to install."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user