Newer
Older
#!/bin/bash
# Copyright © Sébastien Luttringer
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
RED=$'\e''[1;31m'
GREEN=$'\e''[1;32m'
BLUE=$'\e''[1;34m'
BOLD=$'\e''[0;1m'
RESET=$'\e''[m'
}
source_pkgbuild() {
[[ ! -f PKGBUILD ]] && echo 'No PKGBUILD' && exit 1
source /usr/share/devtools/makepkg-x86_64.conf
[[ -r "$HOME/.makepkg.conf" ]] && source "$HOME/.makepkg.conf"
source PKGBUILD
[[ $(type -t pkgver) == 'function' ]] && pkgver=$(pkgver)
for _pkgname in "${pkgname[@]}"; do
# define filename base
# handle epoch which is optional
filebase="$_pkgname-"
[[ -n $epoch ]] && (( $epoch > 0 )) && filebase+="$epoch:"
filebase+="$pkgver-$pkgrel"
[[ -f "$filename" ]] && to_commit+=("$filename")
done
done
}
# push package to remote repository
push_pkg() {
(( $# > 0 )) || return
msg "Pushing packages into $repourl"
# copy files
for _pkg; do
msg2 "Copying $_pkg"
scp -p "./$_pkg" "scp://$repourl/$repodir" || exit 2
done
}
# if packages are on command line add them, otherwise look in PKGBUILD
if (( $# > 0 )); then
for _pkg; do
[[ "$_pkg" =~ .*\.pkg\.tar\.(xz|zst) ]] && to_commit+=("$_pkg")
# when no package found, push all packages in the current directory
if (( ${#to_commit[@]} == 0 )); then
to_commit=(*\.pkg\.tar\.{xz,zst})
fi
fi
# exit early when no job
ssh "ssh://$repourl" -- "cd $repodir && seblu-commit" '-r' "${to_commit[@]}"