You've already forked pman-helper
updated push script
This commit is contained in:
93
push.sh
93
push.sh
@@ -1,50 +1,103 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
gui=false
|
||||||
|
desktop="pman.desktop"
|
||||||
|
icon="pman.png"
|
||||||
|
|
||||||
# Get version
|
# Get version
|
||||||
oldver=$(grep "pkgver=" PKGBUILD | sed 's/pkgver="//;s/"//')
|
oldver=$(grep -E "^pkgver=" PKGBUILD | sed 's/pkgver="//;s/"//')
|
||||||
if [ $# -eq 1 ]; then
|
if [ $# -eq 1 ]; then
|
||||||
pkgver="${1}"
|
pkgver="${1}"
|
||||||
else
|
else
|
||||||
echo "Old version: ${oldver}"
|
echo "Old version: ${oldver}"
|
||||||
read -p "New version: " pkgver
|
read -p "New version: " pkgver
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check version
|
# Check version
|
||||||
if [ "${pkgver}" = "${oldver}" ]; then
|
if [ "${pkgver}" = "${oldver}" ] && [ -z "${FORCE_REBUILD}" ]; then
|
||||||
echo >/dev/stderr "Error: same (old) version specified - update aborted"
|
echo >/dev/stderr "Error: same (old) version specified - update aborted"
|
||||||
exit 1
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get variables from PKGBUILD
|
# Get variables from PKGBUILD
|
||||||
url=$(grep "source=" PKGBUILD | sed 's/source=("//;s/")//')
|
url=$(sed -n '/^source=(/,/)/p' PKGBUILD | grep -oE 'https?://[^"]+')
|
||||||
pkgname=$(grep "_pkgname=" PKGBUILD | sed 's/_pkgname="//;s/"//')
|
pkgname=$(grep -E "^pkgname=" PKGBUILD | sed 's/pkgname="//;s/"//')
|
||||||
pkgrel=$(grep "pkgrel=" PKGBUILD | sed 's/pkgrel="//;s/"//')
|
_pkgname=$(grep -E "^_pkgname=" PKGBUILD | sed 's/_pkgname="//;s/"//')
|
||||||
aur_url=$(grep "pkgname=" PKGBUILD | tail -n 1 | sed 's/pkgname="//;s/"//')
|
_srcname=$(grep -E "^_srcname=" PKGBUILD | sed 's/_srcname="//;s/"//')
|
||||||
|
_srcmntr=$(grep -E "^_srcmntr=" PKGBUILD | sed 's/_srcmntr="//;s/"//')
|
||||||
|
_archive=$(grep -E "^_archive=" PKGBUILD | sed 's/_archive="//;s/"//')
|
||||||
|
pkgrel=$(grep -E "^pkgrel=" PKGBUILD | sed 's/pkgrel="//;s/"//')
|
||||||
|
aur_url="ssh://aur@aur.archlinux.org/${pkgname}.git"
|
||||||
|
if [ "${gui}" = "true" ] && [ -n "${_pkgname}" ]; then
|
||||||
|
newdesktop="${_pkgname}.desktop"
|
||||||
|
newicon="${_pkgname}.png"
|
||||||
|
else
|
||||||
|
newdesktop="${package}.desktop"
|
||||||
|
newicon="${package}.png"
|
||||||
|
fi
|
||||||
|
|
||||||
# Perform variable substitution
|
# Perform variable substitution
|
||||||
archive_url="${url//\$\{_pkgname\}/$pkgname}"
|
url="${url//\$\{_pkgname\}/$_pkgname}"
|
||||||
archive_url="${archive_url//\$\{pkgver\}/$pkgver}"
|
url="${url//\$\{_srcname\}/$_srcname}"
|
||||||
aur_url="ssh://aur@aur.archlinux.org/${aur_url//\$\{_pkgname\}/$pkgname}.git"
|
url="${url//\$\{_srcmntr\}/$_srcmntr}"
|
||||||
|
url="${url//\$\{pkgver\}/$pkgver}"
|
||||||
|
_archive="${_archive//\$\{_pkgname\}/$_pkgname}"
|
||||||
|
_archive="${_archive//\$\{pkgver\}/$pkgver}"
|
||||||
|
aur_url="${aur_url//\$\{_pkgname\}/$_pkgname}"
|
||||||
|
pkgname="${pkgname//\$\{_pkgname\}/$_pkgname}"
|
||||||
|
|
||||||
# Download archive
|
# Download archive
|
||||||
wget -O ${pkgname}.tar.gz "${archive_url}"
|
wget -qO ${_archive} "${url}"
|
||||||
|
# Extract icon / .desktop files if appimage
|
||||||
|
if printf '%s' "${_archive,,}" | grep -qi "appimage"; then
|
||||||
|
chmod +x "${_archive}"
|
||||||
|
"./${_archive}" --appimage-extract >/dev/null
|
||||||
|
cp "squashfs-root/${desktop}" "${newdesktop}"
|
||||||
|
cp "squashfs-root/${icon}" "${newicon}"
|
||||||
|
sed -i "/^X-AppImage-/d;/^$/d" "${newdesktop}"
|
||||||
|
sed -i "s/^Exec=.*/Exec=${_pkgname} %U/" "${newdesktop}"
|
||||||
|
rm -rf $(readlink -f squashfs-root) squashfs-root
|
||||||
|
fi
|
||||||
# Calculate checksums
|
# Calculate checksums
|
||||||
sha1sum=$(sha1sum ${pkgname}.tar.gz | awk '{print $1}')
|
sha256bin=$(sha256sum ${_archive} | awk '{print $1}')
|
||||||
sha256sum=$(sha256sum ${pkgname}.tar.gz | awk '{print $1}')
|
if [ "${gui}" = "true" ]; then
|
||||||
md5sum=$(md5sum ${pkgname}.tar.gz | awk '{print $1}')
|
sha256dsk=$(sha256sum ${newdesktop} | awk '{print $1}')
|
||||||
|
sha256ico=$(sha256sum ${newicon} | awk '{print $1}')
|
||||||
|
fi
|
||||||
# Yoink the archive - unnecessary anymore
|
# Yoink the archive - unnecessary anymore
|
||||||
rm -f ${pkgname}.tar.gz
|
rm -f ${_archive}
|
||||||
|
|
||||||
# Update PKGBUILD with new values
|
# Update PKGBUILD with new values
|
||||||
sed -i -E "s/^pkgver=\"[^\"]+\"/pkgver=\"$pkgver\"/" PKGBUILD
|
sed -i -E "s/^pkgver=\"[^\"]+\"/pkgver=\"$pkgver\"/" PKGBUILD
|
||||||
sed -i -E "s/^sha1sums=\(\"[^\"]+\"\)/sha1sums=(\"$sha1sum\")/" PKGBUILD
|
if [ "${gui}" = "true" ]; then
|
||||||
sed -i -E "s/^sha256sums=\(\"[^\"]+\"\)/sha256sums=(\"$sha256sum\")/" PKGBUILD
|
sed -i '/^sha256sums=(/,/^)/c\
|
||||||
sed -i -E "s/^md5sums=\(\"[^\"]+\"\)/md5sums=(\"$md5sum\")/" PKGBUILD
|
sha256sums=(\
|
||||||
|
"'"$sha256bin"'"\
|
||||||
|
"'"$sha256dsk"'"\
|
||||||
|
"'"$sha256ico"'"\
|
||||||
|
)' PKGBUILD
|
||||||
|
else
|
||||||
|
sed -i -E "s/^sha256sums=\(\"[^\"]+\"\)/sha256sums=(\"$sha256bin\")/" PKGBUILD
|
||||||
|
fi
|
||||||
|
if [ "${pkgver}" != "${oldver}" ] && [ -n "${FORCE_REBUILD}" ]; then
|
||||||
|
sed -i -E "s/^pkgrel=\"[^\"]+\"/pkgrel=\"1\"/" PKGBUILD
|
||||||
|
fi
|
||||||
# Update .SRCINFO
|
# Update .SRCINFO
|
||||||
makepkg --printsrcinfo > .SRCINFO
|
makepkg --printsrcinfo > .SRCINFO
|
||||||
|
|
||||||
|
# Create git message with correct variable
|
||||||
|
if [ -n "$_pkgname" ]; then
|
||||||
|
commit_msg="Updated ${pkgname//\$\{_pkgname\}/_pkgname} to ${pkgver}-${pkgrel}"
|
||||||
|
else
|
||||||
|
commit_msg="Updated ${pkgname} to ${pkgver}-${pkgrel}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${NO_GIT_PUSH}" ]; then
|
||||||
# In case of fire, git commit, git push, leave building
|
# In case of fire, git commit, git push, leave building
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Updated ${pkgname} to ${pkgver}-${pkgrel}"
|
git commit -m "${commit_msg}"
|
||||||
git remote add aur ${aur_url}
|
git remote add aur ${aur_url}
|
||||||
git push origin main
|
git push origin main
|
||||||
git push aur main:master
|
git push aur main:master
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user