#!/bin/bash # Librerelease # Uploads packages into free/ repo # Config # SSH host, it's better if you have it configured on ~/.ssh/config # with ControlMaster auto (and a shell opened somewhere else) # # Example: # Host * # Protocol 2 # ControlMaster auto # ControlPath /tmp/ssh-%r@%h:%p # # Host parabola # Port 22 # HostName parabolagnulinux.org # User parabolavnx # IdentityFile ~/.ssh/id_rsa # # $ cd pkgbuild/dir # $ ssh parabola -fN # $ librerelease extra host=parabola dir=parabolagnulinux.org/repo/free batchfile=/tmp/librerelease_batchfile.$$ # End Config repo=${1} if [ ${#repo} -eq 0 ]; then echo "Usage: $0 " exit 1; fi function to_sftp() { echo "$@" >> $batchfile } if [ ! -e ./PKGBUILD ]; then echo "PKGBUILD not found" exit 1; fi source PKGBUILD source /etc/makepkg.conf if [ -e ~/.makepkg.conf ]; then source ~/.makepkg.conf; fi PKGDEST=${PKGDEST:-.} SRCPKGDEST=${SRCPKGDEST:-.} # Init the batchfile to_sftp "progress" # Move out the old packages for _arch in ${arch[@]}; do for pkg in ${pkgname[@]}; do pkgfile="$PKGDEST/$pkg-$pkgver-$pkgrel-$_arch$PKGEXT" if [ -e "$pkgfile" ]; then # This has to be moved to repo-maintainer ssh parabola mv $dir/$repo/os/$_arch/$pkg-*-*-$_arch$PKGEXT $dir/old/ to_sftp "put $pkgfile $dir/$repo/os/$_arch/" fi done done makepkg --source to_sftp "put $SRCPKGDEST/$pkgname-$pkgver-$pkgrel$SRCEXT ${dir%free}/pkgbuilds/$repo" sftp -b ${batchfile} $host exit 0