mirror of
https://gitlab.com/hacklab01/pivilion.git
synced 2026-08-07 00:18:23 +00:00
Add modern Raspberry Pi OS compatibility
This commit is contained in:
parent
4636a4f4f6
commit
3b7a16564b
35 changed files with 725 additions and 15678 deletions
|
|
@ -1,31 +1,56 @@
|
|||
#!/bin/bash
|
||||
echo "Would you like to install or restore Hotglue? Installing will overwrite any existing files in /var/www/html/pivilion/gen"
|
||||
select sres in "Install" "Restore"; do
|
||||
case $sres in
|
||||
Install ) wget https://hotglue.org/download/hotglue-latest-dev.zip -P /home/pi/pivilion/hotglue/;
|
||||
unzip /home/pi/pivilion/hotglue/hotglue-latest-dev.zip -d /home/pi/pivilion/hotglue/;
|
||||
sudo mv /home/pi/pivilion/hotglue/k0a1a-*/* /home/pi/pivilion/hotglue/;
|
||||
echo "Enter Hotglue admin user";
|
||||
read user;
|
||||
echo "Enter Hotglue admin password";
|
||||
read password;
|
||||
echo -e "<?php\n@define('AUTH_USER', '$user');\n@define('AUTH_PASSWORD', '$password');" > /home/pi/pivilion/hotglue/user-config.inc.php
|
||||
sudo rm -rf /var/www/html/pivilion/gen/{,.[!.],..?}*;
|
||||
sudo cp -rT /home/pi/pivilion/hotglue /var/www/html/pivilion/gen;
|
||||
sudo chmod 777 /var/www/html/pivilion/gen/content;
|
||||
sudo chown -R pi:pi /home/pi;
|
||||
sudo chown -R www-data:www-data /var/www/;
|
||||
sudo chmod -R 775 /var/www;
|
||||
break;;
|
||||
Restore ) sudo rm -rf /var/www/html/pivilion/gen/{,.[!.],..?}*;
|
||||
sudo cp -aR /home/pi/pivilion/hotglue/backup /var/www/html/pivilion/gen;
|
||||
sudo mv /var/www/html/pivilion/gen/backup/* /var/www/html/pivilion/gen
|
||||
sudo chmod -R 777 /var/www/html/pivilion/gen/content;
|
||||
sudo chown -R pi:pi /home/pi;
|
||||
sudo chown -R www-data:www-data /var/www/;
|
||||
sudo chmod -R 775 /var/www;
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
exit 0
|
||||
set -euo pipefail
|
||||
source /usr/local/lib/pivilion/common.sh
|
||||
[ "$(id -u)" -eq 0 ] || exec sudo "$0" "$@"
|
||||
pivilion_load_config
|
||||
|
||||
backup_gallery() {
|
||||
local destination="$PIVILION_DIR/hotglue/backup-$(date +%Y%m%d-%H%M%S)"
|
||||
cp -a "$PIVILION_WEBROOT/gen" "$destination"
|
||||
chown -R "$PIVILION_USER:$PIVILION_GROUP" "$destination"
|
||||
printf '%s\n' "$destination"
|
||||
}
|
||||
|
||||
replace_gallery() {
|
||||
local source=$1
|
||||
[ -d "$source" ] || { echo "Restore source does not exist: $source" >&2; return 1; }
|
||||
find "$PIVILION_WEBROOT/gen" -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +
|
||||
cp -a "$source/." "$PIVILION_WEBROOT/gen/"
|
||||
chown -R www-data:www-data "$PIVILION_WEBROOT/gen"
|
||||
find "$PIVILION_WEBROOT/gen" -type d -exec chmod 2775 {} +
|
||||
find "$PIVILION_WEBROOT/gen" -type f -exec chmod 0664 {} +
|
||||
[ ! -d "$PIVILION_WEBROOT/gen/content" ] || chmod 2775 "$PIVILION_WEBROOT/gen/content"
|
||||
}
|
||||
|
||||
install -d -m 0755 -o "$PIVILION_USER" -g "$PIVILION_GROUP" "$PIVILION_DIR/hotglue"
|
||||
select choice in "Install" "Restore latest backup"; do
|
||||
case "$choice" in
|
||||
Install)
|
||||
work=$(mktemp -d "$PIVILION_DIR/hotglue/download.XXXXXX")
|
||||
trap 'rm -rf "$work"' EXIT
|
||||
wget --https-only https://hotglue.org/download/hotglue-latest-dev.zip -O "$work/hotglue.zip"
|
||||
unzip -q "$work/hotglue.zip" -d "$work/unpacked"
|
||||
source_dir=$(find "$work/unpacked" -mindepth 1 -maxdepth 1 -type d -name 'k0a1a-*' -print -quit)
|
||||
[ -n "$source_dir" ] || { echo "Unexpected Hotglue archive layout." >&2; exit 1; }
|
||||
read -r -p "Hotglue admin user: " admin_user
|
||||
read -r -s -p "Hotglue admin password: " admin_password
|
||||
printf '\n'
|
||||
escaped_user=$(printf '%s' "$admin_user" | sed "s/\\\\/\\\\\\\\/g; s/'/\\\\'/g")
|
||||
escaped_password=$(printf '%s' "$admin_password" | sed "s/\\\\/\\\\\\\\/g; s/'/\\\\'/g")
|
||||
printf "<?php\n@define('AUTH_USER', '%s');\n@define('AUTH_PASSWORD', '%s');\n" \
|
||||
"$escaped_user" "$escaped_password" > "$source_dir/user-config.inc.php"
|
||||
unset admin_password escaped_password
|
||||
backup=$(backup_gallery)
|
||||
replace_gallery "$source_dir"
|
||||
echo "Hotglue installed. Original backup: $backup"
|
||||
break ;;
|
||||
"Restore latest backup")
|
||||
backup=$(find "$PIVILION_DIR/hotglue" -maxdepth 1 -type d -name 'backup-*' -printf '%T@ %p\n' | sort -nr | sed -n '1s/^[^ ]* //p')
|
||||
[ -n "$backup" ] || { echo "No Hotglue backup is available." >&2; exit 1; }
|
||||
current=$(backup_gallery)
|
||||
replace_gallery "$backup"
|
||||
echo "Restored $backup. Previous gallery saved at $current"
|
||||
break ;;
|
||||
*) echo "Choose 1 or 2." ;;
|
||||
esac
|
||||
done
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue