Add clearing support (directly on remote server)
This commit is contained in:
82
clear-repo.sh
Executable file
82
clear-repo.sh
Executable file
@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The purpose of this script is to clear our custom pacman repository
|
||||
# i.e. remove older versions of packages
|
||||
# This script should NOT be run as root.
|
||||
|
||||
# Make sure that AWK rules file is present, readable and correctly set in this script's parameters
|
||||
|
||||
init() {
|
||||
# Only run if the user is not root
|
||||
if [[ $USER = 'root' ]] ; then
|
||||
echo "You cannot run this script as root!"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -e $repo_directory/$repo_db_file ] ; then
|
||||
echo "Could not find db file. Exiting..."
|
||||
exit 1
|
||||
fi
|
||||
source variables.conf
|
||||
echo "ArchRepo clearing script"
|
||||
}
|
||||
|
||||
clearRepo() {
|
||||
stream=$(tar xOf $repo_directory/$repo_db_file --wildcards */desc | awk -f $awk_rules_file)
|
||||
|
||||
OIFS=$IFS
|
||||
IFS='|'
|
||||
stream="${stream:1}"
|
||||
current=""
|
||||
for package in $stream
|
||||
do
|
||||
IFS='
|
||||
'
|
||||
count=0
|
||||
for line in $package; do
|
||||
if [ $count -eq 0 ]; then
|
||||
current="$current $line"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
((count++))
|
||||
done
|
||||
|
||||
IFS='|'
|
||||
done
|
||||
IFS=$OIFS
|
||||
|
||||
cd $repo_directory
|
||||
reg="^($repo_name.).+"
|
||||
for filename in *; do
|
||||
if [[ $filename =~ $reg || $filename = 'sync' || $filename = 'local' || $filename = 'resources' ]]; then
|
||||
continue
|
||||
fi
|
||||
for package in $current; do
|
||||
if [ $filename = $package ]; then
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
echo "Removing $filename..."
|
||||
rm $filename
|
||||
done
|
||||
}
|
||||
|
||||
run_directory_path=$(pwd)
|
||||
|
||||
# Set parameters
|
||||
repo_db_file=$repo_name.db.tar
|
||||
repo_db_filesfile=$repo_name.files.tar
|
||||
awk_rules_file='parser.awk'
|
||||
|
||||
# Main process
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
init
|
||||
clearRepo
|
||||
else
|
||||
echo "Please call this script without any arguments."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user