Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 442d397ac0 | |||
| 35dbadef56 | |||
| a9852e82e5 | |||
| ae723c88df | |||
| f08ce91d81 | |||
| 887ed0c343 |
3
Makefile
3
Makefile
@@ -37,7 +37,8 @@ PKG_BIN = \
|
|||||||
bin/pkg/finddeps \
|
bin/pkg/finddeps \
|
||||||
bin/pkg/find-libdeps \
|
bin/pkg/find-libdeps \
|
||||||
bin/pkg/batchpkg \
|
bin/pkg/batchpkg \
|
||||||
bin/pkg/signpkg
|
bin/pkg/signpkg \
|
||||||
|
bin/pkg/checkrepo
|
||||||
|
|
||||||
LN_COMMITPKG = \
|
LN_COMMITPKG = \
|
||||||
extrapkg \
|
extrapkg \
|
||||||
|
|||||||
@@ -142,9 +142,7 @@ chroot_extra_mount() {
|
|||||||
chroot_add_resolv_conf "${working_dir}"
|
chroot_add_resolv_conf "${working_dir}"
|
||||||
|
|
||||||
for arg in "${mount_args[@]}"; do
|
for arg in "${mount_args[@]}"; do
|
||||||
local flag=${arg%%:*}
|
local flag=${arg%%:*} dest=${arg##*:} src=${arg%:*}
|
||||||
local dest=${arg##*:}
|
|
||||||
local src=${arg%:*}
|
|
||||||
src=${src#*:}
|
src=${src#*:}
|
||||||
chroot_mount "${src}" "${working_dir}${dest}" "${flag}"
|
chroot_mount "${src}" "${working_dir}${dest}" "${flag}"
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -31,16 +31,14 @@ get_compliant_name(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
subrepo_clone(){
|
subrepo_clone(){
|
||||||
local pkg="$1" org="$2"
|
local pkg="$1" org="$2" gitname
|
||||||
local gitname
|
|
||||||
gitname=$(get_compliant_name "$pkg")
|
gitname=$(get_compliant_name "$pkg")
|
||||||
msg2 "Subrepo clone [%s] from (%s)" "$pkg" "$org/$gitname"
|
msg2 "Subrepo clone [%s] from (%s)" "$pkg" "$org/$gitname"
|
||||||
git subrepo clone "${GIT_SSH}":"$org"/"$gitname".git "$pkg"
|
git subrepo clone "${GIT_SSH}":"$org"/"$gitname".git "$pkg"
|
||||||
}
|
}
|
||||||
|
|
||||||
create_repo() {
|
create_repo() {
|
||||||
local pkg="$1" org="$2"
|
local pkg="$1" org="$2" gitname
|
||||||
local gitname
|
|
||||||
gitname=$(get_compliant_name "$pkg")
|
gitname=$(get_compliant_name "$pkg")
|
||||||
local json="{ \"auto_init\": true, \"name\":\"$gitname\", \"gitignores\":\"ArchLinuxPackages\", \"readme\": \"Default\" }"
|
local json="{ \"auto_init\": true, \"name\":\"$gitname\", \"gitignores\":\"ArchLinuxPackages\", \"readme\": \"Default\" }"
|
||||||
|
|
||||||
@@ -288,7 +286,7 @@ TEAM='community'
|
|||||||
GROUP="${ARTIX_TREE[0]}"
|
GROUP="${ARTIX_TREE[0]}"
|
||||||
|
|
||||||
host_tree_artix="${GIT_SSH}:artixlinux"
|
host_tree_artix="${GIT_SSH}:artixlinux"
|
||||||
host_tree_arch='git://git.archlinux.org/svntogit'
|
host_tree_arch='https://github.com/archlinux'
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: ${0##*/} [options]"
|
echo "Usage: ${0##*/} [options]"
|
||||||
|
|||||||
182
bin/pkg/checkrepo.in
Normal file
182
bin/pkg/checkrepo.in
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (C) 2018-19 artoo@artixlinux.org
|
||||||
|
# Copyright (C) 2018 Artix Linux Developers
|
||||||
|
#
|
||||||
|
# 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; version 2 of the License.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
m4_include(lib/util-base.sh)
|
||||||
|
m4_include(lib/util-pkg.sh)
|
||||||
|
m4_include(lib/base/message.sh)
|
||||||
|
m4_include(lib/pkg/repo.sh)
|
||||||
|
m4_include(lib/pkg/table.sh)
|
||||||
|
|
||||||
|
update_db_cache(){
|
||||||
|
msg "Updating database cache"
|
||||||
|
for repo in "${searchrepos[@]}"; do
|
||||||
|
local cachedir=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}
|
||||||
|
rm -rf "$cachedir"
|
||||||
|
mkdir -p "$cachedir"
|
||||||
|
msg2 "%s" "$repo"
|
||||||
|
curl -L -s "${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${linksdb_ext}" \
|
||||||
|
| bsdtar -xf - -C "$cachedir"
|
||||||
|
done
|
||||||
|
msg "Done"
|
||||||
|
}
|
||||||
|
|
||||||
|
#{{{ sogrep
|
||||||
|
|
||||||
|
query_db() {
|
||||||
|
for repo in "${searchrepos[@]}"; do
|
||||||
|
local db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/
|
||||||
|
if [[ -d ${db} ]]; then
|
||||||
|
while read -rd '' pkg; do
|
||||||
|
read -r match
|
||||||
|
pkg=${pkg#${db}}
|
||||||
|
pkg="${pkg%/*}"
|
||||||
|
msg_row "${tableQ}" "${repo}" "${pkg}" "${match}"
|
||||||
|
done < <(grep -rZ "${library}" "${db}") | sort -u
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
#}}}
|
||||||
|
|
||||||
|
#{{{ check db
|
||||||
|
|
||||||
|
is_db_entry() {
|
||||||
|
local pkgname="$1" repo="${REPOS[$2]}"
|
||||||
|
|
||||||
|
if [[ -d ${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname ]];then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
check_db(){
|
||||||
|
local pkgpath="${1%/*}"
|
||||||
|
|
||||||
|
for repo in "${!REPOS[@]}"; do
|
||||||
|
local pkgbuild artixver
|
||||||
|
[[ -f $pkgpath/$CARCH/$repo/PKGBUILD ]] && pkgbuild=$pkgpath/$CARCH/$repo/PKGBUILD
|
||||||
|
[[ -f $pkgpath/repos/$repo-$CARCH/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-$CARCH/PKGBUILD
|
||||||
|
[[ -f $pkgpath/repos/$repo-any/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-any/PKGBUILD
|
||||||
|
|
||||||
|
# shellcheck disable=1090
|
||||||
|
. "$pkgbuild" 2>/dev/null
|
||||||
|
|
||||||
|
artixver=$(get_full_version)
|
||||||
|
for name in "${pkgname[@]}"; do
|
||||||
|
|
||||||
|
if ! is_db_entry "$name-$artixver" "$repo"; then
|
||||||
|
msg_row "${tableU}" "$repo" "$name" "$artixver" "false"
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
unset artixver pkgbuild pkgver epoch pkgname pkgbase
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
#}}}
|
||||||
|
|
||||||
|
show_lib_table() {
|
||||||
|
msg_table_header "${tableQ}" "Repo" "Package" "Library"
|
||||||
|
query_db
|
||||||
|
}
|
||||||
|
|
||||||
|
show_db_table(){
|
||||||
|
msg_table_header "${tableU}" "Repo" "Package" "Version" "Database"
|
||||||
|
tree_loop check_db
|
||||||
|
}
|
||||||
|
|
||||||
|
db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
|
||||||
|
|
||||||
|
linksdb_ext="links.tar.${DBEXT}"
|
||||||
|
|
||||||
|
load_makepkg_config
|
||||||
|
|
||||||
|
sync=false
|
||||||
|
check=false
|
||||||
|
query=false
|
||||||
|
|
||||||
|
readonly tableU="%-20s %-35s %-30s %-10s"
|
||||||
|
readonly tableQ="%-20s %-45s %s"
|
||||||
|
|
||||||
|
set_arch_repos "true" "true" "true"
|
||||||
|
|
||||||
|
#{{{ repo names arrays
|
||||||
|
|
||||||
|
declare -A REPOS=(
|
||||||
|
[${valid_names[0]}]=system
|
||||||
|
[${valid_names[1]}]=world
|
||||||
|
[${valid_names[2]}]=galaxy
|
||||||
|
[${valid_names[3]}]=lib32
|
||||||
|
[${valid_names[4]}]=gremlins
|
||||||
|
[${valid_names[5]}]=galaxy-gremlins
|
||||||
|
[${valid_names[6]}]=lib32-gremlins
|
||||||
|
[${valid_names[7]}]=goblins
|
||||||
|
[${valid_names[8]}]=galaxy-goblins
|
||||||
|
[${valid_names[9]}]=lib32-goblins
|
||||||
|
[${valid_names[11]}]=kde-wobble
|
||||||
|
[${valid_names[12]}]=gnome-wobble
|
||||||
|
)
|
||||||
|
|
||||||
|
searchrepos=(
|
||||||
|
"${REPOS[${valid_names[11]}]}"
|
||||||
|
"${REPOS[${valid_names[12]}]}"
|
||||||
|
"${REPOS[${valid_names[7]}]}"
|
||||||
|
"${REPOS[${valid_names[8]}]}"
|
||||||
|
"${REPOS[${valid_names[9]}]}"
|
||||||
|
"${REPOS[${valid_names[4]}]}"
|
||||||
|
"${REPOS[${valid_names[5]}]}"
|
||||||
|
"${REPOS[${valid_names[6]}]}"
|
||||||
|
"${REPOS[${valid_names[0]}]}"
|
||||||
|
"${REPOS[${valid_names[1]}]}"
|
||||||
|
"${REPOS[${valid_names[2]}]}"
|
||||||
|
"${REPOS[${valid_names[3]}]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
#}}}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: ${0##*/} [options] (with -q [libname])"
|
||||||
|
echo ' -r <repo> Repo name to query'
|
||||||
|
echo ' [default: all]'
|
||||||
|
echo " -s Sync repo databases"
|
||||||
|
echo ' -c Check repos'
|
||||||
|
echo " -q Query repo databases for so libs"
|
||||||
|
echo ' -h This help'
|
||||||
|
echo ''
|
||||||
|
echo ''
|
||||||
|
exit "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
opts='r:qcsh'
|
||||||
|
|
||||||
|
while getopts "${opts}" arg; do
|
||||||
|
case "${arg}" in
|
||||||
|
r) searchrepos=("$OPTARG") ;;
|
||||||
|
s) sync=true ;;
|
||||||
|
c) check=true ;;
|
||||||
|
q) query=true ;;
|
||||||
|
h|?) usage 0 ;;
|
||||||
|
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $(( OPTIND - 1 ))
|
||||||
|
|
||||||
|
library="$1"; shift
|
||||||
|
|
||||||
|
${sync} && update_db_cache
|
||||||
|
|
||||||
|
${check} && show_db_table
|
||||||
|
|
||||||
|
${query} && show_lib_table
|
||||||
@@ -16,44 +16,21 @@ m4_include(lib/util-base.sh)
|
|||||||
m4_include(lib/util-pkg.sh)
|
m4_include(lib/util-pkg.sh)
|
||||||
m4_include(lib/base/message.sh)
|
m4_include(lib/base/message.sh)
|
||||||
m4_include(lib/pkg/repo.sh)
|
m4_include(lib/pkg/repo.sh)
|
||||||
|
m4_include(lib/pkg/table.sh)
|
||||||
|
|
||||||
#{{{ table
|
|
||||||
|
|
||||||
msg_table_header(){
|
|
||||||
local mesg=$1; shift
|
|
||||||
# shellcheck disable=2059
|
|
||||||
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
msg_row_downgrade(){
|
|
||||||
local mesg=$1; shift
|
|
||||||
# shellcheck disable=2059
|
|
||||||
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
msg_row_notify(){
|
|
||||||
local mesg=$1; shift
|
|
||||||
# shellcheck disable=2059
|
|
||||||
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
msg_row(){
|
|
||||||
local mesg=$1; shift
|
|
||||||
# printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
|
|
||||||
# shellcheck disable=2059
|
|
||||||
printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
msg_row_upgrade(){
|
|
||||||
local mesg=$1; shift
|
|
||||||
# shellcheck disable=2059
|
|
||||||
printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
#}}}
|
|
||||||
|
|
||||||
#{{{ upgrades, downgrades, moves
|
#{{{ upgrades, downgrades, moves
|
||||||
|
|
||||||
|
remove_list(){
|
||||||
|
local name="$1"
|
||||||
|
[[ -f "${TREE_DIR_ARTIX}"/$name.list ]] && rm "${TREE_DIR_ARTIX}"/$name.list
|
||||||
|
}
|
||||||
|
|
||||||
|
write_list(){
|
||||||
|
local line="$1" name="$2"
|
||||||
|
printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/$name.list
|
||||||
|
}
|
||||||
|
|
||||||
compare_m(){
|
compare_m(){
|
||||||
result=$(vercmp "$artixver" "$archver")
|
result=$(vercmp "$artixver" "$archver")
|
||||||
case ${artixrepo} in
|
case ${artixrepo} in
|
||||||
@@ -63,7 +40,7 @@ compare_m(){
|
|||||||
else
|
else
|
||||||
msg_row_notify "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
msg_row_notify "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||||
if [[ -n "$archrepo" ]]; then
|
if [[ -n "$archrepo" ]]; then
|
||||||
printf "%s\n" "${a}:${b}:$pkg" >> "${TREE_DIR_ARTIX}"/pkg_moves.list
|
write_list "${a}:${b}:$pkg" pkg_moves
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -74,7 +51,7 @@ compare_u(){
|
|||||||
result=$(vercmp "$artixver" "$archver")
|
result=$(vercmp "$artixver" "$archver")
|
||||||
if [ "$result" -eq -1 ];then
|
if [ "$result" -eq -1 ];then
|
||||||
msg_row_upgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
msg_row_upgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||||
printf "%s\n" "${a}:$pkg" >> "${TREE_DIR_ARTIX}"/pkg_upgrades.list
|
write_list "${a}:$pkg" pkg_upgrades
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,12 +74,12 @@ get_archpath(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
pre_compare(){
|
pre_compare(){
|
||||||
local func="$1" pkgpath="$2" result group
|
local func="$1" pkgpath="$2" result group pkg
|
||||||
group="${pkgpath%/*}"
|
group="${pkgpath%/*}"
|
||||||
group=${group##*/}
|
group=${group##*/}
|
||||||
|
|
||||||
local pkg artixrepo archrepo pkgbuild artixver archver archpath node a b
|
|
||||||
pkg=${pkgpath##*/}
|
pkg=${pkgpath##*/}
|
||||||
|
|
||||||
|
local artixrepo archrepo pkgbuild artixver archver archpath node a b
|
||||||
artixrepo=$(find_repo "$pkgpath")
|
artixrepo=$(find_repo "$pkgpath")
|
||||||
pkgbuild=$pkgpath/$artixrepo/PKGBUILD
|
pkgbuild=$pkgpath/$artixrepo/PKGBUILD
|
||||||
|
|
||||||
@@ -148,24 +125,13 @@ compare_move(){
|
|||||||
|
|
||||||
#}}}
|
#}}}
|
||||||
|
|
||||||
#{{{ functions
|
|
||||||
|
|
||||||
tree_loop(){
|
|
||||||
local func="$1"
|
|
||||||
for tree in "${ARTIX_TREE[@]}"; do
|
|
||||||
for package in $(find "${TREE_DIR_ARTIX}/$tree" -name trunk); do
|
|
||||||
"$func" "$package"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
show_compare_header(){
|
show_compare_header(){
|
||||||
msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group"
|
msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group"
|
||||||
}
|
}
|
||||||
|
|
||||||
show_upgrades_table(){
|
show_upgrades_table(){
|
||||||
show_compare_header
|
show_compare_header
|
||||||
[[ -f "${TREE_DIR_ARTIX}"/pkg_upgrades.list ]] && rm "${TREE_DIR_ARTIX}"/pkg_upgrades.list
|
remove_list pkg_upgrades
|
||||||
tree_loop compare_upgrades
|
tree_loop compare_upgrades
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,96 +142,10 @@ show_downgrades_table(){
|
|||||||
|
|
||||||
show_move_table(){
|
show_move_table(){
|
||||||
show_compare_header
|
show_compare_header
|
||||||
[[ -f "${TREE_DIR_ARTIX}"/pkg_moves.list ]] && rm "${TREE_DIR_ARTIX}"/pkg_moves.list
|
remove_list pkg_moves
|
||||||
tree_loop compare_move
|
tree_loop compare_move
|
||||||
}
|
}
|
||||||
|
|
||||||
update_db_cache(){
|
|
||||||
msg "Updating database cache"
|
|
||||||
for repo in "${searchrepos[@]}"; do
|
|
||||||
local cachedir=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}
|
|
||||||
rm -rf "$cachedir"
|
|
||||||
mkdir -p "$cachedir"
|
|
||||||
msg2 "%s" "$repo"
|
|
||||||
curl -L -s "${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${linksdb_ext}" \
|
|
||||||
| bsdtar -xf - -C "$cachedir"
|
|
||||||
done
|
|
||||||
msg "Done"
|
|
||||||
}
|
|
||||||
|
|
||||||
#}}}
|
|
||||||
|
|
||||||
#{{{ sogrep
|
|
||||||
|
|
||||||
query_db() {
|
|
||||||
for repo in "${searchrepos[@]}"; do
|
|
||||||
local db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/
|
|
||||||
if [[ -d ${db} ]]; then
|
|
||||||
while read -rd '' pkg; do
|
|
||||||
read -r match
|
|
||||||
pkg=${pkg#${db}}
|
|
||||||
pkg="${pkg%/*}"
|
|
||||||
msg_row "${tableQ}" "${repo}" "${pkg}" "${match}"
|
|
||||||
done < <(grep -rZ "${library}" "${db}") | sort -u
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
show_lib_table() {
|
|
||||||
${sync} && update_db_cache
|
|
||||||
msg_table_header "${tableQ}" "Repo" "Package" "Library"
|
|
||||||
query_db
|
|
||||||
}
|
|
||||||
|
|
||||||
#}}}
|
|
||||||
|
|
||||||
#{{{ check db
|
|
||||||
|
|
||||||
is_db_entry() {
|
|
||||||
local pkgname="$1" repo="${REPOS[$2]}"
|
|
||||||
|
|
||||||
if [[ -d ${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname ]];then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
check_db(){
|
|
||||||
local pkgpath="${1%/*}"
|
|
||||||
|
|
||||||
for repo in "${!REPOS[@]}"; do
|
|
||||||
local pkgbuild artixver
|
|
||||||
[[ -f $pkgpath/$CARCH/$repo/PKGBUILD ]] && pkgbuild=$pkgpath/$CARCH/$repo/PKGBUILD
|
|
||||||
[[ -f $pkgpath/repos/$repo-$CARCH/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-$CARCH/PKGBUILD
|
|
||||||
[[ -f $pkgpath/repos/$repo-any/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-any/PKGBUILD
|
|
||||||
|
|
||||||
# shellcheck disable=1090
|
|
||||||
. "$pkgbuild" 2>/dev/null
|
|
||||||
|
|
||||||
artixver=$(get_full_version)
|
|
||||||
for name in "${pkgname[@]}"; do
|
|
||||||
|
|
||||||
if ! is_db_entry "$name-$artixver" "$repo"; then
|
|
||||||
msg_row "${tableU}" "$repo" "$name" "$artixver" "false"
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
unset artixver pkgbuild pkgver epoch pkgname pkgbase
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
show_db_table(){
|
|
||||||
${sync} && update_db_cache
|
|
||||||
msg_table_header "${tableU}" "Repo" "Package" "Version" "Database"
|
|
||||||
tree_loop check_db
|
|
||||||
}
|
|
||||||
|
|
||||||
#}}}
|
|
||||||
|
|
||||||
db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
|
|
||||||
|
|
||||||
linksdb_ext="links.tar.${DBEXT}"
|
|
||||||
|
|
||||||
load_makepkg_config
|
load_makepkg_config
|
||||||
|
|
||||||
testing=true
|
testing=true
|
||||||
@@ -276,13 +156,7 @@ upgrades=false
|
|||||||
downgrades=false
|
downgrades=false
|
||||||
move=false
|
move=false
|
||||||
|
|
||||||
sync=false
|
|
||||||
check=false
|
|
||||||
query=false
|
|
||||||
|
|
||||||
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s"
|
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s"
|
||||||
readonly tableU="%-20s %-35s %-30s %-10s"
|
|
||||||
readonly tableQ="%-20s %-45s %s"
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: ${0##*/} [options] (with -q [libname])"
|
echo "Usage: ${0##*/} [options] (with -q [libname])"
|
||||||
@@ -292,28 +166,19 @@ usage() {
|
|||||||
echo " -x Don't inlcude testing packages"
|
echo " -x Don't inlcude testing packages"
|
||||||
echo " -y Don't inlcude staging packages"
|
echo " -y Don't inlcude staging packages"
|
||||||
echo ' -z Include unstable kde and gnome'
|
echo ' -z Include unstable kde and gnome'
|
||||||
echo " -s Sync repo databases"
|
|
||||||
echo ' -c Check repos'
|
|
||||||
echo " -q Query repo databases for so libs"
|
|
||||||
echo ' -r <repo> Repo name to query'
|
|
||||||
echo ' [default: all]'
|
|
||||||
echo ' -h This help'
|
echo ' -h This help'
|
||||||
echo ''
|
echo ''
|
||||||
echo ''
|
echo ''
|
||||||
exit "$1"
|
exit "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
opts='r:qcsudmxyzh'
|
opts='udmxyzh'
|
||||||
|
|
||||||
while getopts "${opts}" arg; do
|
while getopts "${opts}" arg; do
|
||||||
case "${arg}" in
|
case "${arg}" in
|
||||||
u) upgrades=true ;;
|
u) upgrades=true ;;
|
||||||
d) downgrades=true ;;
|
d) downgrades=true ;;
|
||||||
m) move=true ;;
|
m) move=true ;;
|
||||||
s) sync=true ;;
|
|
||||||
c) check=true ;;
|
|
||||||
q) query=true ;;
|
|
||||||
r) searchrepos=("$OPTARG") ;;
|
|
||||||
x) testing=false ;;
|
x) testing=false ;;
|
||||||
y) staging=false ;;
|
y) staging=false ;;
|
||||||
z) unstable=true ;;
|
z) unstable=true ;;
|
||||||
@@ -324,50 +189,10 @@ done
|
|||||||
|
|
||||||
shift $(( OPTIND - 1 ))
|
shift $(( OPTIND - 1 ))
|
||||||
|
|
||||||
library="$1"; shift
|
|
||||||
|
|
||||||
set_arch_repos "$testing" "$staging" "$unstable"
|
set_arch_repos "$testing" "$staging" "$unstable"
|
||||||
|
|
||||||
#{{{ repo names arrays
|
|
||||||
|
|
||||||
declare -A REPOS=(
|
|
||||||
[${valid_names[0]}]=system
|
|
||||||
[${valid_names[1]}]=world
|
|
||||||
[${valid_names[2]}]=galaxy
|
|
||||||
[${valid_names[3]}]=lib32
|
|
||||||
[${valid_names[4]}]=gremlins
|
|
||||||
[${valid_names[5]}]=galaxy-gremlins
|
|
||||||
[${valid_names[6]}]=lib32-gremlins
|
|
||||||
[${valid_names[7]}]=goblins
|
|
||||||
[${valid_names[8]}]=galaxy-goblins
|
|
||||||
[${valid_names[9]}]=lib32-goblins
|
|
||||||
[${valid_names[11]}]=kde-wobble
|
|
||||||
[${valid_names[12]}]=gnome-wobble
|
|
||||||
)
|
|
||||||
|
|
||||||
searchrepos=(
|
|
||||||
"${REPOS[${valid_names[11]}]}"
|
|
||||||
"${REPOS[${valid_names[12]}]}"
|
|
||||||
"${REPOS[${valid_names[7]}]}"
|
|
||||||
"${REPOS[${valid_names[8]}]}"
|
|
||||||
"${REPOS[${valid_names[9]}]}"
|
|
||||||
"${REPOS[${valid_names[4]}]}"
|
|
||||||
"${REPOS[${valid_names[5]}]}"
|
|
||||||
"${REPOS[${valid_names[6]}]}"
|
|
||||||
"${REPOS[${valid_names[0]}]}"
|
|
||||||
"${REPOS[${valid_names[1]}]}"
|
|
||||||
"${REPOS[${valid_names[2]}]}"
|
|
||||||
"${REPOS[${valid_names[3]}]}"
|
|
||||||
)
|
|
||||||
|
|
||||||
#}}}
|
|
||||||
|
|
||||||
${move} && show_move_table
|
${move} && show_move_table
|
||||||
|
|
||||||
${upgrades} && show_upgrades_table
|
${upgrades} && show_upgrades_table
|
||||||
|
|
||||||
${downgrades} && show_downgrades_table
|
${downgrades} && show_downgrades_table
|
||||||
|
|
||||||
${check} && show_db_table
|
|
||||||
|
|
||||||
${query} && show_lib_table
|
|
||||||
|
|||||||
@@ -36,5 +36,5 @@
|
|||||||
# default repos root for deploypkg
|
# default repos root for deploypkg
|
||||||
# REPOS_ROOT=${WORKSPACE_DIR}/repos
|
# REPOS_ROOT=${WORKSPACE_DIR}/repos
|
||||||
|
|
||||||
# default mirror for comparepkg -s
|
# default mirror for checkrepo
|
||||||
# REPOS_MIRROR="http://mirror1.artixlinux.org/repos"
|
# REPOS_MIRROR="http://mirror1.artixlinux.org/repos"
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ load_pkgs(){
|
|||||||
local pkglist="$1" init="$2"
|
local pkglist="$1" init="$2"
|
||||||
info "Loading Packages: [%s] ..." "${pkglist##*/}"
|
info "Loading Packages: [%s] ..." "${pkglist##*/}"
|
||||||
|
|
||||||
local _init="s|@$init||g"
|
local _init="s|@$init||g" _init_rm1 _init_rm2
|
||||||
case "$init" in
|
case "$init" in
|
||||||
'openrc') _init_rm1="s|@runit.*||g"; _init_rm2="s|@s6.*||g" ;;
|
'openrc') _init_rm1="s|@runit.*||g"; _init_rm2="s|@s6.*||g" ;;
|
||||||
's6') _init_rm1="s|@runit.*||g"; _init_rm2="s|@openrc.*||g" ;;
|
's6') _init_rm1="s|@runit.*||g"; _init_rm2="s|@openrc.*||g" ;;
|
||||||
|
|||||||
@@ -5,15 +5,15 @@
|
|||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
set_arch_repos(){
|
set_arch_repos(){
|
||||||
local x="$1" y="$2" z="$3"
|
local _testing="${1:-false}" _staging="${2:-false}" _unstable="${3:-false}"
|
||||||
# shellcheck disable=1090
|
# shellcheck disable=1090
|
||||||
. "${DATADIR}"/valid-names.conf
|
. "${DATADIR}"/valid-names.conf
|
||||||
|
|
||||||
ARCH_REPOS=("${stable[@]}")
|
ARCH_REPOS=("${stable[@]}")
|
||||||
|
|
||||||
$x && ARCH_REPOS+=("${gremlins[@]}")
|
$_testing && ARCH_REPOS+=("${gremlins[@]}")
|
||||||
$y && ARCH_REPOS+=("${goblins[@]}")
|
$_staging && ARCH_REPOS+=("${goblins[@]}")
|
||||||
$z && ARCH_REPOS+=("${unstable[@]}")
|
$_unstable && ARCH_REPOS+=("${unstable[@]}")
|
||||||
}
|
}
|
||||||
|
|
||||||
find_repo(){
|
find_repo(){
|
||||||
@@ -27,10 +27,19 @@ find_repo(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
find_pkg(){
|
find_pkg(){
|
||||||
local searchdir="$1" pkg="$2"
|
local searchdir="$1" pkg="$2" result
|
||||||
local result
|
|
||||||
result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg")
|
result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg")
|
||||||
echo "$result"
|
echo "$result"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tree_loop(){
|
||||||
|
local func="$1" pkgs
|
||||||
|
for tree in "${ARTIX_TREE[@]}"; do
|
||||||
|
pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name repos -o -name "$CARCH")
|
||||||
|
for package in ${pkgs}; do
|
||||||
|
"$func" "$package"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
#}}}
|
#}}}
|
||||||
|
|||||||
36
lib/pkg/table.sh
Normal file
36
lib/pkg/table.sh
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/hint/bash
|
||||||
|
|
||||||
|
#{{{ table
|
||||||
|
|
||||||
|
msg_table_header(){
|
||||||
|
local mesg=$1; shift
|
||||||
|
# shellcheck disable=2059
|
||||||
|
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
msg_row_downgrade(){
|
||||||
|
local mesg=$1; shift
|
||||||
|
# shellcheck disable=2059
|
||||||
|
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
msg_row_notify(){
|
||||||
|
local mesg=$1; shift
|
||||||
|
# shellcheck disable=2059
|
||||||
|
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
msg_row(){
|
||||||
|
local mesg=$1; shift
|
||||||
|
# printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||||
|
# shellcheck disable=2059
|
||||||
|
printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
msg_row_upgrade(){
|
||||||
|
local mesg=$1; shift
|
||||||
|
# shellcheck disable=2059
|
||||||
|
printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
#}}}
|
||||||
@@ -49,7 +49,7 @@ load_pkg_config(){
|
|||||||
|
|
||||||
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
|
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
|
||||||
|
|
||||||
ARCH_TREE=(packages community)
|
ARCH_TREE=(svntogit-{packages,community})
|
||||||
|
|
||||||
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
|
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user