#!/bin/bash # Updates the cleansystem file # Creates a fake Parabola root and writes to cleansystem all # packages installable from base and base-devel plus extras. set -e # Copyright 2012 Nicolás Reynolds, Luke Shumaker # ---------- 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 . set -e # libretools.conf gives us libremessages source /etc/libretools.conf cleansystem=/etc/libretools.d/cleansystem cmd=${0##*/} usage() { echo "Usage: $cmd []" echo " $cmd -h" echo "Creates a fake Parabola root and writes to \`$cleansystem' all" echo "packages installable from base and base-devel plus extras." echo '' echo 'Options:' echo ' -h Show this message' } if [ "$1" == '-h' ]; then usage exit 0 fi if [ ! -w "$cleansystem" ]; then error 'This script must be run as root' exit 1 fi # Maintain a clean database in the system db_dir="${DB:-/var/lib/libretools/clean}" [ ! -d "${db_dir}" ] && mkdir -p "${db_dir}" # We sync first because updating info gets printed to stdout too pacman -b "${db_dir}" --config /etc/pacman.conf -Sy 2>/dev/null pacman -b "${db_dir}" \ --config /etc/pacman.conf \ -Sp --print-format "%n" \ base base-devel sudo $@ | sort > "$cleansystem" # Ensures everything's installed pacman -Sy --needed --noconfirm base base-devel sudo $@ exit $?