Installation updates and scripts

This commit is contained in:
2022-11-20 20:47:27 -06:00
parent e74a77387f
commit 0cee9eac39
118 changed files with 366 additions and 3975 deletions

View File

@@ -1,4 +1,4 @@
list=arch-update close-guest fix-sound log-guest netcli open-guest restart-service silent-guardian revproxy simple-web shadowarch-sync
list=close-guest fix-sound log-guest open-guest restart-service silent-guardian revproxy simple-web
location=${pkgdir}/usr/local/sbin
perms=0700

View File

@@ -1,103 +0,0 @@
#!/bin/bash
set -x
export logfile="/var/log/sysupdate.log"
export tmpfile=/tmp/shadowarch-cowerfile
unset apply
while getopts "al:h" OPTION
do
case $OPTION in
a) export apply="true"; ;;
c) export logfile=${OPTARG}; ;;
*) printf "ShadowArch Update Checker\n-a Apply changes\n-l Logfile\n-h Show this helptext\n"; exit 1;;
esac;
done
date > $logfile
# Update
echo == Updating Arch Packages == | tee -a $logfile
if [ ! -z "$apply" ]; then
pacman -Syu --force 2>&1 | tee -a $logfile # I've been having troubles with this causing crashes while online.
# Hook for MediaWiki
if [ `grep $(date +$F) /var/log/pacman.log | grep -c mediawiki` -eq 1 ] && [ -d /usr/share/webapps/mediawiki ]; then
php /usr/share/webapps/mediawiki/maintenance/update.php | tee -a $logfile
for i in `find /usr/share/webapps/ -maxdepth 1 -type d | grep mediawiki\-`; do
rsync -avz --exclude images --exclude Images --exclude LocalSettings.php /usr/share/webapps/mediawiki/ "$i"
php "$i"/maintenance/update.php
done
fi
# Hook for TT-RSS
if [ `grep $(date +$F) /var/log/pacman.log | grep -c tt-rss` -eq 1 ] && [ -d /usr/share/webapps/tt-rss ]; hten
/usr/bin/runuser -u http -- /usr/bin/php /usr/share/webapps/tt-rss/update.php --update-schema
fi
# Hook for Grimoire
if [ `grep $(date +$F) /var/log/pacman.log | grep -c 'upgraded postgresql '` -eq 1 ]; then
echo "Updating PostGreSQL databases" | tee -a $logfile
#Clear old backups.
rm -Rf /var/lib/postgres/olddata
#Stop the service and save old database version.
if [ -f /usr/lib/systemd/system/grimoire.service ]; then systemctl stop grimoire; else systemctl stop postgresql.service; fi
su -l postgres -c 'mv /var/lib/postgres/data /var/lib/postgres/olddata'
# Init new database and upgrade.
su -l postgres -c 'initdb --locale en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data' | tee -a $logfile
upstr=`grep "$(date +%F)" /var/log/pacman.log | grep 'upgraded postgresql '`
oldver=`echo $upstr | rev | cut -f 2 -d '>' | cut -f 1 -d '(' | rev | sed s/\ -//`
newver=`echo $upstr | rev | cut -f 1 -d '>' | cut -f 2 -d ')' | rev`
# Upgrade the database.
su -l postgres -c "pg_upgrade -d /var/lib/postgres/olddata/ -D /var/lib/postgres/data/ -b /opt/pgsql-$oldver/bin/ -B /usr/bin/" | tee -a $logfile
# Create dump file for restores.
/opt/pgsql-$oldver/bin/pg_ctl -D /var/lib/postgres/olddata/ start
/opt/pgsql-$oldver/bin/pg_dumpall >> /var/lib/postgres/olddata/dump.psql
/opt/pgsql-$oldver/bin/pg_ctl -D /var/lib/postgres/olddata/ stop
# Restart the service.
if [ -f /usr/lib/systemd/system/grimoire.service ]; then systemctl start grimoire; else systemctl start postgresql.service; fi
echo "Updated PostGreSQL databases" | tee -a $logfile
fi
else
checkupdates | tee -a $logfile
fi
echo | tee -a $logfile
# Get AUR list of update candidates
echo == AUR Candidate List == | tee -a $logfile
if [ ! -z "$apply" ]; then
cower -u | cut -f 2 -d ' ' &> $tmpfile
echo Edit the package list.
read
${EDITOR} ${tmpfile}
chmod 0755 $tmpfile;
printf "What deprivileged user do you want to use? "
read deprivuser;
sudo -u "$deprivuser" /bin/bash -c "for i in `cat $tmpfile`; do cd /usr/local/src/"$i"; git pull; makepkg -sri; done"
(echo Updated the following AUR packages:; cat $tmpfile) | tee -a $logfile
rm $tmpfile;
else
cower -u | tee -a $logfile
fi
echo | tee -a $logfile
# Update AniNIX packages
echo == Updating AniNIX Packages == | tee -a $logfile
if [ ! -z "$apply" ]; then
for i in ; do #`find /usr/local/src/ -maxdepth 6 -type f -name config -exec egrep -l aninix\|foundation {} \; | sed 's#.git/config$##'`; do
cd "$i"
git pull
make
make install
done
fi
# Generate list of installed packages
echo == Generated installed-packages list == | tee -a $logfile
pacman -Qqe | egrep '^[a-z]' | sed 's#local/##' > /var/log/installed-packages.txt
# Generate list of orphaned packages
echo == Generated orphaned-packages list == | tee -a $logfile
pacman -Qdtq > /var/log/orphaned-packages.txt
echo | tee -a $logfile
date | tee -a $logfile
printf '\n\n' | tee -a $logfile

