#!/bin/bash # Generates a patch for a nonfree PKGBUILD # # Copyright 2010 Nicolás Reynolds # ---------- GNU General Public License 3 ---------- # This file is part of Parabola. # Parabola 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 3 of the License, or # (at your option) any later version. # Parabola 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 Parabola. If not, see . usage() { echo "Usage: $0 [ ...]" echo "Requirements:" echo "* Have a / directory with nonfree build scripts inside" echo "* Have a -libre/ directory with libre build scripts inside" } # Load custom config or system-wide config custom_config=$XDG_CONFIG_HOME/libretools/libretools.conf if [ -e $custom_config ]; then source $custom_config else source /etc/libretools.conf fi # Print usage if no package has been given [[ -z "$@" ]] && { usage exit 1 } for package in $@; do # Continue on errors [[ ! -d ./${package} || ! -d ./${package}-libre ]] && { echo "Error: no matching ${package} and ${package}-libre found" continue } [[ ! -f ./${package}/PKGBUILD || ! -f ./${package}-libre/PKGBUILD ]] && { echo "Error: no matching PKGBUILDs found for ${package}-libre" continue } source ./${package}-libre/PKGBUILD [[ -z ${pkgbase} ]] && pkgbase=${pkgname} # Generate a diff file, no -r since we don't want to patch src/ nor pkg/ diff -auN ${package} ${package}-libre > $PATCHDIR/${pkgbase}-${pkgver}-${pkgrel}.patch done exit 0