#!/usr/bin/env bash # This script will help you diff a *-libre PKGBUILD against the unfree one # to check for updates. # Copyright (C) 2010-2011 Nicolás Reynolds # Copyright (C) 2011 Joshua Ismael Haase Hernández (xihh) # Copyright (C) 2017 Luke Shumaker # # License: GNU GPLv3+ # # 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 . . "$(librelib messages)" . "$(librelib conf)" usage() { print "Usage: %s [community|packages] [unfree-package] [repo]" "${0##*/}" print "Usage: %s --help" "${0##*/}" prose "Helps you diff build scripts from ABSLibre against (Unfree) ABS." echo prose "Package name and repo will we guessed if you don't specify them." } main() { if [[ "$1" == "--help" ]]; then usage return $EXIT_SUCCESS fi load_conf libretools.conf DIFFPROG || exit local package_guess=${PWD##*/} local repo=${1:-$(basename "${PWD%/*}")} local package=${2:-${package_guess%-libre}} local trunk=${3:-trunk} svnrepo="packages" case $repo in community*) svnrepo="community";; multilib*) svnrepo="community";; *) :;; esac if [[ ! -r PKGBUILD ]]; then error "This is not a build dir." exit $EXIT_FAILURE fi tmp_dir="$(mktemp --tmpdir -d "${package}.XXXXXX")" if [[ ! -d "${tmp_dir}" ]]; then error "Can't create temp dir" exit $EXIT_FAILURE fi unfree_dir="${tmp_dir}/${svnrepo}/${package}/${trunk}" pushd "${tmp_dir}" &>/dev/null msg "Getting diff from %s..." "$repo/$package" svn checkout --depth=empty "svn://svn.archlinux.org/$svnrepo" &>/dev/null cd "${svnrepo}" svn update "${package}" # Back to start dir popd &>/dev/null msg "Diffing files" for _file in "${unfree_dir}"/*; do msg2 "%s" "$(basename "${_file}")" "${DIFFPROG}" "$PWD/$(basename "${_file}")" "${_file}" done } main "$@"