Compare commits

..

20 Commits

Author SHA1 Message Date
e612d2c6d2 artixpkg git: fix ci lib source
All checks were successful
Artools shellcheck / lint (push) Successful in 46s
2024-04-01 19:27:32 +02:00
2bed697813 Merge pull request 'repopkg: --include-sigs on add' (#123) from repopkg into master
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
Reviewed-on: #123
2024-04-01 14:47:19 +02:00
ba4ac669e7 repopkg: --include-sigs on add
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 33s
2024-04-01 14:45:20 +02:00
47babd20fd Merge pull request 'artixpkg: refactor ci into git sub cmd' (#122) from refactor-ci into master
All checks were successful
Artools shellcheck / lint (push) Successful in 34s
Reviewed-on: #122
2024-04-01 14:39:38 +02:00
d35422a74e artixpkg: refactor ci into git sub cmd
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 36s
2024-04-01 13:09:37 +02:00
94b8957494 artixpkg ci: remove redundant --switch opt
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
2024-03-31 12:22:06 +02:00
a0a485294c artixpkg ci: remove obsolete jobs opt
All checks were successful
Artools shellcheck / lint (push) Successful in 38s
2024-03-30 21:48:10 +01:00
7b67601e44 artixpkg ci: remove parallel agent config, leads to problems with gpg agents signing the commit
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
2024-03-30 21:37:58 +01:00
8db0c1ca39 artixpkg admin: fix maintainer parallel
All checks were successful
Artools shellcheck / lint (push) Successful in 41s
2024-03-27 10:12:14 +01:00
190340e375 artixpkg admin: fix maintainer usage example
All checks were successful
Artools shellcheck / lint (push) Successful in 45s
2024-03-27 00:45:44 +01:00
f7a61731ba agent-branches (#118)
All checks were successful
Artools shellcheck / lint (push) Successful in 38s
Reviewed-on: #118
2024-03-26 18:27:50 +01:00
e959ce10c3 artixpkg admin: fix maintainer parallel (#121)
All checks were successful
Artools shellcheck / lint (push) Successful in 35s
Reviewed-on: #121
2024-03-25 23:14:22 +01:00
d2bbf9d8c4 Merge pull request 'packagersign: fix signing' (#120) from psign into master
Some checks failed
Artools shellcheck / lint (push) Has been cancelled
Reviewed-on: #120
2024-03-25 23:13:48 +01:00
1dafa0fb38 packagersign: fix signing
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 52s
2024-03-25 22:50:11 +01:00
982a9ed678 artixpkg: fix ci usage
All checks were successful
Artools shellcheck / lint (push) Successful in 48s
2024-03-23 14:25:20 +01:00
19a6ff09f1 minor-fixes (#117)
All checks were successful
Artools shellcheck / lint (push) Successful in 46s
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Reviewed-on: #117
2024-03-22 23:03:09 +01:00
fac634cf14 Merge pull request 'artixpkg: add "admin maintainer" to bash completion' (#115) from corysanin/artools:completion-maintainer into master
All checks were successful
Artools shellcheck / lint (push) Successful in 43s
Reviewed-on: #115
Reviewed-by: artoo <artoo@artixlinux.org>
2024-03-22 21:09:03 +01:00
71ed464c33 artixpkg: add "admin maintainer" to bash completion 2024-03-22 14:54:58 -05:00
f7286a0661 artixpkg: remove --manual flag (#110)
All checks were successful
Artools shellcheck / lint (push) Successful in 47s
It is possible to autodetect whether or not a short name is being used.
Remove this flag to avoid breaking the interface.

Co-authored-by: artoo <artoo@artixlinux.org>
Reviewed-on: #110
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-committed-by: Dudemanguy <dudemanguy@artixlinux.org>
2024-03-22 20:45:27 +01:00
aee7c07a04 Artixpkg admin: maintainer (#114)
All checks were successful
Artools shellcheck / lint (push) Successful in 47s
Reviewed-on: #114
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-03-22 19:15:12 +01:00
20 changed files with 307 additions and 244 deletions

View File

@@ -35,3 +35,6 @@
# default archiving org
# GIT_ORG_ARCHIVE='landfill'
# default jenkins agents
# AGENTS=(orion taurus)

View File

@@ -25,9 +25,11 @@ _artixpkg_completion() {
comps=""
comps_all=""
comp_cword_exflag=0
comp_cword_all=0
for ((i = 0; i < ${#COMP_WORDS[@]} - 1; i++)); do
word="${COMP_WORDS[i]}"
comps_all+=" $word"
((comp_cword_all++))
if [[ $word != -* ]]; then
comps+=" $word"
((comp_cword_exflag++))
@@ -74,7 +76,7 @@ _artixpkg_completion() {
2)
case ${prev} in
admin)
COMPREPLY=($(compgen -W "query team topic transfer -h --help" -- ${cur}))
COMPREPLY=($(compgen -W "maintainer query team topic transfer -h --help" -- ${cur}))
;;
ci)
COMPREPLY=($(compgen -W "config -h --help" -- ${cur}))
@@ -96,14 +98,7 @@ _artixpkg_completion() {
local repoAddCommon="-p --push -r --rebuild -n --nocheck -h --help"
case "${comp_cword_exflag}" in
3)
case "${comps_all}" in
*-m*|*--manual*)
COMPREPLY=($(compgen -W "$repoAddCommon $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-m --manual $repoAddCommon $autorepos" -- ${cur}))
;;
esac
COMPREPLY=($(compgen -W "$repoAddCommon $autorepos $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "$repoAddCommon $(_artixpkg_pkgbase)" -- ${cur}))
@@ -113,14 +108,7 @@ _artixpkg_completion() {
"artixpkg repo remove"*)
case "${comp_cword_exflag}" in
3)
case "${comps_all}" in
*-m*|*--manual*)
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-m --manual -p --push -h --help $repos" -- ${cur}))
;;
esac
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-p --push -h --help $(_artixpkg_pkgbase)" -- ${cur}))
@@ -130,14 +118,7 @@ _artixpkg_completion() {
"artixpkg repo move"*)
case "${comp_cword_exflag}" in
3|4)
case "${comps_all}" in
*-m*|*--manual*)
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-m --manual -p --push -h --help $repos" -- ${cur}))
;;
esac
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-p --push -h --help $(_artixpkg_pkgbase)" -- ${cur}))
@@ -248,6 +229,16 @@ _artixpkg_completion() {
;;
esac
;;
"artixpkg admin maintainer"*)
case "${comp_cword_all}" in
3)
COMPREPLY=($(compgen -W "-a --adopt --o --orphan -h --help" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-h --help $(_artixpkg_pkgbase)" -- ${cur}))
;;
esac
;;
"artixpkg admin query"*)
case "${prev}" in
"-m"|"--maintainer"|"-t"|"--topic")

View File

@@ -17,6 +17,7 @@ artixpkg_admin_usage() {
Usage: ${COMMAND} [COMMAND] [OPTIONS]
COMMANDS
maintainer Manage repo maintainer
query Query maintainers and topics
team Manage repo team
topic Manage topics
@@ -27,8 +28,10 @@ artixpkg_admin_usage() {
EXAMPLES
$ ${COMMAND} transfer libfoo libbar
$ ${COMMAND} query --maintainer tux
$ ${COMMAND} query --topic kf5
$ ${COMMAND} query --topic mytopic
$ ${COMMAND} topic --add mytopic libfoo
$ ${COMMAND} team --add ${ARTIX_TEAMS[3]} libfoo
$ ${COMMAND} maintainer --adopt libfoo libbar
_EOF_
}
@@ -78,6 +81,14 @@ artixpkg_admin() {
artixpkg_admin_transfer "$@"
exit 0
;;
maintainer)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/admin/maintainer.sh
source "${LIBDIR}"/pkg/admin/maintainer.sh
artixpkg_admin_maintainer "$@"
exit 0
;;
-*)
die "invalid argument: %s" "$1"
;;

View File

@@ -0,0 +1,137 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_ADMIN_MAINTAINER_SH:-} ]] || return 0
ARTOOLS_INCLUDE_ADMIN_MAINTAINER_SH=1
# shellcheck source=src/lib/pkg/packager.sh
source "${LIBDIR}"/pkg/packager.sh
set -e
artixpkg_admin_maintainer_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
OPTIONS
-a, --adopt Adopt repo
-o, --orphan Orphan repo
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} --adopt libfoo
$ ${COMMAND} --orphan libfoo libbar
_EOF_
}
artixpkg_admin_maintainer() {
if (( $# < 1 )); then
artixpkg_admin_maintainer_usage
exit 0
fi
# options
local pkgbases=()
local pkgbase
local ADOPT=0
local ORPHAN=0
local packager_name
local maintainer
local -r orphan="orphan"
local RUNCMD=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
while (( $# )); do
case $1 in
-h|--help)
artixpkg_admin_maintainer_usage
exit 0
;;
-a|--adopt)
ADOPT=1
RUNCMD+=" $1"
shift
;;
-o|--orphan)
ORPHAN=1
RUNCMD+=" $1"
shift
;;
--)
shift
break
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
break
;;
esac
done
pkgbases+=("$@")
load_makepkg_config
if [[ -n ${PACKAGER} ]]; then
if ! packager_name=$(get_packager_name "${PACKAGER}") || \
! packager_email=$(get_packager_email "${PACKAGER}"); then
die "invalid PACKAGER format '${PACKAGER}' in makepkg.conf"
fi
if ! is_packager_name_valid "${packager_name}"; then
die "invalid PACKAGER '${PACKAGER}' in makepkg.conf"
fi
fi
maintainer="maintainer-${packager_name}"
if [[ -n ${GIT_TOKEN} ]]; then
# parallelization
if [[ ${jobs} != 1 ]] && (( ${#pkgbases[@]} > 1 )); then
# force colors in parallel if parent process is colorized
if [[ -n ${BOLD} ]]; then
export ARTOOLS_COLOR=always
fi
if ! parallel --bar --jobs "${jobs}" "${RUNCMD}" ::: "${pkgbases[@]}"; then
die 'Failed to manange some packages, please check the output'
exit 1
fi
exit 0
fi
for pkgbase in "${pkgbases[@]}"; do
local gitname
gitname=$(get_compliant_name "${pkgbase}")
if (( ADOPT )); then
if ! add_topic "${gitname}" "$maintainer"; then
warning "failed to add topic: $maintainer"
fi
if ! remove_topic "${gitname}" "$orphan"; then
warning "failed to remove topic: $orphan"
fi
fi
if (( ORPHAN )); then
if ! add_topic "${gitname}" "$orphan"; then
warning "failed to add topic: $orphan"
fi
if ! remove_topic "${gitname}" "$maintainer"; then
warning "failed to remove topic: $maintainer"
fi
fi
done
fi
}

View File

@@ -196,7 +196,6 @@ remove_all_topics() {
-H "Authorization: token ${GIT_TOKEN}" \
-d "$json"
stat_done
}
#}}}

View File

@@ -1,55 +0,0 @@
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_CI_SH:-} ]] || return 0
ARTOOLS_INCLUDE_CI_SH=1
set -e
artixpkg_ci_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [COMMAND] [OPTIONS]
COMMANDS
config Configure ci and build agent
OPTIONS
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} config libfoo
_EOF_
}
artixpkg_ci() {
if (( $# < 1 )); then
artixpkg_ci_usage
exit 0
fi
# option checking
while (( $# )); do
case $1 in
-h|--help)
artixpkg_ci_usage
exit 0
;;
config)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/ci/config.sh
source "${LIBDIR}"/pkg/ci/config.sh
artixpkg_ci_config "$@"
exit 0
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
die "invalid command: %s" "$1"
;;
esac
done
}

View File

@@ -30,11 +30,6 @@ readonly ARTIX_TEAMS=(
"${ARTIX_DB[11]}"
)
readonly AGENTS=(
orion
taurus
)
readonly REPO_DB='.artixlinux/pkgbase.yaml'
readonly REPO_CI='.artixlinux/Jenkinsfile'
@@ -360,3 +355,24 @@ show_srcinfo_base() {
show_srcinfo_pkgs() {
pkg2yaml . | yq '.pkgnames'
}
write_jenkinsfile() {
printf "@Library('artix-ci@%s') import org.artixlinux.RepoPackage\n" "${1}" > "${REPO_CI}"
{
printf '\n'
printf 'PackagePipeline(new RepoPackage(this))\n'
} >> "${REPO_CI}"
}
migrate_agent_branch() {
local branch=${AGENTS[0]}
for a in "${AGENTS[@]}"; do
if grep @"$a" "${REPO_CI}" &>/dev/null; then
branch="$a"
fi
done
if grep @galaxy "${REPO_CI}" &>/dev/null; then
branch=${AGENTS[1]}
fi
write_jenkinsfile "${branch}"
}

View File

@@ -18,6 +18,7 @@ artixpkg_git_usage() {
create Create a new Gitea package repository
pull Pull a package repository
push Push a package repository
ci Configure CI agent
OPTIONS
-h, --help Show this help text
@@ -28,6 +29,7 @@ artixpkg_git_usage() {
$ ${COMMAND} config --topic mytopic
$ ${COMMAND} config --maintainer tux
$ ${COMMAND} create -c libfoo
$ ${COMMAND} ci -a taurus
_EOF_
}
@@ -60,6 +62,14 @@ artixpkg_git() {
artixpkg_git_config "$@"
exit 0
;;
ci)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/git/ci.sh
source "${LIBDIR}"/pkg/git/ci.sh
artixpkg_git_ci "$@"
exit 0
;;
create)
_ARTOOLS_COMMAND+=" $1"
shift

View File

@@ -2,8 +2,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_CI_CONFIG_SH:-} ]] || return 0
ARTOOLS_INCLUDE_CI_CONFIG_SH=1
[[ -z ${ARTOOLS_INCLUDE_GIT_CI_SH:-} ]] || return 0
ARTOOLS_INCLUDE_GIT_CI_SH=1
# shellcheck source=src/lib/pkg/db/db.sh
source "${LIBDIR}"/pkg/db/db.sh
@@ -11,15 +11,7 @@ source "${LIBDIR}"/pkg/db/db.sh
set -e
write_jenkinsfile() {
printf "@Library('artix-ci@%s') import org.artixlinux.RepoPackage\n" "${1}" > "${REPO_CI}"
{
printf '\n'
printf 'PackagePipeline(new RepoPackage(this))\n'
} >> "${REPO_CI}"
}
artixpkg_ci_config_usage() {
artixpkg_git_ci_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
@@ -27,50 +19,34 @@ artixpkg_ci_config_usage() {
OPTIONS
-a, --agent NAME Set the CI agent (default: ${AGENTS[0]})
Possible values: $(yaml_array ${AGENTS[@]})
-s, --switch Switch agent
-j, --jobs N Run up to N jobs in parallel (default: $(nproc))
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} --agent ${AGENTS[1]} libfoo
$ ${COMMAND} --switch --agent ${AGENTS[1]} libfoo
$ ${COMMAND} *
_EOF_
}
artixpkg_ci_config() {
artixpkg_git_ci() {
# options
local jobs=
jobs=$(nproc)
local paths=()
local AGENT=${AGENTS[0]}
local SWITCH=0
# variables
local RUNCMD=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
local path realpath pkgbase
while (( $# )); do
case $1 in
-h|--help)
artixpkg_ci_config_usage
artixpkg_git_ci_usage
exit 0
;;
-s|--switch)
SWITCH=1
shift
;;
-a|--agent)
(( $# <= 1 )) && die "missing argument for %s" "$1"
AGENT="$2"
RUNCMD+=" $1 ${AGENT}"
shift 2
;;
-j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1"
jobs=$2
SWITCH=1
shift 2
;;
--)
@@ -92,23 +68,11 @@ artixpkg_ci_config() {
if [[ -f PKGBUILD ]]; then
paths=(".")
else
artixpkg_ci_config_usage
artixpkg_git_ci_usage
exit 1
fi
fi
# parallelization
if [[ ${jobs} != 1 ]] && (( ${#paths[@]} > 1 )); then
if [[ -n ${BOLD} ]]; then
export ARTOOLS_COLOR=always
fi
if ! parallel --bar --jobs "${jobs}" "${RUNCMD}" ::: "${paths[@]}"; then
die 'Failed to configure some packages, please check the output'
exit 1
fi
exit 0
fi
for path in "${paths[@]}"; do
if ! realpath=$(realpath -e "${path}"); then
error "No such directory: ${path}"

View File

@@ -7,8 +7,8 @@ ARTOOLS_INCLUDE_GIT_CLONE_SH=1
# shellcheck source=src/lib/pkg/git/config.sh
source "${LIBDIR}"/pkg/git/config.sh
# shellcheck source=src/lib/pkg/ci/config.sh
source "${LIBDIR}"/pkg/ci/config.sh
# shellcheck source=src/lib/pkg/git/ci.sh
source "${LIBDIR}"/pkg/git/ci.sh
# shellcheck source=src/lib/pkg/admin/team.sh
source "${LIBDIR}"/pkg/admin/team.sh
@@ -169,7 +169,7 @@ artixpkg_git_clone() {
fi
artixpkg_git_config "${CONFIG_OPTS[@]}" "${pkgbase}"
artixpkg_ci_config "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_git_ci "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_admin_team "${TEAM_OPTS[@]}" "${pkgbase}"
done
}

View File

@@ -5,6 +5,9 @@
[[ -z ${ARTOOLS_INCLUDE_GIT_CONFIG_SH:-} ]] || return 0
ARTOOLS_INCLUDE_GIT_CONFIG_SH=1
# shellcheck source=src/lib/pkg/packager.sh
source "${LIBDIR}"/pkg/packager.sh
set -e
@@ -23,54 +26,6 @@ artixpkg_git_config_usage() {
_EOF_
}
get_packager_name() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local name
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
name=$(echo "${packager}"|sed -E "s/${packager_pattern}/\1/")
printf "%s" "${name}"
}
get_packager_email() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local email
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
email=$(echo "${packager}"|sed -E "s/${packager_pattern}/\2/")
printf "%s" "${email}"
}
is_packager_name_valid() {
local packager_name=$1
if [[ -z ${packager_name} ]]; then
return 1
elif [[ ${packager_name} == "John Tux" ]]; then
return 1
elif [[ ${packager_name} == "Unknown Packager" ]]; then
return 1
fi
return 0
}
is_packager_email_official() {
local packager_email=$1
if [[ -z ${packager_email} ]]; then
return 1
elif [[ $packager_email =~ .+@artixlinux.org ]]; then
return 0
fi
return 1
}
artixpkg_git_config() {
# options
local GIT_REPO_BASE_URL=${GIT_HTTPS}

View File

@@ -9,8 +9,8 @@ ARTOOLS_INCLUDE_GIT_CREATE_SH=1
source "${LIBDIR}"/pkg/git/clone.sh
# shellcheck source=src/lib/pkg/git/config.sh
source "${LIBDIR}"/pkg/git/config.sh
# shellcheck source=src/lib/pkg/ci/config.sh
source "${LIBDIR}"/pkg/ci/config.sh
# shellcheck source=src/lib/pkg/git/ci.sh
source "${LIBDIR}"/pkg/git/ci.sh
# shellcheck source=src/lib/pkg/admin/team.sh
source "${LIBDIR}"/pkg/admin/team.sh
@@ -116,7 +116,7 @@ artixpkg_git_create() {
artixpkg_git_clone "${AGENT_OPTS[@]}" "${TEAM_OPTS[@]}" "${pkgbase}"
elif (( CONFIG )); then
artixpkg_git_config "${pkgbase}"
artixpkg_ci_config "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_git_ci "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_admin_team "${TEAM_OPTS[@]}" "${pkgbase}"
fi

51
src/lib/pkg/packager.sh Normal file
View File

@@ -0,0 +1,51 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
get_packager_name() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local name
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
name=$(echo "${packager}"|sed -E "s/${packager_pattern}/\1/")
printf "%s" "${name}"
}
get_packager_email() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local email
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
email=$(echo "${packager}"|sed -E "s/${packager_pattern}/\2/")
printf "%s" "${email}"
}
is_packager_name_valid() {
local packager_name=$1
if [[ -z ${packager_name} ]]; then
return 1
elif [[ ${packager_name} == "John Tux" ]]; then
return 1
elif [[ ${packager_name} == "Unknown Packager" ]]; then
return 1
fi
return 0
}
is_packager_email_official() {
local packager_email=$1
if [[ -z ${packager_email} ]]; then
return 1
elif [[ $packager_email =~ .+@artixlinux.org ]]; then
return 0
fi
return 1
}

View File

@@ -38,8 +38,6 @@ artixpkg_repo_add_usage() {
Usage: ${COMMAND} [OPTIONS] [DEST_REPO] [PKGBASE]...
OPTIONS
-m, --manual Disable auto repo
Possible auto values: $(yaml_array ${ARTIX_DB_MAP[@]})
-p, --push Push pkgbase
-r, --rebuild Triggers a rebuild
-n, --nocheck Disable the check function
@@ -48,7 +46,7 @@ artixpkg_repo_add_usage() {
EXAMPLES
$ ${COMMAND} ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --push ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --auto --push ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} --push ${ARTIX_DB_MAP[2]} libfoo
_EOF_
}
@@ -67,7 +65,7 @@ artixpkg_repo_add() {
local REBUILD=0
local NOCHECK=0
local ADD=1
local AUTO=1
local AUTO=0
while (( $# )); do
case $1 in
@@ -75,10 +73,6 @@ artixpkg_repo_add() {
artixpkg_repo_add_usage
exit 0
;;
-m|--manual)
AUTO=0
shift
;;
-p|--push)
PUSH=1
shift
@@ -104,10 +98,8 @@ artixpkg_repo_add() {
shift
pkgbases+=("$@")
if (( AUTO )); then
if ! in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
die "${DEST} does not exist!"
fi
if in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
AUTO=1
else
if ! in_array "${DEST}" "${ARTIX_DB[@]}"; then
die "${DEST} does not exist!"
@@ -168,6 +160,8 @@ artixpkg_repo_add() {
delete_obsolete_map_keys
migrate_agent_branch
if [[ -n $(git status --porcelain --untracked-files=no) ]]; then
stat_busy 'Staging files'

View File

@@ -14,15 +14,13 @@ artixpkg_repo_move_usage() {
Usage: ${COMMAND} [OPTIONS] [SOURCE_REPO] [DEST_REPO] [PKGBASE]...
OPTIONS
-m, --manual Disable auto repo
Possible auto values: $(yaml_array ${ARTIX_DB_MAP[@]})
-p, --push Push pkgbase
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} ${ARTIX_DB[4]} ${ARTIX_DB[5]} libfoo
$ ${COMMAND} --push ${ARTIX_DB[4]} ${ARTIX_DB[5]} libfoo
$ ${COMMAND} --auto --push ${ARTIX_DB_MAP[1]} ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} --push ${ARTIX_DB_MAP[1]} ${ARTIX_DB_MAP[2]} libfoo
_EOF_
}
@@ -37,7 +35,7 @@ artixpkg_repo_move() {
local pkgbase
local PUSH=0
local AUTO=1
local AUTO=0
local DEST
local SRC
@@ -48,10 +46,6 @@ artixpkg_repo_move() {
artixpkg_repo_move_usage
exit 0
;;
-m|--manual)
AUTO=0
shift
;;
-p|--push)
PUSH=1
shift
@@ -65,17 +59,12 @@ artixpkg_repo_move() {
esac
done
SRC="$1"
SRC="$1"
DEST="$2"
shift 2
if (( AUTO )); then
if ! in_array "${SRC}" "${ARTIX_DB_MAP[@]}"; then
die "${SRC} does not exist!"
fi
if ! in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
die "${DEST} does not exist!"
fi
if in_array "${SRC}" "${ARTIX_DB_MAP[@]}" && in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
AUTO=1
else
if ! in_array "${SRC}" "${ARTIX_DB[@]}"; then
die "${SRC} does not exist!"
@@ -140,6 +129,8 @@ artixpkg_repo_move() {
delete_obsolete_map_keys
migrate_agent_branch
update_yaml_team "$(auto_detect)"
if [[ -n $(git status --porcelain --untracked-files=no) ]]; then

View File

@@ -14,15 +14,13 @@ artixpkg_repo_remove_usage() {
Usage: ${COMMAND} [OPTIONS] [DEST_REPO] [PKGBASE]...
OPTIONS
-m, --manual Disable auto repo
Possible auto values: $(yaml_array ${ARTIX_DB_MAP[@]})
-p, --push Push pkgbase
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --push ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --auto --push ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} --push ${ARTIX_DB_MAP[2]} libfoo
_EOF_
}
@@ -37,7 +35,7 @@ artixpkg_repo_remove() {
local pkgbase
local PUSH=0
local AUTO=1
local AUTO=0
local DEST=''
while (( $# )); do
@@ -46,10 +44,6 @@ artixpkg_repo_remove() {
artixpkg_repo_remove_usage
exit 0
;;
-m|--manual)
AUTO=0
shift
;;
-p|--push)
PUSH=1
shift
@@ -67,10 +61,8 @@ artixpkg_repo_remove() {
shift
pkgbases=("$@")
if (( AUTO )); then
if ! in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
die "${DEST} does not exist!"
fi
if in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
AUTO=1
else
if ! in_array "${DEST}" "${ARTIX_DB[@]}"; then
die "${DEST} does not exist!"
@@ -115,6 +107,8 @@ artixpkg_repo_remove() {
delete_obsolete_map_keys
migrate_agent_branch
if [[ -n $(git status --porcelain --untracked-files=no) ]]; then
stat_busy 'Staging files'

View File

@@ -60,6 +60,10 @@ load_pkg_config(){
DBEXT=${DBEXT:-'gz'}
if [[ -z "${AGENTS[*]}" ]]; then
AGENTS=(orion taurus)
fi
return 0
}

View File

@@ -20,10 +20,10 @@ usage() {
Usage: ${COMMAND} [COMMAND] [OPTIONS]
COMMANDS
repo Pacman database modification for package updates, moves, etc.
git Manage Git packaging repositories and their configuration
agent Manage CI and build agent
admin Manage topics, teams and obsolete repos
git Manage Git packaging repositories and their configuration
repo Pacman database modification for package updates, moves, etc.
version Show artixpkg version information
OPTIONS
@@ -68,14 +68,6 @@ while (( $# )); do
artixpkg_git "$@"
exit 0
;;
ci)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/ci.sh
source "${LIBDIR}"/pkg/ci.sh
artixpkg_ci "$@"
exit 0
;;
admin)
_ARTOOLS_COMMAND+=" $1"
shift

View File

@@ -11,6 +11,13 @@ source "${LIBDIR}"/base/chroot.sh
# shellcheck source=src/lib/pkg/deploy.sh
source "${LIBDIR}"/pkg/deploy.sh
# shellcheck source=config/makepkg/x86_64.conf
load_makepkg_config
export PKGDEST
export GPG_KEY
export GPG_PASS
passfiles=("$@")
sign_pkg(){
@@ -23,16 +30,13 @@ sign_pkg(){
if [[ -n "${GPG_KEY}" ]] && [[ -n "${GPG_PASS}" ]]; then
msg "Signing [%s]" "${file_to_sign##*/}"
if ! gpg --homedir /etc/pacman.d/gnupg --no-permission-warning \
--no-default-keyring --default-key "${GPGP_KEY}" --passphrase "${GPGP_PASS}" \
-q --detach-sign "$file_to_sign"; then
return 1
fi
gpg --homedir /etc/pacman.d/gnupg --no-permission-warning \
--no-default-keyring --default-key "${GPG_KEY}" --passphrase "${GPG_PASS}" \
-q --detach-sign "$file_to_sign"
fi
return 0
}
check_root "" "${BASH_SOURCE[0]}" "$@"
check_root PKGDEST,GPG_KEY,GPG_PASS "${BASH_SOURCE[0]}" "$@"
for pkg in "${passfiles[@]}"; do
msg "Searching %s ..." "$pkg"

View File

@@ -20,6 +20,7 @@ add() {
msg "Found: %s" "${pkgfile}"
packages+=("${pkgname}")
action='add'
action_args+=(--include-sigs)
ln -sfv "${pkgfile}"{,.sig} "${repo_path}"/
fi
}
@@ -41,7 +42,7 @@ repo_action() {
done
( cd "${repo_path}" || return
if [[ -n "${action}" ]]; then
repo-"${action}" -R "${dest_repo}.${db_ext}" "${packages[@]}"
repo-"${action}" "${action_args[@]}" "${dest_repo}.${db_ext}" "${packages[@]}"
fi
)
}
@@ -57,6 +58,7 @@ rm_pkg=false
cmd=${0##*/}
dest_repo=${cmd#*-}
action_args=(-R)
usage() {
printf "Usage: %s [options]\n" "${cmd}"