You've already forked open-video-downloader-appimage
first commit
This commit is contained in:
101
push.sh
Executable file
101
push.sh
Executable file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Variables
|
||||
gui=true
|
||||
desktop="Open Video Downloader.desktop"
|
||||
icon="open-video-downloader.png"
|
||||
|
||||
# Get version
|
||||
oldver=$(grep -E "^pkgver=" PKGBUILD | sed 's/pkgver="//;s/"//')
|
||||
if [ $# -eq 1 ]; then
|
||||
pkgver="${1}"
|
||||
else
|
||||
echo "Old version: ${oldver}"
|
||||
read -p "New version: " pkgver
|
||||
fi
|
||||
|
||||
# Check version
|
||||
if [ "${pkgver}" = "${oldver}" ] && [ -z "${FORCE_REBUILD}" ]; then
|
||||
echo >/dev/stderr "Error: same (old) version specified - update aborted"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get variables from PKGBUILD
|
||||
url=$(sed -n '/^source=(/,/)/p' PKGBUILD | grep -oE 'https?://[^"]+')
|
||||
pkgname=$(grep -E "^pkgname=" PKGBUILD | sed 's/pkgname="//;s/"//')
|
||||
_pkgname=$(grep -E "^_pkgname=" PKGBUILD | 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
|
||||
url="${url//\$\{pkgname\}/$pkgname}"
|
||||
url="${url//\$\{_pkgname\}/$_pkgname}"
|
||||
url="${url//\$\{_srcname\}/$_srcname}"
|
||||
url="${url//\$\{_srcmntr\}/$_srcmntr}"
|
||||
url="${url//\$\{pkgver\}/$pkgver}"
|
||||
_archive="${_archive//\$\{pkgname\}/$pkgname}"
|
||||
_archive="${_archive//\$\{_pkgname\}/$_pkgname}"
|
||||
_archive="${_archive//\$\{pkgver\}/$pkgver}"
|
||||
aur_url="${aur_url//\$\{_pkgname\}/$_pkgname}"
|
||||
|
||||
# Download archive
|
||||
wget -O ${_archive} "${url}"
|
||||
# Extract icon / .desktop files if appimage
|
||||
if printf '%s' "${_archive,,}" | grep -qi "appimage"; then
|
||||
chmod +x "${_archive}"
|
||||
"./${_archive}" --appimage-extract
|
||||
cp "squashfs-root/${desktop}" "${newdesktop}"
|
||||
cp "squashfs-root/${icon}" "${newicon}"
|
||||
if [ -L "squashfs-root" ]; then
|
||||
rm -rf $(readlink -f squashfs-root) squashfs-root
|
||||
fi
|
||||
fi
|
||||
# Calculate checksums
|
||||
sha256bin=$(sha256sum ${_archive} | awk '{print $1}')
|
||||
if [ "${gui}" = "true" ]; then
|
||||
sha256dsk=$(sha256sum ${newdesktop} | awk '{print $1}')
|
||||
sha256ico=$(sha256sum ${newicon} | awk '{print $1}')
|
||||
fi
|
||||
# Yoink the archive - unnecessary anymore
|
||||
rm -f ${_archive}
|
||||
|
||||
# Update PKGBUILD with new values
|
||||
sed -i -E "s/^pkgver=\"[^\"]+\"/pkgver=\"$pkgver\"/" PKGBUILD
|
||||
if [ "${gui}" = "true" ]; then
|
||||
sed -i '/^sha256sums=(/,/^)/c\
|
||||
sha256sums=(\
|
||||
"'"$sha256bin"'"\
|
||||
"'"$sha256dsk"'"\
|
||||
"'"$sha256ico"'"\
|
||||
)' PKGBUILD
|
||||
else
|
||||
sed -i -E "s/^sha256sums=\(\"[^\"]+\"\)/sha256sums=(\"$sha256bin\")/" PKGBUILD
|
||||
fi
|
||||
# Update .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
|
||||
git add .
|
||||
git commit -m "Updated ${pkgname} to ${pkgver}-${pkgrel}"
|
||||
git remote add aur ${aur_url}
|
||||
git push origin main
|
||||
git push aur main:master
|
||||
fi
|
||||
Reference in New Issue
Block a user