Skip to content

Instantly share code, notes, and snippets.

@dillera
Last active April 28, 2021 12:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dillera/5ea7ab1f6dbe4d787964c54769bea10e to your computer and use it in GitHub Desktop.
Save dillera/5ea7ab1f6dbe4d787964c54769bea10e to your computer and use it in GitHub Desktop.
auto builder
#!/usr/sgug/bin/bash
# acdiller v1.0.5 trying to automate rse builds
# april2021
# > now it installs all created rpms properly
#
basepath="/usr/people/`whoami`"
codebase="$basepath/sgug-rse.git/packages"
rpmbase="$basepath/rpmbuild"
srcbase="$basepath/rpmbuild/SRPMS"
fc31updates='https://archives.fedoraproject.org/pub/archive/fedora/linux/updates/31/Everything/SRPMS/Packages'
fc31releases='https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/source/tree/Packages'
package=$1
myletter=${package:0:1}
echo starting
echo Param is: $1
echo Letter is: $myletter
echo basepath $basepath
echo rpmbase $rpmbase
echo ''
cd $codebase/$package
git checkout wipnonautomated
echo "_________working: "`pwd`" _________"
if [ -d "SOURCES" ]
then
echo "SOURCES exists."
cp SOURCES/* ~/rpmbuild/SOURCES/
echo copied into rpmbuild
else
echo "No SOURCES, continuing."
fi
update=`wget -nv -O- "${fc31updates}"/"${myletter}"/ | grep $package | awk '{print $6}' | awk -F\" '{print $2}' `
release=`wget -nv -O- "${fc31releases}"/"${myletter}"/ | grep $package | awk '{print $6}' | awk -F\" '{print $2}' `
echo ____found source package?________
echo "Update--->" $update
echo "Release-->" $release
echo ''
echo ''
if test -n "${release-}"; then
echo "Going to pull SRPM from releases..."
curl -o $srcbase/$release $fc31releases/$myletter/$release
cd $rpmbase && rpm -Uvvh $srcbase/$release
echo _____________completed install of SRPM for $package ____________________
if test -n "${update-}"; then
echo "Going to pull SRPM from updates..."
curl -o $srcbase/$update $fc31updates/$myletter/$update
cd $rpmbase && rpm -Uvvh $srcbase/$update
echo _____________completed install of SRPM for $package ____________________
else
echo "no update for this release... move to build"
fi
else # there is release detected, check for update and install it
if test -n "${update-}"; then
echo "Going to pull SRPM from updates..."
curl -o $srcbase/$update $fc31updates/$myletter/$update
cd $rpmbase && rpm -Uvvh $srcbase/$update
echo _____________completed install of just update SRPM for $package ____________________
else
echo "no update and no release for this package...move to build"
fi
fi
echo "______Time to build___________________"
rpmbuild -ba --undefine=_disable_source_fetch $codebase/$package/SPECS/$1.spec > >(tee -a stdout.log) 2> >(tee -a stderr.log >&2)
echo "______Time to install___________________"
targets=($(grep "Wrote" output| awk '{print $2}'))
for t in "${targets[@]}"
do
sudo rpm -Uvh $t
done
echo done
@dillera
Copy link
Author

dillera commented Apr 28, 2021

working out dep mgt

`

deps=($(grep needed stderr.log | awk '{print $1}'))

for d in "${deps[@]}"
do
   [[ $d == *[{}\(\)\[\]]* ]] && echo yes || echo no
done

`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment