Functional version 1.1

This commit is contained in:
2022-02-14 22:26:48 +01:00
parent dfd59d987e
commit 8a64dc90c5
4 changed files with 37 additions and 26 deletions

View File

@ -9,6 +9,7 @@
# Make sure the following packages are installed before running this script:
# package-query aurutils git
# Functions
##################################################################
@ -81,19 +82,21 @@ init() {
exit 1
fi
source ../variables.conf
eval "$(ssh-agent)"
ssh-add $ssh_key
# TODO Check if required packages are installed
echo "ArchRepo update script"
}
ftpFetch() {
ftp fetch $remote_repository/$repo_db_file $run_directory_path # TODO use real syntax ^^'
}
checkUpdates() {
echo "Checking for updates:"
upgraded_packages=""
#stream=$(tar xOf $repo_directory/$repo_db_file --wildcards */desc | awk -f $awk_rules_file)
scp $ssh_options $remote_repository/$repo_db_file $remote_repository/$repo_db_filesfile $run_directory_path/
# scp $ssh_options $remote_repository/$repo_db_file $run_directory_path/
# cp $run_directory_path/../$repo_db_filesfile $run_directory_path/
stream=$(tar xOf $run_directory_path/$repo_db_file --wildcards */desc | awk -f $awk_rules_file)
OIFS=$IFS
@ -122,7 +125,6 @@ checkUpdates() {
continue 1
fi
exlist=""
if echo $exlist | grep -w $name > /dev/null; then
echo -e "\nSkipping $name ($version, temporary exception)."
continue 1
@ -135,6 +137,7 @@ checkUpdates() {
result=$?
if [[ $result -eq 1 ]]; then
echo "New version for $name: $version -> $aur_version"
IFS=$OIFS
createPackage $name
addPackageToRepo $name $aur_version
upgraded_packages="$upgraded_packages $name"
@ -161,33 +164,28 @@ createPackage() { # Create package $1
aur fetch $1 # TODO This could be replaced by a git clone or even a wget+tar thanks to package-query
echo "Making $1 package..."
cd $1
# if linux-lts{414,49} then download kernel source from local repo (saves ~100MB each time)
# WARNING this onlys works because we already have said sources AND because PKBUILD follow this particular line
# (not the same in 419 nor 54)
reg="(linux-lts).+"
if [[ $1 =~ $reg ]]; then
sed -i -e "s/\"https:\/\/www.kernel.org\/pub\/linux\/kernel\/v4.x\/\${_srcname}.tar.xz\"/\"https:\/\/archlinux.kto.black\/resources\/\${_srcname}.tar.xz\"/g" ./PKGBUILD
fi
## if linux-lts{414,49} then download kernel source from local repo (saves ~100MB each time)
## WARNING this onlys works because we already have said sources AND because PKBUILD follow this particular line
## (not the same in 419 nor 54)
#reg="(linux-lts).+"
#if [[ $1 =~ $reg ]]; then
#sed -i -e "s/\"https:\/\/www.kernel.org\/pub\/linux\/kernel\/v4.x\/\${_srcname}.tar.xz\"/\"https:\/\/archlinux.kto.black\/resources\/\${_srcname}.tar.xz\"/g" ./PKGBUILD
#fi
makepkg -s --noconfirm --noprogressbar
cd $run_directory_path
}
ftpSend() {
}
# TODO: try manually: can we update db file before sending to remote repo?
addPackageToRepo() { # Add package $1
echo "Adding $1 to repository..."
#cp $run_directory_path/$1/$1-$2*.pkg.tar.xz $repo_directory
repo-add $repo_db_file $1-$2*.pkg.tar.xz
ftp send $repo_db_file $repo_db_file.old $remote_repository
ftp send packages $remote_repository
scp $ssh_options $run_directory_path/$1/$1-$2*.pkg.tar.xz $remote_repository/
repo-add $repo_db_file $run_directory_path/$1/$1-$2*.pkg.tar.xz
scp $ssh_options $run_directory_path/$repo_db_file $run_directory_path/$repo_db_file.old $run_directory_path/$repo_db_filesfile $run_directory_path/$repo_db_filesfile.old $remote_repository/
reg="(linux-lts).+"
if [[ $name =~ $reg ]]; then
echo "Adding $1-headers and $1-docs to repository..."
cp $run_directory_path/$1/$1-headers-$2*.pkg.tar.xz $run_directory_path/$1/$1-docs-$2*.pkg.tar.xz $repo_directory
repo-add $repo_directory/$repo_db_file $repo_directory/$1-headers-$2*.pkg.tar.xz $repo_directory/$1-docs-$2*.pkg.tar.xz
repo-add $repo_db_file $run_directory_path/$1/$1-headers-$2*.pkg.tar.xz $run_directory_path/$1/$1-docs-$2*.pkg.tar.xz
scp $ssh_options $run_directory_path/$1/$1-headers-$2*.pkg.tar.xz $run_directory_path/$1/$1-docs-$2*.pkg.tar.xz $remote_repository/
fi
}
@ -246,8 +244,8 @@ run_directory_path=$(pwd)
repo_directory='/mnt/archrepo'
repo_name='kto'
repo_db_file=$repo_name.db.tar
repo_db_filesfile=$repo_name.files.tar
awk_rules_file='../parser.awk'
#repo_db_file='kto.db.tar' # You can set db name manually here if different
# Main process