#!/bin/bash # Copyright (C) 2014 Joseph Graham # # 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 3 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 Affero General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This script finds any updated packages and calls # `make_indivudual_torrent' for each of them. username=$( id -un ) case "${username}" in repo | root ) true ;; * ) echo "This script must be run as repo user or root user." echo "ByeBye!" exit 1 ;; esac # pacman doesn't support multiple different packages of the same name, # so it's OK to just stuff all the torrents into a single directory. script_directory="$(dirname "$(readlink -e "$0")")/.." . "$(dirname "$(readlink -e "$0")")/../config" public_location="$FTP_BASE/" torrent_location="$FTP_BASE/torrents/" cd "${torrent_location}" # Find any directories that might have packages in then find "${public_location}" -name 'os' -type 'd' | while read dir do # Find any packages find "${dir}" -name '*\.pkg\.tar\.xz' | while read pkg do pkg_name="${pkg##*/}" if [[ -h "${pkg}" ]] # check if it's a symbolic link then # We get the target of the symlink pkg=$( readlink -f "${pkg}" ) fi # If a .torrent file does not already exist for this package, we call # `make_individual_torrent' to make it. if ! [[ -f "${torrent_location}${pkg_name}.torrent" ]] then "$script_directory/make_individual_torrent" "${pkg}" "${public_location}" fi done done if [[ "${username}" == root ]] then chown repo * fi