Renaming package to ShadowArch to follow /wiki/Design_Principles; improved packing; development sync to current state -- massive overhaul
This commit is contained in:
103
AdminScripts/arch-update
Executable file
103
AdminScripts/arch-update
Executable file
@@ -0,0 +1,103 @@
|
||||
#!/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
|
Reference in New Issue
Block a user