From 65022fdd57f41b6250b2e29bdd7bac59b17f3cea Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 22 Jul 2017 13:26:23 -0400 Subject: `git mv lib/*.sh src/` --- (limited to 'lib/db.sh') diff --git a/lib/db.sh b/lib/db.sh deleted file mode 100644 index e2f8fb7..0000000 --- a/lib/db.sh +++ /dev/null @@ -1,293 +0,0 @@ -# pro-archman -# lib/db.sh -# Functions for querying and modifying the database -# -# Copyright (C) 2013 Patrick "P. J." McDermott -# -# 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 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 . - -[ "x${_DB_SM+set}" = 'xset' ] && return 0 -_DB_SM=1 - -use dir - -# -# Functions for the suites indices -# - -db_get_srcver() -{ - local chan="${1}" - local dist="${2}" - local source="${3}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}" - if [ -f "${dir}/srcver" ]; then - cat "${dir}/srcver" - fi - - return 0 -} - -db_set_srcver() -{ - local chan="${1}" - local dist="${2}" - local source="${3}" - local srcver="${4}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}" - mkdir -p "${dir}" - printf '%s\n' "${srcver}" >"${dir}/srcver" - - return 0 -} - -db_del_srcver() -{ - local chan="${1}" - local dist="${2}" - local source="${3}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}" - rm -f "${dir}/srcver" - # Remove ".../.db//". - rmdir "${dir}" - # Try to remove ".../.db/" and ".../.db". - for dir in "${dir%/*}" "${dir%/*/*}"; do - try_rmdir "${dir}" || break - done - - return 0 -} - -db_get_binver() -{ - local chan="${1}" - local dist="${2}" - local arch="${3}" - local plat="${4}" - local source="${5}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}/${arch}_${plat}" - if [ -f "${dir}/binver" ]; then - cat "${dir}/binver" - fi - - return 0 -} - -db_set_binver() -{ - local chan="${1}" - local dist="${2}" - local arch="${3}" - local plat="${4}" - local source="${5}" - local binver="${6}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}/${arch}_${plat}" - mkdir -p "${dir}" - printf '%s\n' "${binver}" >"${dir}/binver" - - return 0 -} - -db_del_binver() -{ - local chan="${1}" - local dist="${2}" - local arch="${3}" - local plat="${4}" - local source="${5}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}/${arch}_${plat}" - rm -f "${dir}/binver" - # Remove ".../.db///_". - rmdir "${dir}" - - return 0 -} - -db_foreach_source() -{ - local chan="${1}" - local dist="${2}" - local cb="${3}" - local dir= - - shift 3 - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - # For each hash: - for dir in "${dir}/"*/; do - if [ ! -d "${dir}" ]; then - continue - fi - # For each source: - for dir in "${dir}/"*/; do - if [ ! -d "${dir}" ]; then - continue - fi - dir="${dir%/}" - dir="${dir##*/}" - "${cb}" "${chan}" "${dist}" "${dir}" "${@}" - done - done - - return 0 -} - -db_get_archplats() -{ - local chan="${1}" - local dist="${2}" - local source="${3}" - local dir= - - dir="${base_dir}/feeds/${chan}/${dist}/.db" - dir="${dir}/$(hash_name "${source}")/${source}" - for dir in "${dir}/"*_*/; do - if [ ! -d "${dir}" ]; then - continue - fi - dir="${dir%/}" - dir="${dir##*/}" - printf '%s %s\n' "${dir%%_*}" "${dir#*_}" - done - - return 0 -} - -# -# Functions for the pool indices -# - -db_get_packages() -{ - local arch="${1}" - local plat="${2}" - local source="${3}" - local binver="${4}" - local dir= - - dir="${base_dir}/pool/$(hash_name "${source}")/${source}/.db" - dir="${dir}/${binver}_${arch}_${plat}" - if [ -f "${dir}/packages" ]; then - cat "${dir}/packages" - fi - - return 0 -} - -db_add_package() -{ - local arch="${1}" - local plat="${2}" - local source="${3}" - local binver="${4}" - local size="${5}" - local sect="${6}" - local pkg="${7}" - local dir= - - dir="${base_dir}/pool/$(hash_name "${source}")/${source}/.db" - dir="${dir}/${binver}_${arch}_${plat}" - mkdir -p "${dir}" - printf '%s %s %s\n' "${size}" "${sect}" "${pkg}" >>"${dir}/packages" - - return 0 -} - -db_del_packages() -{ - local arch="${1}" - local plat="${2}" - local source="${3}" - local binver="${4}" - local dir= - - dir="${base_dir}/pool/$(hash_name "${source}")/${source}/.db" - dir="${dir}/${binver}_${arch}_${plat}" - rm -f "${dir}/packages" - # Remove "pool///.db/__". - rmdir "${dir}" - # Try to remove "pool///.db". - try_rmdir "${dir%/*}" - - return 0 -} - -db_inc_references() -{ - local arch="${1}" - local plat="${2}" - local source="${3}" - local binver="${4}" - local dir= - local refs= - - dir="${base_dir}/pool/$(hash_name "${source}")/${source}/.db" - dir="${dir}/${binver}_${arch}_${plat}" - if [ -f "${dir}/references" ]; then - refs="$(cat "${dir}/references")" - refs=$(($refs + 1)) - else - refs=1 - mkdir -p "${dir}" - fi - printf '%d\n' "${refs}" >"${dir}/references" - printf '%d\n' "${refs}" - - return 0 -} - -db_dec_references() -{ - local arch="${1}" - local plat="${2}" - local source="${3}" - local binver="${4}" - local dir= - local refs= - - dir="${base_dir}/pool/$(hash_name "${source}")/${source}/.db" - dir="${dir}/${binver}_${arch}_${plat}" - if [ -f "${dir}/references" ]; then - refs="$(cat "${dir}/references")" - refs=$(($refs - 1)) - else - refs=0 - fi - if [ ${refs} -eq 0 ]; then - rm -f "${dir}/references" - else - printf '%d\n' "${refs}" >"${dir}/references" - fi - printf '%d\n' "${refs}" - - return 0 -} -- cgit v0.9.1