View File

@@ -1,111 +0,0 @@
#!/bin/bash
# Global variables
unset conf
unset network
unset type
interface="wlp4s0"
# Print helptext
function usage() {
echo Usage: $0 '[-i interface] -f conf_name'
echo " $0 -a # Connect to any known secured network"
echo " $0 -l # List networks and arp"
echo " $0 -o SSID # Connect to open network "
echo " $0 -u # Bring up interface"
echo " $0 -d # Stop the interface"
echo " $0 -I # Info "
echo " $0 -h # Usage"
echo
echo Add -v to increase verbosity.
echo "Add -t TYPE to override type guessing, where type is eth or wifi"
echo Default interface is "${interface}"
}
# Try to guess if we're ether or wifi
function guessType() {
if [ "$(echo "${interface}" | egrep -c '^enp|^eth|^eno')" -ne 1 ]; then
echo "wifi"
else
echo "ether"
fi
}
# Clean up running processes
function cleanUp() {
killall wpa_supplicant dhcpcd 2>&1
ip link set "$interface" down
}
# Connect to a given open network
# param network: an open ESSID
function connectOpen() {
network="$1"
cleanUp
ip link set "$interface" up
if [ "$type" == "wifi" ]; then
iw dev "$interface" connect "$network"
fi
}
# Connect to any known secured access point
function connectAny() {
cleanUp
ip link set "$interface" up
if [ "$type" == "wifi" ]; then
for i in `iwlist "$interface" scanning | grep ESSID | cut -f 2 -d \" | tr '[:upper:]' '[:lower:]'`; do
if [ -f /etc/wpa_supplicant/"$i".conf ]; then
/root/bin/wifi "$i" "$interface"
if [ $? -eq 0 ]; then
exit 0;
fi
fi
done
fi
}
# Connect using the WPA Conf file saved
# param conf: the conf file
function connect() {
conf="$1"
cleanUp
ip link set "${interface}" up
if [ "$type" == wifi ]; then
wpa_supplicant -i "$interface" -c "$conf" -B
fi
}
# Get the information on current interfaces
function netInfo() {
ip addr list
ip route list
iwlist scanning
}
### MAIN FUNCTION ###
if [ `echo "$0" | egrep -c '(^|/)netcli$'` -eq 1 ]; then
type=`guessType`
while getopts 'adf:hIi:lo:t:uv' OPTION 2>/dev/null; do
case "${OPTION}" in
a) connectAny ;;
f) connect "/etc/wpa_supplicant/${OPTARG}.conf" ;;
d) cleanUp; exit 0 ;;
h) usage; exit 0 ;;
i) interface="${OPTARG}"; type=`guessType` ;;
I) netInfo; exit 0; ;;
l) if [ "$type" == "wifi" ]; then echo SSID Broadcasts:; iwlist "${interface}" scanning | egrep Encryption\|ESSID | sed 's/ *//' | sed 's/ESSID://' ; fi; echo; echo ARP list:; arp -a; exit $? ;;
o) connectOpen "${OPTARG}" ;;
t) if [ "$OPTARG" != "wifi" ] && [ "$OPTARG" != "eth" ]; then usage; exit 1; fi; type="${OPTARG}" ;;
u) if ! [ "$(ip link list "${interface}" | grep -m 1 -c \ UP\ )" -ne 1 ]; then ip link set "${interface}" up; fi ;;
v) set -x ;;
*) usage; exit 1 ;;
esac
done
# Attempt DHCP Lease -- if this fails, static routing will need to be added TODO
sleep 3
dhcpcd "$interface"
exit $?
fi

View File

@@ -1,25 +0,0 @@
#!/bin/bash
# File: shadowarch-sync
#
# Description: This file syncs the ShadowArch customization files over the ones created by other packages, like filesystem and pacman
#
# Package: AniNIX::Foundation/ShadowArch
# Copyright: WTFPL
#
# Author: DarkFeather <darkfeather@aninix.net>
seconds=10
echo "Syncing in $seconds seconds. Press Ctrl+C to cancel."
sleep $seconds
# AniNIX GPG Package Signing
keyid=1CC1E3F4ED06F296
if ! gpg --homedir /etc/pacman.d/gnupg --list-key "${keyid}"; then
pacman-key --recv-key "${keyid}"
pacman-key --finger "${keyid}"
pacman-key --lsign-key "${keyid}"
fi
# Sync configuration
rsync -avz /opt/aninix/ShadowArch/etc/ /etc/