Compare commits

...

5 Commits
0.25.6 ... 0.26

Author SHA1 Message Date
b734357ea9 checkrepo: refactoring 2021-11-29 22:58:49 +01:00
74d44873e7 checkrepo: add obsolete pkg check 2021-11-29 16:41:49 +01:00
91e038c3f5 don't find arch vcs repos 2021-11-28 13:59:20 +01:00
8548a584f3 restore arch vcs repo detect 2021-11-28 13:57:07 +01:00
38fb213e13 pkg tools: remove old layout support 2021-11-26 19:04:17 +01:00
3 changed files with 90 additions and 63 deletions

View File

@@ -18,19 +18,42 @@ m4_include(lib/base/message.sh)
m4_include(lib/pkg/repo.sh)
m4_include(lib/pkg/table.sh)
#{{{ db libs
extract_db() {
local u="$1" cdir="$2"
rm -rf "$cdir"
mkdir -p "$cdir"
msg2 "%s" "${cdir##*/}"
curl -L -s "$u" | bsdtar -xf - -C "$cdir"
}
update_db_cache(){
msg "Updating database cache ..."
local cachedir url
for repo in "${searchrepos[@]}"; do
cachedir=${db_cache_dir}/linksdb/$repo
url=${REPOS_MIRROR}/$repo/os/${CARCH}/$repo.${linksdb_ext}
extract_db "$url" "$cachedir"
done
msg "Done"
}
#}}}
#{{{ sogrep
query_db() {
for repo in "${searchrepos[@]}"; do
local db
db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/
db=${db_cache_dir}/linksdb/$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
msg_row "${tableQ}" "$repo" "$pkg" "${match}"
done < <(grep -rZ "$library" "$db") | sort -u
fi
done
}
@@ -41,7 +64,7 @@ query_db() {
is_db_entry() {
local pkgname="$1" repo="${REPOS[$2]}" entry
entry=${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname
entry=${db_cache_dir}/linksdb/$repo/$pkgname
if [[ -d "$entry" ]];then
return 0
@@ -50,20 +73,14 @@ is_db_entry() {
}
check_db(){
local pkgpath="${1}" oldpath="${1%/*}"/repos
local pkgpath="${1}"
for repo in "${!REPOS[@]}"; do
local pkgbuild artixver
if [[ -f $pkgpath/$repo/PKGBUILD ]]; then
pkgbuild=$pkgpath/$repo/PKGBUILD
elif [[ -f $oldpath/$repo-$CARCH/PKGBUILD ]]; then
pkgbuild=$oldpath/$repo-$CARCH/PKGBUILD
elif [[ -f $oldpath/$repo-any/PKGBUILD ]]; then
pkgbuild=$oldpath/$repo-any/PKGBUILD
fi
if [[ -f "$pkgbuild" ]]; then
# shellcheck disable=1090
. "$pkgbuild" 2>/dev/null
artixver=$(get_full_version)
@@ -81,6 +98,54 @@ check_db(){
#}}}
# {{{ check obsolete
show_obsolete_table() {
local arch_mirror='https://mirror.f4st.host/archlinux'
local arch_repo artix_repo artix_db arch_db url
arch_repo="${searchrepos[@]}"
artix_repo="${REPOS[$arch_repo]}"
artix_db="${db_cache_dir}/artixdb/${artix_repo}"
arch_db="${db_cache_dir}/archdb/${arch_repo}"
msg "Updating database cache ..."
url=${REPOS_MIRROR}/${artix_repo}/os/$CARCH/${artix_repo}.${db_ext}
extract_db "$url" "${artix_db}"
url=${arch_mirror}/${arch_repo}/os/$CARCH/${arch_repo}.${db_ext}
extract_db "$url" "${arch_db}"
msg "Done"
msg_table_header "${tableQ}" "Repo" "Package" "Obsolete"
for p in "${artix_db}"/*; do
local pkg rel
pkg=${p##*/}
rel=${pkg##*-}
rel=${rel%.*}
pkg=${pkg%-*}
local p="$pkg-$rel"
if [[ "$p" != *openrc* ]] && [[ "$p" != *runit* ]] \
&& [[ "$p" != *s6* ]] && [[ "$p" != *suite66* ]] \
&& [[ "$p" != *eudev* ]] && [[ "$p" != *elogind* ]] \
&& [[ "$p" != *sysusers* ]] && [[ "$p" != *tmpfiles* ]] \
&& [[ "$p" != *execline* ]] && [[ "$p" != *skalibs* ]] \
&& [[ "$p" != *netifrc* ]] && [[ "$p" != *bootlogd* ]] \
&& [[ "$p" != *pam_rundir* ]] && [[ "$p" != *artools* ]] \
&& [[ "$p" != *archlinux* ]] && [[ "$p" != *iso-profiles* ]] \
&& [[ "$p" != *calamares* ]] && [[ "$p" != *iso-initcpio* ]] \
&& [[ "$p" != *dinit* ]] && [[ "$p" != *artix* ]]; then
if [[ ! -d "${arch_db}/$p" ]]; then
msg_row "${tableQ}" "${artix_repo}" "$p" "true"
fi
fi
done
}
#}}}
show_lib_table() {
msg_table_header "${tableQ}" "Repo" "Package" "Library"
query_db
@@ -91,23 +156,10 @@ show_db_table(){
tree_loop check_db
}
update_db_cache(){
msg "Updating database cache ..."
local cachedir url
for repo in "${searchrepos[@]}"; do
cachedir=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}
rm -rf "$cachedir"
mkdir -p "$cachedir"
msg2 "%s" "$repo"
url=${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${linksdb_ext}
curl -L -s "$url" | bsdtar -xf - -C "$cachedir"
done
msg "Done"
}
db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
linksdb_ext="links.tar.${DBEXT}"
db_ext="db.tar.${DBEXT}"
load_makepkg_config
@@ -115,9 +167,10 @@ sync=false
check=false
query=false
all_db=false
obsolete=false
readonly tableU="%-20s %-35s %-30s %-10s"
readonly tableQ="%-20s %-45s %s"
readonly tableQ="%-20s %-55s %s"
load_valid_names
@@ -162,6 +215,7 @@ usage() {
echo " -s Sync repo databases"
echo ' -c Check repos'
echo ' -a Show repo db (-c)'
echo ' -o Check for obsolete packages'
echo " -q Query repo databases for so libs"
echo ' -h This help'
echo ''
@@ -169,7 +223,7 @@ usage() {
exit "$1"
}
opts='r:qcsah'
opts='r:qcsaoh'
while getopts "${opts}" arg; do
case "${arg}" in
@@ -178,6 +232,7 @@ while getopts "${opts}" arg; do
c) check=true ;;
a) all_db=true ;;
q) query=true ;;
o) obsolete=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
@@ -192,3 +247,5 @@ ${sync} && update_db_cache
${check} && show_db_table
${query} && show_lib_table
${obsolete} && show_obsolete_table

View File

@@ -46,33 +46,6 @@ subrepo_pull(){
git subrepo pull "$pkg"
}
prepare_commit(){
# create new layout, copy & remove repos
if [[ -d repos ]]; then
msg2 "Switching to new layout ..."
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
for r in repos/*; do
local name noarch
name=${r#*/}
noarch=${name%-*}
mkdir "$CARCH/${noarch}"
cp repos/"${name}"/* "$CARCH/${noarch}/"
git add "$CARCH/${noarch}"
done
git rm -r repos
git commit -m "switch to new repo layout"
msg2 "Done switch"
fi
if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then
[[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}"
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
[[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}"
fi
}
check_rebuild(){
if [[ -d "$CARCH"/"${valid_names[10]}" ]] \
&& [[ "${repo_dest}" == "${valid_names[7]}" ]]; then
@@ -104,11 +77,6 @@ check_team(){
path_config() {
[[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD
if [[ ! -f "$pkgbuild" ]]; then
pkgbuild=repos/"${repo_src}-${CARCH}"/PKGBUILD
[[ -f repos/"${repo_src}"-any/PKGBUILD ]] && pkgbuild=repos/"${repo_src}"-any/PKGBUILD
fi
# shellcheck disable=1090
. "$pkgbuild"
}
@@ -130,7 +98,6 @@ commit_pkg() {
if [[ "${repo_src}" == 'trunk' ]];then
git rm -r trunk
else
prepare_commit
git rm -r "$CARCH/${repo_src}"
fi
else
@@ -144,11 +111,15 @@ commit_pkg() {
repo_commit_pkg() {
local commit_msg
[[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}"
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
[[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}"
if [[ "${repo_src}" == 'trunk' ]]; then
action='add'
commit_msg=$(get_repo_commit_msg)
msg "Action: %s" "$commit_msg"
prepare_commit
check_rebuild
cp trunk/* "$CARCH/${repo_dest}"/
else
@@ -156,7 +127,6 @@ repo_commit_pkg() {
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
commit_msg=$(get_repo_commit_msg)
msg "Action: %s" "$commit_msg"
prepare_commit
cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/
git rm -r "$CARCH/${repo_src}"
fi

View File

@@ -41,7 +41,7 @@ find_pkg(){
tree_loop(){
local func="$1" pkgs
for tree in "${ARTIX_TREE[@]}"; do
pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name repos -o -name "$CARCH" | sort)
pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort)
for _package in ${pkgs}; do
"$func" "$_package"
done