Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
74ab2c71b1 | |||
1f64eba1e6 | |||
442d397ac0 | |||
35dbadef56 | |||
a9852e82e5 | |||
ae723c88df | |||
f08ce91d81 | |||
887ed0c343 |
5
Makefile
5
Makefile
@@ -1,4 +1,4 @@
|
|||||||
VERSION=0.21
|
VERSION=0.22
|
||||||
|
|
||||||
TOOLS = artools
|
TOOLS = artools
|
||||||
PREFIX ?= /usr
|
PREFIX ?= /usr
|
||||||
@@ -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 \
|
||||||
|
@@ -21,13 +21,13 @@ m4_include(lib/base/mount.sh)
|
|||||||
#{{{ functions
|
#{{{ functions
|
||||||
|
|
||||||
chroot_part_mount() {
|
chroot_part_mount() {
|
||||||
info "mount: [%s]" "$2"
|
msg2 "mount: [%s]" "$2"
|
||||||
mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}")
|
mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}")
|
||||||
}
|
}
|
||||||
|
|
||||||
chroot_part_umount() {
|
chroot_part_umount() {
|
||||||
chroot_api_umount
|
chroot_api_umount
|
||||||
info "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
msg2 "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
||||||
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
||||||
unset CHROOT_ACTIVE_PART_MOUNTS
|
unset CHROOT_ACTIVE_PART_MOUNTS
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ select_os(){
|
|||||||
local last=${os##*:}
|
local last=${os##*:}
|
||||||
case $last in
|
case $last in
|
||||||
'efi') count=$((count-1)) ;;
|
'efi') count=$((count-1)) ;;
|
||||||
*) info "$i) $(get_os_name "$os")"; i=$((i+1)) ;;
|
*) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
i=0
|
i=0
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
m4_include(lib/base/message.sh)
|
m4_include(lib/base/message.sh)
|
||||||
m4_include(lib/base/mount.sh)
|
m4_include(lib/base/mount.sh)
|
||||||
m4_include(lib/base/chroot.sh)
|
m4_include(lib/base/chroot.sh)
|
||||||
|
m4_include(lib/base/chroot-version.sh)
|
||||||
|
|
||||||
# $1: chroot
|
# $1: chroot
|
||||||
kill_chroot_process(){
|
kill_chroot_process(){
|
||||||
@@ -26,7 +27,7 @@ kill_chroot_process(){
|
|||||||
# this process is in the chroot...
|
# this process is in the chroot...
|
||||||
pid=$(basename "$(dirname "$root_dir")")
|
pid=$(basename "$(dirname "$root_dir")")
|
||||||
name=$(ps -p "$pid" -o comm=)
|
name=$(ps -p "$pid" -o comm=)
|
||||||
info "Killing chroot process: %s (%s)" "$name" "$pid"
|
msg2 "Killing chroot process: %s (%s)" "$name" "$pid"
|
||||||
kill -9 "$pid"
|
kill -9 "$pid"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -96,7 +97,6 @@ for host_mirror in "${host_mirrors[@]}"; do
|
|||||||
if [[ $host_mirror == *file://* ]]; then
|
if [[ $host_mirror == *file://* ]]; then
|
||||||
# shellcheck disable=2016
|
# shellcheck disable=2016
|
||||||
host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
|
host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
|
||||||
info "host mirror: %s" "$host_mirror"
|
|
||||||
in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror")
|
in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -142,20 +142,12 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
sync_host_localtime(){
|
|
||||||
if [[ -e /etc/localtime ]]; then
|
|
||||||
cp -L /etc/localtime "${working_dir}"/etc/localtime
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
umask 0022
|
umask 0022
|
||||||
|
|
||||||
# Sanity check
|
# Sanity check
|
||||||
@@ -165,8 +157,6 @@ elif [[ $(cat "$working_dir/.artools") != "${CHROOTVERSION}" ]]; then
|
|||||||
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}"
|
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#sync_host_localtime
|
|
||||||
|
|
||||||
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"
|
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"
|
||||||
|
|
||||||
chroot_extra_mount
|
chroot_extra_mount
|
||||||
|
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
m4_include(lib/base/message.sh)
|
m4_include(lib/base/message.sh)
|
||||||
m4_include(lib/base/chroot.sh)
|
m4_include(lib/base/chroot.sh)
|
||||||
|
m4_include(lib/base/chroot-version.sh)
|
||||||
|
|
||||||
working_dir=''
|
working_dir=''
|
||||||
umode=''
|
umode=''
|
||||||
|
@@ -187,10 +187,9 @@ gen_iso_fn(){
|
|||||||
prepare_build(){
|
prepare_build(){
|
||||||
load_profile
|
load_profile
|
||||||
|
|
||||||
local repo=default
|
|
||||||
|
|
||||||
case "${repo}" in
|
case "${repo}" in
|
||||||
'gremlins'|'goblins') repo="${repo}" ;;
|
'gremlins'|'goblins') repo="${repo}" ;;
|
||||||
|
*) repo=default ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
get_pacman_conf "${repo}"
|
get_pacman_conf "${repo}"
|
||||||
|
@@ -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\" }"
|
||||||
|
|
||||||
@@ -55,20 +53,20 @@ create_repo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
subrepo_new(){
|
subrepo_new(){
|
||||||
cd "${TREE_DIR_ARTIX}/${GROUP}" || return
|
cd "${TREE_DIR_ARTIX}/${group}" || return
|
||||||
|
|
||||||
local org
|
local org
|
||||||
org=$(get_pkg_org "${PACKAGE}")
|
org=$(get_pkg_org "${package}")
|
||||||
|
|
||||||
create_repo "${PACKAGE}" "$org"
|
create_repo "${package}" "$org"
|
||||||
|
|
||||||
add_repo_to_team "${PACKAGE}" "$org" "${TEAM}"
|
add_repo_to_team "${package}" "$org" "${team}"
|
||||||
|
|
||||||
subrepo_clone "${PACKAGE}" "$org"
|
subrepo_clone "${package}" "$org"
|
||||||
|
|
||||||
mkdir -p "${TREE_DIR_ARTIX}/${GROUP}/${PACKAGE}/trunk"
|
mkdir -p "${TREE_DIR_ARTIX}/${group}/${package}/trunk"
|
||||||
|
|
||||||
commit_jenkins_files "${PACKAGE}"
|
commit_jenkins_files "${package}"
|
||||||
}
|
}
|
||||||
|
|
||||||
#}}}
|
#}}}
|
||||||
@@ -91,7 +89,7 @@ pull_tree_arch(){
|
|||||||
pull_tree "${tree}" "$(get_local_head)" "Arch"
|
pull_tree "${tree}" "$(get_local_head)" "Arch"
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
clone_tree "${host_tree_arch}" "${tree}" "Arch"
|
clone_tree "${HOST_TREE_ARCH}" "${tree}" "Arch"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -112,7 +110,7 @@ config_tree(){
|
|||||||
pull_tree_artix(){
|
pull_tree_artix(){
|
||||||
local repos=()
|
local repos=()
|
||||||
if ${sync_group}; then
|
if ${sync_group}; then
|
||||||
repos=("${GROUP}")
|
repos=("${group}")
|
||||||
else
|
else
|
||||||
repos=("${ARTIX_TREE[@]}")
|
repos=("${ARTIX_TREE[@]}")
|
||||||
fi
|
fi
|
||||||
@@ -215,14 +213,14 @@ from_arch(){
|
|||||||
cd "${TREE_DIR_ARTIX}" || return
|
cd "${TREE_DIR_ARTIX}" || return
|
||||||
|
|
||||||
local srcpath repo archpath artixpath
|
local srcpath repo archpath artixpath
|
||||||
srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
|
srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
|
||||||
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
|
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}"
|
||||||
|
|
||||||
repo=$(find_repo "$srcpath")
|
repo=$(find_repo "$srcpath")
|
||||||
msg "repo: %s" "${repo#*/}"
|
msg "repo: %s" "${repo#*/}"
|
||||||
|
|
||||||
archpath=$srcpath/$repo
|
archpath=$srcpath/$repo
|
||||||
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
|
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
|
||||||
|
|
||||||
show_deps "$archpath"
|
show_deps "$archpath"
|
||||||
|
|
||||||
@@ -234,7 +232,7 @@ from_arch(){
|
|||||||
patch_pkg "$artixpath"
|
patch_pkg "$artixpath"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
die "Package '%s' does not exist!" "${PACKAGE}"
|
die "Package '%s' does not exist!" "${package}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,8 +240,8 @@ from_arch(){
|
|||||||
|
|
||||||
view_build(){
|
view_build(){
|
||||||
local archpath repo
|
local archpath repo
|
||||||
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
|
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
|
||||||
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
|
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
|
||||||
repo=$(find_repo "${archpath}")
|
repo=$(find_repo "${archpath}")
|
||||||
archpath=$archpath/$repo
|
archpath=$archpath/$repo
|
||||||
msg "repo: %s" "${repo#*/}"
|
msg "repo: %s" "${repo#*/}"
|
||||||
@@ -252,9 +250,9 @@ view_build(){
|
|||||||
|
|
||||||
check_tree(){
|
check_tree(){
|
||||||
local archpath artixpath group
|
local archpath artixpath group
|
||||||
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
|
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
|
||||||
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
|
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
|
||||||
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
|
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
|
||||||
group=${artixpath%/*}
|
group=${artixpath%/*}
|
||||||
msg "group: %s" "${group##*/}"
|
msg "group: %s" "${group##*/}"
|
||||||
|
|
||||||
@@ -269,6 +267,8 @@ sync_repos(){
|
|||||||
|
|
||||||
load_makepkg_config
|
load_makepkg_config
|
||||||
|
|
||||||
|
load_valid_names
|
||||||
|
|
||||||
testing=true
|
testing=true
|
||||||
staging=true
|
staging=true
|
||||||
unstable=false
|
unstable=false
|
||||||
@@ -282,22 +282,21 @@ createnew=false
|
|||||||
sync_group=false
|
sync_group=false
|
||||||
check=false
|
check=false
|
||||||
|
|
||||||
PACKAGE=''
|
package=''
|
||||||
|
|
||||||
TEAM='community'
|
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'
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: ${0##*/} [options]"
|
echo "Usage: ${0##*/} [options]"
|
||||||
echo ' -p <pkg> Package name'
|
echo ' -p <pkg> Package name'
|
||||||
echo ' -t <team> Team name (only with -n)'
|
echo ' -t <team> Team name (only with -n)'
|
||||||
echo ' Possible values: core,extra,community,multilib'
|
echo ' Possible values: core,extra,community,multilib'
|
||||||
echo " [default: ${TEAM}]"
|
echo " [default: ${team}]"
|
||||||
echo ' -g <group> Group name, the superrepo (only with -n or -s)'
|
echo ' -g <group> Group name, the superrepo (only with -n or -s)'
|
||||||
echo " [default: ${GROUP}]"
|
echo " [default: ${group}]"
|
||||||
echo " -s Clone or pull repos"
|
echo " -s Clone or pull repos"
|
||||||
echo " -a Don't clone or pull arch repos"
|
echo " -a Don't clone or pull arch repos"
|
||||||
echo " -b Don't clone or pull artix repos"
|
echo " -b Don't clone or pull artix repos"
|
||||||
@@ -318,9 +317,9 @@ opts='p:t:g:sinabcvxyzh'
|
|||||||
|
|
||||||
while getopts "${opts}" arg; do
|
while getopts "${opts}" arg; do
|
||||||
case "${arg}" in
|
case "${arg}" in
|
||||||
p) PACKAGE="$OPTARG" ;;
|
p) package="$OPTARG" ;;
|
||||||
t) TEAM="$OPTARG" ;;
|
t) team="$OPTARG" ;;
|
||||||
g) GROUP="$OPTARG"; sync_group=true ;;
|
g) group="$OPTARG"; sync_group=true ;;
|
||||||
s) sync=true ;;
|
s) sync=true ;;
|
||||||
a) sync_arch=false ;;
|
a) sync_arch=false ;;
|
||||||
b) sync_artix=false ;;
|
b) sync_artix=false ;;
|
||||||
|
188
bin/pkg/checkrepo.in
Normal file
188
bin/pkg/checkrepo.in
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
#!/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)
|
||||||
|
|
||||||
|
#{{{ sogrep
|
||||||
|
|
||||||
|
query_db() {
|
||||||
|
for repo in "${searchrepos[@]}"; do
|
||||||
|
local db
|
||||||
|
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]}" entry
|
||||||
|
entry=${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname
|
||||||
|
|
||||||
|
if [[ -d "$entry" ]];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_upgrade "${tableU}" "$repo" "$name" "$artixver" "false"
|
||||||
|
else
|
||||||
|
${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true"
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
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}"
|
||||||
|
|
||||||
|
load_makepkg_config
|
||||||
|
|
||||||
|
sync=false
|
||||||
|
check=false
|
||||||
|
query=false
|
||||||
|
all_db=false
|
||||||
|
|
||||||
|
readonly tableU="%-20s %-35s %-30s %-10s"
|
||||||
|
readonly tableQ="%-20s %-45s %s"
|
||||||
|
|
||||||
|
load_valid_names
|
||||||
|
|
||||||
|
#{{{ 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 ' -a Show repo db (-c)'
|
||||||
|
echo " -q Query repo databases for so libs"
|
||||||
|
echo ' -h This help'
|
||||||
|
echo ''
|
||||||
|
echo ''
|
||||||
|
exit "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
opts='r:qcsah'
|
||||||
|
|
||||||
|
while getopts "${opts}" arg; do
|
||||||
|
case "${arg}" in
|
||||||
|
r) searchrepos=("$OPTARG") ;;
|
||||||
|
s) sync=true ;;
|
||||||
|
c) check=true ;;
|
||||||
|
a) all_db=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
|
@@ -65,47 +65,47 @@ prepare_commit(){
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then
|
if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then
|
||||||
[[ -d "$CARCH/${REPO_DEST}" ]] && git rm -r "$CARCH/${REPO_DEST}"
|
[[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}"
|
||||||
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
|
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
|
||||||
[[ ! -d "$CARCH/${REPO_DEST}" ]] && mkdir "$CARCH/${REPO_DEST}"
|
[[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_rebuild(){
|
check_rebuild(){
|
||||||
if [[ -d "$CARCH"/"${valid_names[10]}" ]] \
|
if [[ -d "$CARCH"/"${valid_names[10]}" ]] \
|
||||||
&& [[ "${REPO_DEST}" == "${valid_names[7]}" ]]; then
|
&& [[ "${repo_dest}" == "${valid_names[7]}" ]]; then
|
||||||
git rm -r "$CARCH"/"${valid_names[10]}"
|
git rm -r "$CARCH"/"${valid_names[10]}"
|
||||||
git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}"
|
git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}"
|
||||||
elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \
|
elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \
|
||||||
&& [[ "${REPO_DEST}" == "${valid_names[10]}" ]]; then
|
&& [[ "${repo_dest}" == "${valid_names[10]}" ]]; then
|
||||||
git rm -r "$CARCH"/"${valid_names[7]}"
|
git rm -r "$CARCH"/"${valid_names[7]}"
|
||||||
git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}"
|
git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_team(){
|
check_team(){
|
||||||
if [[ "${REPO_SRC}" == "${valid_names[0]}" \
|
if [[ "${repo_src}" == "${valid_names[0]}" \
|
||||||
&& "${REPO_DEST}" == "${valid_names[1]}" ]] || \
|
&& "${repo_dest}" == "${valid_names[1]}" ]] || \
|
||||||
[[ "${REPO_SRC}" == "${valid_names[1]}" \
|
[[ "${repo_src}" == "${valid_names[1]}" \
|
||||||
&& "${REPO_DEST}" == "${valid_names[0]}" ]] || \
|
&& "${repo_dest}" == "${valid_names[0]}" ]] || \
|
||||||
[[ "${REPO_SRC}" == "${valid_names[1]}" \
|
[[ "${repo_src}" == "${valid_names[1]}" \
|
||||||
&& "${REPO_DEST}" == "${valid_names[2]}" ]] || \
|
&& "${repo_dest}" == "${valid_names[2]}" ]] || \
|
||||||
[[ "${REPO_SRC}" == "${valid_names[2]}" \
|
[[ "${repo_src}" == "${valid_names[2]}" \
|
||||||
&& "${REPO_DEST}" == "${valid_names[1]}" ]] ;then
|
&& "${repo_dest}" == "${valid_names[1]}" ]] ;then
|
||||||
|
|
||||||
local org
|
local org
|
||||||
org=$(get_pkg_org "${PACKAGE}")
|
org=$(get_pkg_org "${package}")
|
||||||
add_repo_to_team "${PACKAGE}" "$org" "${REPO_DEST}"
|
add_repo_to_team "${package}" "$org" "${repo_dest}"
|
||||||
remove_repo_from_team "${PACKAGE}" "$org" "${REPO_SRC}"
|
remove_repo_from_team "${package}" "$org" "${repo_src}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
path_config() {
|
path_config() {
|
||||||
[[ "${REPO_SRC}" != 'trunk' ]] && pkgbuild="$CARCH/${REPO_SRC}"/PKGBUILD
|
[[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD
|
||||||
|
|
||||||
if [[ ! -f "$pkgbuild" ]]; then
|
if [[ ! -f "$pkgbuild" ]]; then
|
||||||
pkgbuild=repos/"${REPO_SRC}-${CARCH}"/PKGBUILD
|
pkgbuild=repos/"${repo_src}-${CARCH}"/PKGBUILD
|
||||||
[[ -f repos/"${REPO_SRC}"-any/PKGBUILD ]] && pkgbuild=repos/"${REPO_SRC}"-any/PKGBUILD
|
[[ -f repos/"${repo_src}"-any/PKGBUILD ]] && pkgbuild=repos/"${repo_src}"-any/PKGBUILD
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck disable=1090
|
# shellcheck disable=1090
|
||||||
@@ -116,21 +116,21 @@ commit_pkg() {
|
|||||||
local commit_msg pkg
|
local commit_msg pkg
|
||||||
if ${remove};then
|
if ${remove};then
|
||||||
action='remove'
|
action='remove'
|
||||||
if [[ "${REPO_SRC}" == 'trunk' ]];then
|
if [[ "${repo_src}" == 'trunk' ]];then
|
||||||
pkg=${PACKAGE}
|
pkg=${package}
|
||||||
git rm -r trunk
|
git rm -r trunk
|
||||||
else
|
else
|
||||||
pkg="${PACKAGE}-$(get_full_version)"
|
pkg="${package}-$(get_full_version)"
|
||||||
|
|
||||||
prepare_commit
|
prepare_commit
|
||||||
|
|
||||||
git rm -r "$CARCH/${REPO_SRC}"
|
git rm -r "$CARCH/${repo_src}"
|
||||||
fi
|
fi
|
||||||
commit_msg="[${REPO_SRC}] '$pkg' ${action}"
|
commit_msg="[${repo_src}] '$pkg' ${action}"
|
||||||
msg "Action: %s" "$commit_msg"
|
msg "Action: %s" "$commit_msg"
|
||||||
else
|
else
|
||||||
action='modify'
|
action='modify'
|
||||||
commit_msg="[${REPO_SRC}] '${PACKAGE}-$(get_full_version)' ${action}"
|
commit_msg="[${repo_src}] '${package}-$(get_full_version)' ${action}"
|
||||||
msg "Action: %s" "$commit_msg"
|
msg "Action: %s" "$commit_msg"
|
||||||
git add .
|
git add .
|
||||||
fi
|
fi
|
||||||
@@ -139,23 +139,23 @@ commit_pkg() {
|
|||||||
|
|
||||||
repo_commit_pkg() {
|
repo_commit_pkg() {
|
||||||
local commit_msg
|
local commit_msg
|
||||||
if [[ "${REPO_SRC}" == 'trunk' ]];then
|
if [[ "${repo_src}" == 'trunk' ]];then
|
||||||
action='add'
|
action='add'
|
||||||
|
|
||||||
prepare_commit
|
prepare_commit
|
||||||
check_rebuild
|
check_rebuild
|
||||||
|
|
||||||
cp trunk/* "$CARCH/${REPO_DEST}"/
|
cp trunk/* "$CARCH/${repo_dest}"/
|
||||||
else
|
else
|
||||||
action='move'
|
action='move'
|
||||||
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
|
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
|
||||||
|
|
||||||
prepare_commit
|
prepare_commit
|
||||||
|
|
||||||
cp "$CARCH/${REPO_SRC}"/* "$CARCH/${REPO_DEST}"/
|
cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/
|
||||||
git rm -r "$CARCH/${REPO_SRC}"
|
git rm -r "$CARCH/${repo_src}"
|
||||||
fi
|
fi
|
||||||
commit_msg="[${REPO_SRC}] -> [${REPO_DEST}] '${PACKAGE}-$(get_full_version)' ${action}"
|
commit_msg="[${repo_src}] -> [${repo_dest}] '${package}-$(get_full_version)' ${action}"
|
||||||
msg "Action: %s" "$commit_msg"
|
msg "Action: %s" "$commit_msg"
|
||||||
|
|
||||||
git add .
|
git add .
|
||||||
@@ -164,7 +164,7 @@ repo_commit_pkg() {
|
|||||||
|
|
||||||
run(){
|
run(){
|
||||||
local artixpath head group
|
local artixpath head group
|
||||||
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
|
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
|
||||||
if [[ -n ${artixpath} ]];then
|
if [[ -n ${artixpath} ]];then
|
||||||
group=${artixpath%/*}
|
group=${artixpath%/*}
|
||||||
cd "${group}" || return
|
cd "${group}" || return
|
||||||
@@ -183,9 +183,9 @@ run(){
|
|||||||
cd "${group}" || return
|
cd "${group}" || return
|
||||||
|
|
||||||
${push} && pull_tree "${group##*/}" "$head"
|
${push} && pull_tree "${group##*/}" "$head"
|
||||||
# subrepo_pull "${PACKAGE}"
|
# subrepo_pull "${package}"
|
||||||
subrepo_push "${PACKAGE}"
|
subrepo_push "${package}"
|
||||||
subrepo_clean "${PACKAGE}"
|
subrepo_clean "${package}"
|
||||||
|
|
||||||
${push} && push_tree "${group##*/}"
|
${push} && push_tree "${group##*/}"
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ run(){
|
|||||||
|
|
||||||
[[ "${cmd}" != 'commitpkg' ]] && check_team
|
[[ "${cmd}" != 'commitpkg' ]] && check_team
|
||||||
else
|
else
|
||||||
die "Package '%s' does not exist!" "${PACKAGE}"
|
die "Package '%s' does not exist!" "${package}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ is_valid_repo(){
|
|||||||
for repo in "${valid_names[@]}"; do
|
for repo in "${valid_names[@]}"; do
|
||||||
_valid=${repo:-}${repo:+|}$_valid
|
_valid=${repo:-}${repo:+|}$_valid
|
||||||
done
|
done
|
||||||
eval "case ${REPO_SRC} in
|
eval "case ${repo_src} in
|
||||||
${_valid}) return 0 ;;
|
${_valid}) return 0 ;;
|
||||||
*) return 1 ;;
|
*) return 1 ;;
|
||||||
esac"
|
esac"
|
||||||
@@ -212,19 +212,21 @@ is_valid_repo(){
|
|||||||
|
|
||||||
load_makepkg_config
|
load_makepkg_config
|
||||||
|
|
||||||
REPO_SRC='trunk'
|
load_valid_names
|
||||||
PACKAGE=''
|
|
||||||
|
repo_src='trunk'
|
||||||
|
package=''
|
||||||
remove=false
|
remove=false
|
||||||
push=false
|
push=false
|
||||||
|
|
||||||
pkgbuild=trunk/PKGBUILD
|
pkgbuild=trunk/PKGBUILD
|
||||||
|
|
||||||
cmd=${0##*/}
|
cmd=${0##*/}
|
||||||
REPO_DEST=${cmd%pkg}
|
repo_dest=${cmd%pkg}
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: ${0##*/} [options]"
|
echo "Usage: ${0##*/} [options]"
|
||||||
echo " -s <name> Source repository [default:${REPO_SRC}]"
|
echo " -s <name> Source repository [default:${repo_src}]"
|
||||||
echo ' -p <pkg> Package name'
|
echo ' -p <pkg> Package name'
|
||||||
echo ' -r Delete from repo (commitpkg only)'
|
echo ' -r Delete from repo (commitpkg only)'
|
||||||
echo ' -u Push'
|
echo ' -u Push'
|
||||||
@@ -238,8 +240,8 @@ opts='p:s:urh'
|
|||||||
|
|
||||||
while getopts "${opts}" arg; do
|
while getopts "${opts}" arg; do
|
||||||
case "${arg}" in
|
case "${arg}" in
|
||||||
s) REPO_SRC="$OPTARG" ;;
|
s) repo_src="$OPTARG" ;;
|
||||||
p) PACKAGE="$OPTARG" ;;
|
p) package="$OPTARG" ;;
|
||||||
r) remove=true ;;
|
r) remove=true ;;
|
||||||
u) push=true ;;
|
u) push=true ;;
|
||||||
h|?) usage 0 ;;
|
h|?) usage 0 ;;
|
||||||
@@ -249,10 +251,8 @@ done
|
|||||||
|
|
||||||
shift $(( OPTIND - 1 ))
|
shift $(( OPTIND - 1 ))
|
||||||
|
|
||||||
set_arch_repos "false" "false" "false"
|
|
||||||
|
|
||||||
if is_valid_repo;then
|
if is_valid_repo;then
|
||||||
run
|
run
|
||||||
else
|
else
|
||||||
die "source repository '%s' is not valid!" "${REPO_SRC}"
|
die "source repository '%s' is not valid!" "${repo_src}"
|
||||||
fi
|
fi
|
||||||
|
@@ -16,70 +16,42 @@ 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")
|
|
||||||
case ${artixrepo} in
|
case ${artixrepo} in
|
||||||
*testing*|*staging*|*rebuild)
|
*testing*|*staging*|*rebuild)
|
||||||
if [[ "${a}" == "${b}" ]] || [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then
|
if [[ "${a}" == "${b}" ]] || [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then
|
||||||
msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||||
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
|
[[ -n "$archrepo" ]] && write_list "${a}:${b}:$pkg" pkg_moves
|
||||||
printf "%s\n" "${a}:${b}:$pkg" >> "${TREE_DIR_ARTIX}"/pkg_moves.list
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
compare_u(){
|
compare_u(){
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
||||||
compare_d(){
|
compare_d(){
|
||||||
result=$(vercmp "$artixver" "$archver")
|
|
||||||
if [ "$result" -eq 1 ];then
|
if [ "$result" -eq 1 ];then
|
||||||
if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then
|
if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then
|
||||||
msg_row_downgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
msg_row_downgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||||
@@ -97,12 +69,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
|
||||||
|
|
||||||
@@ -125,9 +97,11 @@ pre_compare(){
|
|||||||
archver=$(get_full_version)
|
archver=$(get_full_version)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
result=$(vercmp "$artixver" "$archver")
|
||||||
|
|
||||||
"$func"
|
"$func"
|
||||||
|
|
||||||
unset pkgver epoch pkgrel artixver archver pkgbuild archpath
|
unset epoch
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,24 +122,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,98 +139,14 @@ 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
|
||||||
|
|
||||||
|
load_valid_names
|
||||||
|
|
||||||
testing=true
|
testing=true
|
||||||
staging=true
|
staging=true
|
||||||
unstable=false
|
unstable=false
|
||||||
@@ -276,13 +155,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 +165,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 +188,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
|
|
||||||
|
@@ -17,7 +17,7 @@ m4_include(lib/util-pkg.sh)
|
|||||||
m4_include(lib/base/message.sh)
|
m4_include(lib/base/message.sh)
|
||||||
m4_include(lib/pkg/deploy.sh)
|
m4_include(lib/pkg/deploy.sh)
|
||||||
|
|
||||||
#{{{ functions
|
#{{{ deploy
|
||||||
|
|
||||||
add(){
|
add(){
|
||||||
if pkgfile=$(find_cached_pkgfile "${pkgname}"); then
|
if pkgfile=$(find_cached_pkgfile "${pkgname}"); then
|
||||||
@@ -29,9 +29,9 @@ add(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
remove(){
|
remove(){
|
||||||
packages+=("$pkgname")
|
packages+=("$(get_pkgbasename "${pkgname}")")
|
||||||
action='remove'
|
action='remove'
|
||||||
rm -v "$repo_path"/"$pkgname"*.pkg.tar.*
|
rm -v "$repo_path"/"${pkgname}"{,.sig}
|
||||||
}
|
}
|
||||||
|
|
||||||
repo_action(){
|
repo_action(){
|
||||||
|
@@ -232,8 +232,9 @@ db_write_entry() {
|
|||||||
msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}"
|
msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}"
|
||||||
|
|
||||||
local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME}
|
local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME}
|
||||||
|
local files=$(find "$tmppkg" -type f ! -ipath "*/Documentation/*")
|
||||||
|
|
||||||
for f in $(find "$tmppkg" -type f); do
|
for f in ${files}; do
|
||||||
readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p'
|
readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p'
|
||||||
done | sort -u > "$linksentry"
|
done | sort -u > "$linksentry"
|
||||||
|
|
||||||
|
@@ -32,7 +32,6 @@ clean_first=0
|
|||||||
run_namcap=0
|
run_namcap=0
|
||||||
run_checkpkg=0
|
run_checkpkg=0
|
||||||
temp_chroot=0
|
temp_chroot=0
|
||||||
run_nocheck=0
|
|
||||||
|
|
||||||
bindmounts=()
|
bindmounts=()
|
||||||
|
|
||||||
@@ -290,7 +289,7 @@ while getopts "${opts}" arg; do
|
|||||||
I) install_pkgs+=("$OPTARG") ;;
|
I) install_pkgs+=("$OPTARG") ;;
|
||||||
l) copy="$OPTARG" ;;
|
l) copy="$OPTARG" ;;
|
||||||
n) run_namcap=1; makepkg_args+=(--install) ;;
|
n) run_namcap=1; makepkg_args+=(--install) ;;
|
||||||
N) run_nocheck=1; makepkg_args+=(--nocheck) ;;
|
N) makepkg_args+=(--nocheck) ;;
|
||||||
C) run_checkpkg=1 ;;
|
C) run_checkpkg=1 ;;
|
||||||
T) temp_chroot=1; copy+="-$$" ;;
|
T) temp_chroot=1; copy+="-$$" ;;
|
||||||
U) makepkg_user="$OPTARG" ;;
|
U) makepkg_user="$OPTARG" ;;
|
||||||
|
@@ -152,10 +152,10 @@ shift $(( OPTIND - 1 ))
|
|||||||
srcpath=$(readlink -f "$1")
|
srcpath=$(readlink -f "$1")
|
||||||
|
|
||||||
[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath"
|
[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath"
|
||||||
PACKAGE="$srcpath"/PKGBUILD; shift
|
package="$srcpath"/PKGBUILD; shift
|
||||||
|
|
||||||
# shellcheck disable=1090
|
# shellcheck disable=1090
|
||||||
. "$PACKAGE"
|
. "${package}"
|
||||||
|
|
||||||
load_makepkg_config
|
load_makepkg_config
|
||||||
|
|
||||||
|
@@ -6,4 +6,4 @@
|
|||||||
# CHROOTS_DIR=/var/lib/artools
|
# CHROOTS_DIR=/var/lib/artools
|
||||||
|
|
||||||
# the workspace directory
|
# the workspace directory
|
||||||
# WORKSPACE_DIR="/home/${USER}/artools-workspace"
|
# WORKSPACE_DIR="${USER_HOME}/artools-workspace"
|
||||||
|
@@ -36,5 +36,11 @@
|
|||||||
# 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"
|
||||||
|
|
||||||
|
# enable if trouble with default github arch mirror
|
||||||
|
# ARCH_TREE=(packages community)
|
||||||
|
|
||||||
|
# enable if trouble with default github arch mirror
|
||||||
|
# HOST_TREE_ARCH='https://git.archlinux.org/svntogit'
|
||||||
|
@@ -36,7 +36,7 @@ goblins=(
|
|||||||
"${valid_names[10]}"
|
"${valid_names[10]}"
|
||||||
)
|
)
|
||||||
|
|
||||||
unstable=(
|
wobble=(
|
||||||
"${valid_names[11]}"
|
"${valid_names[11]}"
|
||||||
"${valid_names[12]}"
|
"${valid_names[12]}"
|
||||||
)
|
)
|
||||||
|
3
lib/base/chroot-version.sh
Normal file
3
lib/base/chroot-version.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/hint/bash
|
||||||
|
|
||||||
|
CHROOTVERSION=0.10
|
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
#{{{ chroot
|
#{{{ chroot
|
||||||
|
|
||||||
CHROOTVERSION=0.10
|
|
||||||
|
|
||||||
orig_argv=("$0" "$@")
|
orig_argv=("$0" "$@")
|
||||||
check_root() {
|
check_root() {
|
||||||
local keepenv="$1"
|
local keepenv="$1"
|
||||||
|
@@ -14,15 +14,10 @@ shopt -s extglob
|
|||||||
if [[ -t 2 && "$TERM" != dumb ]]; then
|
if [[ -t 2 && "$TERM" != dumb ]]; then
|
||||||
colorize
|
colorize
|
||||||
else
|
else
|
||||||
|
# shellcheck disable=2034
|
||||||
declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW=''
|
declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW=''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
info() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
# shellcheck disable=2059
|
|
||||||
printf "${YELLOW} -->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
stat_busy() {
|
stat_busy() {
|
||||||
local mesg=$1; shift
|
local mesg=$1; shift
|
||||||
# shellcheck disable=2059
|
# shellcheck disable=2059
|
||||||
|
@@ -13,7 +13,7 @@ trap_setup(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
chroot_mount() {
|
chroot_mount() {
|
||||||
# info "mount: [%s]" "$2"
|
# msg2 "mount: [%s]" "$2"
|
||||||
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
|
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ chroot_api_mount() {
|
|||||||
|
|
||||||
chroot_api_umount() {
|
chroot_api_umount() {
|
||||||
if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
|
if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
|
||||||
# info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
|
# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||||
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
|
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||||
fi
|
fi
|
||||||
unset CHROOT_ACTIVE_MOUNTS
|
unset CHROOT_ACTIVE_MOUNTS
|
||||||
|
@@ -85,7 +85,7 @@ write_unpackfs() {
|
|||||||
configure_calamares(){
|
configure_calamares(){
|
||||||
local mods="$1/etc/calamares/modules"
|
local mods="$1/etc/calamares/modules"
|
||||||
if [[ -d "$mods" ]];then
|
if [[ -d "$mods" ]];then
|
||||||
msg2 "Configuring Calamares"
|
msg2 "Configuring: Calamares"
|
||||||
write_users_conf > "$mods"/users.conf
|
write_users_conf > "$mods"/users.conf
|
||||||
write_services_"${INITSYS}"_conf "$mods"
|
write_services_"${INITSYS}"_conf "$mods"
|
||||||
write_postcfg > "$mods"/postcfg.conf
|
write_postcfg > "$mods"/postcfg.conf
|
||||||
|
@@ -7,9 +7,9 @@ configure_hosts(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
configure_logind(){
|
configure_logind(){
|
||||||
local conf=$1/etc/"$2"/logind.conf
|
local conf=$1/etc/elogind/logind.conf
|
||||||
if [[ -e "$conf" ]];then
|
if [[ -e "$conf" ]];then
|
||||||
msg2 "Configuring logind ..."
|
msg2 "Configuring: logind"
|
||||||
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' "$conf"
|
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' "$conf"
|
||||||
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' "$conf"
|
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' "$conf"
|
||||||
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' "$conf"
|
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' "$conf"
|
||||||
@@ -18,14 +18,12 @@ configure_logind(){
|
|||||||
|
|
||||||
configure_services(){
|
configure_services(){
|
||||||
local mnt="$1"
|
local mnt="$1"
|
||||||
info "Configuring [%s] services" "${INITSYS}"
|
|
||||||
add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]} ${SERVICES_LIVE[*]}"
|
add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]} ${SERVICES_LIVE[*]}"
|
||||||
info "Done configuring [%s] services" "${INITSYS}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
configure_system(){
|
configure_system(){
|
||||||
local mnt="$1"
|
local mnt="$1"
|
||||||
configure_logind "$mnt" "elogind"
|
configure_logind "$mnt"
|
||||||
echo "${HOST_NAME}" > "$mnt"/etc/hostname
|
echo "${HOST_NAME}" > "$mnt"/etc/hostname
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,7 +45,7 @@ configure_chroot(){
|
|||||||
configure_services "$fs"
|
configure_services "$fs"
|
||||||
configure_calamares "$fs"
|
configure_calamares "$fs"
|
||||||
[[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools"
|
[[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools"
|
||||||
msg2 "Writing live.conf"
|
msg2 "Writing: live.conf"
|
||||||
write_live_session_conf > "$fs/etc/artools/live.conf"
|
write_live_session_conf > "$fs/etc/artools/live.conf"
|
||||||
msg "Done configuring [%s]" "${fs##*/}"
|
msg "Done configuring [%s]" "${fs##*/}"
|
||||||
}
|
}
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
#{{{ mount
|
#{{{ mount
|
||||||
|
|
||||||
track_img() {
|
track_img() {
|
||||||
info "mount: [%s]" "$2"
|
msg2 "mount: [%s]" "$2"
|
||||||
mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}")
|
mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ mount_img() {
|
|||||||
|
|
||||||
umount_img() {
|
umount_img() {
|
||||||
if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then
|
if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then
|
||||||
info "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}"
|
msg2 "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}"
|
||||||
umount "${IMG_ACTIVE_MOUNTS[@]}"
|
umount "${IMG_ACTIVE_MOUNTS[@]}"
|
||||||
unset IMG_ACTIVE_MOUNTS
|
unset IMG_ACTIVE_MOUNTS
|
||||||
rm -r "$1"
|
rm -r "$1"
|
||||||
@@ -23,7 +23,7 @@ umount_img() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
track_fs() {
|
track_fs() {
|
||||||
info "overlayfs mount: [%s]" "$5"
|
msg2 "overlayfs mount: [%s]" "$5"
|
||||||
mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}")
|
mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ mount_overlayfs(){
|
|||||||
|
|
||||||
umount_overlayfs(){
|
umount_overlayfs(){
|
||||||
if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then
|
if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then
|
||||||
info "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}"
|
msg2 "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}"
|
||||||
umount "${FS_ACTIVE_MOUNTS[@]}"
|
umount "${FS_ACTIVE_MOUNTS[@]}"
|
||||||
unset FS_ACTIVE_MOUNTS
|
unset FS_ACTIVE_MOUNTS
|
||||||
rm -rf "${mnt_dir}/work"
|
rm -rf "${mnt_dir}/work"
|
||||||
|
@@ -59,9 +59,9 @@ load_profile(){
|
|||||||
|
|
||||||
load_pkgs(){
|
load_pkgs(){
|
||||||
local pkglist="$1" init="$2"
|
local pkglist="$1" init="$2"
|
||||||
info "Loading Packages: [%s] ..." "${pkglist##*/}"
|
msg2 "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" ;;
|
||||||
|
@@ -13,7 +13,7 @@ add_svc_openrc(){
|
|||||||
local mnt="$1" names="$2" rlvl="${3:-default}"
|
local mnt="$1" names="$2" rlvl="${3:-default}"
|
||||||
for svc in $names; do
|
for svc in $names; do
|
||||||
if [[ -f $mnt/etc/init.d/$svc ]];then
|
if [[ -f $mnt/etc/init.d/$svc ]];then
|
||||||
msg2 "Setting %s ..." "$svc"
|
msg2 "Setting [%s]: %s" "${INITSYS}" "$svc"
|
||||||
[[ $svc == "xdm" ]] && set_xdm "$mnt"
|
[[ $svc == "xdm" ]] && set_xdm "$mnt"
|
||||||
chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null
|
chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null
|
||||||
fi
|
fi
|
||||||
@@ -24,7 +24,7 @@ add_svc_runit(){
|
|||||||
local mnt="$1" names="$2" rlvl="${3:-default}"
|
local mnt="$1" names="$2" rlvl="${3:-default}"
|
||||||
for svc in $names; do
|
for svc in $names; do
|
||||||
if [[ -d $mnt/etc/runit/sv/$svc ]]; then
|
if [[ -d $mnt/etc/runit/sv/$svc ]]; then
|
||||||
msg2 "Setting %s ..." "$svc"
|
msg2 "Setting [%s]: %s" "${INITSYS}" "$svc"
|
||||||
chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null
|
chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -37,7 +37,7 @@ add_svc_s6(){
|
|||||||
chroot "$mnt" s6-rc-db -c /etc/s6/rc/compiled type "$svc" &> /dev/null || error=true
|
chroot "$mnt" s6-rc-db -c /etc/s6/rc/compiled type "$svc" &> /dev/null || error=true
|
||||||
ret="$?"
|
ret="$?"
|
||||||
if [ $ret -eq 0 ] && [[ "$error" == false ]]; then
|
if [ $ret -eq 0 ] && [[ "$error" == false ]]; then
|
||||||
msg2 "Setting %s ..." "$svc"
|
msg2 "Setting [%s]: %s" "${INITSYS}" "$svc"
|
||||||
chroot "$mnt" s6-rc-bundle-update -c /etc/s6/rc/compiled add "$rlvl" "$svc"
|
chroot "$mnt" s6-rc-bundle-update -c /etc/s6/rc/compiled add "$rlvl" "$svc"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/hint/bash
|
#!/hint/bash
|
||||||
|
|
||||||
#{{{ deploy
|
#{{{ functions
|
||||||
|
|
||||||
find_cached_pkgfile() {
|
find_cached_pkgfile() {
|
||||||
local searchdirs=("$PKGDEST" "$PWD") results=()
|
local searchdirs=("$PKGDEST" "$PWD") results=()
|
||||||
@@ -25,4 +25,13 @@ find_cached_pkgfile() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_pkgbasename() {
|
||||||
|
local name="$1"
|
||||||
|
local rm_pkg=${name%.pkg.tar*}
|
||||||
|
rm_pkg=${rm_pkg%-*}
|
||||||
|
rm_pkg=${rm_pkg%-*}
|
||||||
|
rm_pkg=${rm_pkg%-*}
|
||||||
|
echo "$rm_pkg"
|
||||||
|
}
|
||||||
|
|
||||||
#}}}
|
#}}}
|
||||||
|
@@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
#{{{ git
|
#{{{ git
|
||||||
|
|
||||||
|
get_compliant_name(){
|
||||||
|
local gitname="$1"
|
||||||
|
case "$gitname" in
|
||||||
|
*+) gitname=${gitname//+/plus}
|
||||||
|
esac
|
||||||
|
echo "$gitname"
|
||||||
|
}
|
||||||
|
|
||||||
get_pkg_org(){
|
get_pkg_org(){
|
||||||
local pkg="$1" org sub
|
local pkg="$1" org sub
|
||||||
case ${pkg} in
|
case ${pkg} in
|
||||||
|
@@ -4,20 +4,26 @@
|
|||||||
|
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
|
load_valid_names(){
|
||||||
|
local conf
|
||||||
|
conf="${DATADIR}"/valid-names.conf
|
||||||
|
[[ -f "$conf" ]] || return 1
|
||||||
|
# shellcheck source=/usr/share/artools/valid-names.conf
|
||||||
|
[[ -r "$conf" ]] && . "$conf"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
set_arch_repos(){
|
set_arch_repos(){
|
||||||
local x="$1" y="$2" z="$3"
|
local _testing="$1" _staging="$2" _unstable="$3"
|
||||||
# shellcheck disable=1090
|
[[ -z ${valid_names[*]} ]] && load_valid_names
|
||||||
. "${DATADIR}"/valid-names.conf
|
|
||||||
|
|
||||||
ARCH_REPOS=("${stable[@]}")
|
ARCH_REPOS=("${stable[@]}")
|
||||||
|
$_testing && ARCH_REPOS+=("${gremlins[@]}")
|
||||||
$x && ARCH_REPOS+=("${gremlins[@]}")
|
$_staging && ARCH_REPOS+=("${goblins[@]}")
|
||||||
$y && ARCH_REPOS+=("${goblins[@]}")
|
$_unstable && ARCH_REPOS+=("${wobble[@]}")
|
||||||
$z && ARCH_REPOS+=("${unstable[@]}")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
find_repo(){
|
find_repo(){
|
||||||
local pkg="$1" repo pkgarch="${2:-${CARCH}}"
|
local pkg="$1" pkgarch="${2:-${CARCH}}" repo
|
||||||
for r in "${ARCH_REPOS[@]}"; do
|
for r in "${ARCH_REPOS[@]}"; do
|
||||||
[[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch"
|
[[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch"
|
||||||
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any
|
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any
|
||||||
@@ -27,10 +33,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
|
||||||
|
}
|
||||||
|
|
||||||
|
#}}}
|
@@ -23,12 +23,12 @@ load_base_config(){
|
|||||||
|
|
||||||
[[ -f "$conf" ]] || return 1
|
[[ -f "$conf" ]] || return 1
|
||||||
|
|
||||||
# shellcheck disable=1090
|
# shellcheck source=/etc/artools/artools-base.conf
|
||||||
[[ -r "$conf" ]] && . "$conf"
|
[[ -r "$conf" ]] && . "$conf"
|
||||||
|
|
||||||
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
|
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
|
||||||
|
|
||||||
WORKSPACE_DIR=${WORKSPACE_DIR:-"/home/${USER}/artools-workspace"}
|
WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,7 @@ load_iso_config(){
|
|||||||
|
|
||||||
[[ -f "$conf" ]] || return 1
|
[[ -f "$conf" ]] || return 1
|
||||||
|
|
||||||
# shellcheck disable=1090
|
# shellcheck source=/etc/artools/artools-iso.conf
|
||||||
[[ -r "$conf" ]] && . "$conf"
|
[[ -r "$conf" ]] && . "$conf"
|
||||||
|
|
||||||
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}
|
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}
|
||||||
|
@@ -8,14 +8,14 @@ load_pkg_config(){
|
|||||||
|
|
||||||
[[ -f "$conf" ]] || return 1
|
[[ -f "$conf" ]] || return 1
|
||||||
|
|
||||||
# shellcheck disable=1090
|
# shellcheck source=/etc/artools/artools-pkg.conf
|
||||||
[[ -r "$conf" ]] && . "$conf"
|
[[ -r "$conf" ]] && . "$conf"
|
||||||
|
|
||||||
local git_domain="gitea.artixlinux.org"
|
local git_domain="gitea.artixlinux.org"
|
||||||
|
|
||||||
GIT_URL="https://${git_domain}"
|
GIT_URL=${GIT_URL:-"https://${git_domain}"}
|
||||||
|
|
||||||
GIT_SSH="gitea@${git_domain}"
|
GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"}
|
||||||
|
|
||||||
GIT_TOKEN=${GIT_TOKEN:-''}
|
GIT_TOKEN=${GIT_TOKEN:-''}
|
||||||
|
|
||||||
@@ -26,7 +26,10 @@ load_pkg_config(){
|
|||||||
packages-{gfx,gtk,media,net,qt5,xorg}
|
packages-{gfx,gtk,media,net,qt5,xorg}
|
||||||
)
|
)
|
||||||
|
|
||||||
local dev_tree=(packages-{python,perl,java,ruby})
|
local dev_tree=(
|
||||||
|
packages-{python,perl,java,ruby}
|
||||||
|
python-{world,galaxy}
|
||||||
|
)
|
||||||
|
|
||||||
local init_tree=(packages-{openrc,runit,s6})
|
local init_tree=(packages-{openrc,runit,s6})
|
||||||
|
|
||||||
@@ -49,12 +52,15 @@ 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)
|
[[ -z ${ARCH_TREE[*]} ]] && \
|
||||||
|
ARCH_TREE=(svntogit-{packages,community})
|
||||||
|
|
||||||
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
|
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
|
||||||
|
|
||||||
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
|
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
|
||||||
|
|
||||||
|
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'}
|
||||||
|
|
||||||
DBEXT=${DBEXT:-'xz'}
|
DBEXT=${DBEXT:-'xz'}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
Reference in New Issue
Block a user