summaryrefslogtreecommitdiffstats
path: root/lib/db.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/db.sh')
-rw-r--r--lib/db.sh293
1 files changed, 0 insertions, 293 deletions
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 <http://www.gnu.org/licenses/>.
-
-[ "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/<hash>/<source>".
- rmdir "${dir}"
- # Try to remove ".../.db/<hash>" 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/<hash>/<source>/<arch>_<plat>".
- 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/<hash>/<source>/.db/<binver>_<arch>_<plat>".
- rmdir "${dir}"
- # Try to remove "pool/<hash>/<source>/.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
-}