1
0
forked from artix/artools

Compare commits

...

25 Commits

Author SHA1 Message Date
ba2542c697 artixpkg: remove archlinux to artixlinux sed on import
This is not always desirable. For some packages, the upstream url really
is archlinux.org. This can be taken care of in artix-patches instead.
2024-08-26 10:38:56 -05:00
23c6cecdcc artixpkg: remove unneeded sed condition from import
Changing "(Arch Linux)" to "(Artix Linux)" is not used in practice by
any package and doing such name changes like this is better handled in
artix-patches instead of it being a blunt hammer on all imported
packages.
2024-07-26 20:13:35 -05:00
828844fd9a artixpkg git push: remove parallel 2024-05-13 17:03:59 +02:00
760f5e8281 artools/0.34.x (#135)
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Reviewed-on: artix/artools#135
2024-05-13 15:41:42 +02:00
bb1585ad7b add initial zsh completions (#132)
Not as advanced as the bash completions but better than nothing.

Co-authored-by: artoo <artoo@artixlinux.org>
Reviewed-on: artix/artools#132
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-committed-by: Dudemanguy <dudemanguy@artixlinux.org>
2024-04-27 22:02:55 +02:00
be6506d6ee artixpkg git ci: fix team (#133)
Reviewed-on: artix/artools#133
2024-04-17 23:08:48 +02:00
35a9c2f305 artools/0.34.x (#131)
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Reviewed-on: artix/artools#131
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-04-17 17:05:39 +02:00
5347f45cc5 Merge pull request 'chroot-run: set PATH in chroot' (#129) from env-fix into master
Reviewed-on: artix/artools#129
2024-04-10 23:08:20 +02:00
c7f11a5bd5 chroot-run: set PATH in chroot 2024-04-10 23:05:38 +02:00
f3794ff2ad Merge pull request 'artixpkg: use artix-patches on import' (#119) from corysanin/artools:artix-patches into master
Reviewed-on: artix/artools#119
2024-04-03 21:56:40 +02:00
c6811cca48 update repo URL 2024-04-03 14:42:23 -05:00
a1f296ff2b moving patch scripts 2024-04-03 14:41:13 -05:00
ac5e0f4b3d simplify PKGBUILD paths 2024-04-03 14:41:13 -05:00
2ecfb04dc6 artixpkg: use artix-patches on import 2024-04-03 14:41:13 -05:00
e81eac2021 artixpkg: update usage (#124)
Reviewed-on: artix/artools#124
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-04-02 14:54:11 +02:00
e612d2c6d2 artixpkg git: fix ci lib source 2024-04-01 19:27:32 +02:00
2bed697813 Merge pull request 'repopkg: --include-sigs on add' (#123) from repopkg into master
Reviewed-on: artix/artools#123
2024-04-01 14:47:19 +02:00
ba4ac669e7 repopkg: --include-sigs on add 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
Reviewed-on: artix/artools#122
2024-04-01 14:39:38 +02:00
d35422a74e artixpkg: refactor ci into git sub cmd 2024-04-01 13:09:37 +02:00
94b8957494 artixpkg ci: remove redundant --switch opt 2024-03-31 12:22:06 +02:00
a0a485294c artixpkg ci: remove obsolete jobs opt 2024-03-30 21:48:10 +01:00
7b67601e44 artixpkg ci: remove parallel agent config, leads to problems with gpg agents signing the commit 2024-03-30 21:37:58 +01:00
8db0c1ca39 artixpkg admin: fix maintainer parallel 2024-03-27 10:12:14 +01:00
190340e375 artixpkg admin: fix maintainer usage example 2024-03-27 00:45:44 +01:00
19 changed files with 341 additions and 172 deletions

View File

@@ -116,6 +116,7 @@ install_pkg: binprogs_pkg
ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
install -Dm0644 $(BUILDDIR)/contrib/completion/bash/artixpkg $(DESTDIR)$(PREFIX)/share/bash-completion/completions/artixpkg install -Dm0644 $(BUILDDIR)/contrib/completion/bash/artixpkg $(DESTDIR)$(PREFIX)/share/bash-completion/completions/artixpkg
install -Dm0644 $(BUILDDIR)/contrib/completion/zsh/_artixpkg $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_artixpkg
install_iso: binprogs_iso install_iso: binprogs_iso
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install -dm0755 $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)

View File

@@ -38,3 +38,9 @@
# default jenkins agents # default jenkins agents
# AGENTS=(orion taurus) # AGENTS=(orion taurus)
# whether to include custom maintainer line when importing from arch
# PATCH_MAINTAINER=false
# override the default git url for patches repo
# PATCH_URL=${GIT_SSH}:artix/artix-patches.git

View File

@@ -8,6 +8,14 @@ _artixpkg_pkgbase() {
ls -1 "${TREE_DIR_ARTIX}" | tr '\n' ' ' ls -1 "${TREE_DIR_ARTIX}" | tr '\n' ' '
} }
_artixpkg_remotepkgbase() {
curl -s "https://checkupdates.artixlinux.org/api/1.0/packages?startswith=$1"
}
_artixpkg_maintainers() {
curl -s "https://checkupdates.artixlinux.org/api/1.0/maintainers"
}
_artixpkg_completion() { _artixpkg_completion() {
local cur prev comps comps_all repos autorepos teams agents cwords comp_cword_exflag local cur prev comps comps_all repos autorepos teams agents cwords comp_cword_exflag
source "${LIBDIR}"/pkg/db/db.sh 2>/dev/null source "${LIBDIR}"/pkg/db/db.sh 2>/dev/null
@@ -70,7 +78,7 @@ _artixpkg_completion() {
case "${comp_cword_exflag}" in case "${comp_cword_exflag}" in
1) 1)
COMPREPLY=($(compgen -W "admin ci git repo version -h --help" -- "${cur}")) COMPREPLY=($(compgen -W "admin git repo version -h --help" -- "${cur}"))
return 0 return 0
;; ;;
2) 2)
@@ -78,11 +86,8 @@ _artixpkg_completion() {
admin) admin)
COMPREPLY=($(compgen -W "maintainer 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}))
;;
git) git)
COMPREPLY=($(compgen -W "clone config create pull push -h --help" -- ${cur})) COMPREPLY=($(compgen -W "ci clone config create pull push -h --help" -- ${cur}))
;; ;;
repo) repo)
COMPREPLY=($(compgen -W "add remove move import show -h --help" -- ${cur})) COMPREPLY=($(compgen -W "add remove move import show -h --help" -- ${cur}))
@@ -150,12 +155,15 @@ _artixpkg_completion() {
"-t"|"--team") "-t"|"--team")
COMPREPLY=($(compgen -W "$teams" -- ${cur})) COMPREPLY=($(compgen -W "$teams" -- ${cur}))
;; ;;
"-m"|"--maintainer"|"-s"|"--search"|"-t"|"--team"|"-j"|"--jobs") "-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-s"|"--search"|"-j"|"--jobs")
# these flags expect a parameter # these flags expect a parameter
COMPREPLY=() COMPREPLY=()
;; ;;
*) *)
COMPREPLY=($(compgen -W "-m --maintainer --protocol -s --search -t --team -a --agent -j --jobs --all -h --help" -- ${cur})) COMPREPLY=($(compgen -W "-m --maintainer --protocol -s --search -t --team -a --agent -j --jobs --all -h --help $(_artixpkg_remotepkgbase ${cur})" -- ${cur}))
;; ;;
esac esac
;; ;;
@@ -188,7 +196,10 @@ _artixpkg_completion() {
;; ;;
"artixpkg git pull"*) "artixpkg git pull"*)
case "${prev}" in case "${prev}" in
"-t"|"--topic"|"-m"|"--maintainer"|"-j"|"--jobs") "-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-t"|"--topic"|"-j"|"--jobs")
# these flags expect a parameter # these flags expect a parameter
COMPREPLY=() COMPREPLY=()
;; ;;
@@ -206,7 +217,10 @@ _artixpkg_completion() {
;; ;;
"artixpkg git push"*) "artixpkg git push"*)
case "${prev}" in case "${prev}" in
"-m"|"--maintainer"|"-t"|"--topic"|"-j"|"--jobs") "-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-t"|"--topic"|"-j"|"--jobs")
# this flag expects a parameter # this flag expects a parameter
COMPREPLY=() COMPREPLY=()
;; ;;
@@ -215,17 +229,13 @@ _artixpkg_completion() {
;; ;;
esac esac
;; ;;
"artixpkg ci config"*) "artixpkg git ci"*)
case "${prev}" in case "${prev}" in
"-j"|"--jobs")
# this flag expects a parameter
COMPREPLY=()
;;
"-a"|"--agent") "-a"|"--agent")
COMPREPLY=($(compgen -W "$agents" -- ${cur})) COMPREPLY=($(compgen -W "$agents" -- ${cur}))
;; ;;
*) *)
COMPREPLY=($(compgen -W "-a --agent -s --switch -j --jobs -h --help $(_artixpkg_pkgbase)" -- ${cur})) COMPREPLY=($(compgen -W "-a --agent -h --help $(_artixpkg_pkgbase)" -- ${cur}))
;; ;;
esac esac
;; ;;
@@ -241,7 +251,10 @@ _artixpkg_completion() {
;; ;;
"artixpkg admin query"*) "artixpkg admin query"*)
case "${prev}" in case "${prev}" in
"-m"|"--maintainer"|"-t"|"--topic") "-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-t"|"--topic")
# this flag expects a parameter # this flag expects a parameter
COMPREPLY=() COMPREPLY=()
;; ;;

View File

@@ -0,0 +1,205 @@
#compdef artixpkg
local -a addcmd admincmd cicmd clonecmd configcmd createcmd gitcmd importcmd \
initialcmd maintainercmd movecmd querycmd pullcmd pushcmd removecmd \
repocmd showcmd teamcmd topiccmd transfercmd versioncmd
_regex_words maintainer '' \
'-a' \
'--adopt' \
'-h' \
'--help' \
'-o' \
'--orphan'
maintainercmd=("$reply[@]")
_regex_words query '' \
'-h' \
'--help' \
'-m' \
'-t'
querycmd=("$reply[@]")
_regex_words team '' \
'-a' \
'--add' \
'-c' \
'--check' \
'-h' \
'--help' \
'-r' \
'--remove'
teamcmd=("$reply[@]")
_regex_words topic '' \
'-a' \
'--add' \
'-d' \
'--delete' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-r' \
'--remove'
topiccmd=("$reply[@]")
_regex_words transfer '' \
'-h' \
'--help'
transfercmd=("$reply[@]")
_regex_words admin '' \
'-h:Help text' \
'--help:Help text' \
'maintainer:Manage repo maintainer:$maintainercmd' \
'query:Query maintainers and topics:$querycmd' \
'team:Manage repo team:$teamcmd' \
'topic:Manage topics:$topiccmd' \
'transfer:Transfer obsolete repositories to landfill:$transfercmd'
admincmd=("$reply[@]")
_regex_words ci '' \
'-a' \
'--agent' \
'-h' \
'--help'
cicmd=("$reply[@]")
_regex_words clone '' \
'-a' \
'--agent' \
'--all' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-m' \
'--maintainer' \
'--protocol' \
'-s' \
'--search' \
'-t' \
'--team'
clonecmd=("$reply[@]")
_regex_words config '' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'--protocol'
configcmd=("$reply[@]")
_regex_words create '' \
'-a' \
'--agent' \
'-c' \
'--create' \
'-h' \
'--help' \
'-t' \
'--team'
createcmd=("$reply[@]")
_regex_words pull '' \
'--all' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-m' \
'--maintainer' \
'-t' \
'--topic'
pullcmd=("$reply[@]")
_regex_words push '' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-m' \
'--maintainer' \
'-t' \
'--topic'
pushcmd=("$reply[@]")
_regex_words git '' \
'ci:Configure CI agent:$cicmd' \
'clone:Clone a package:$clonecmd' \
'config:Configure a clone:$configcmd' \
'create:Create a new gitea package repository:$createcmd' \
'-h:Help text' \
'--help:Help text' \
'pull:Pull a package repository:$pullcmd' \
'push:Push a package repository:$pushcmd'
gitcmd=("$reply[@]")
_regex_words add '' \
'-h' \
'--help' \
'-n' \
'--nocheck' \
'-p' \
'--push' \
'-r' \
'--rebuild'
addcmd=("$reply[@]")
_regex_words import '' \
'--del' \
'-h' \
'--help' \
'--tag'
importcmd=("$reply[@]")
_regex_words move '' \
'-h' \
'--help' \
'-p' \
'--push'
movecmd=("$reply[@]")
_regex_words remove '' \
'-h' \
'--help' \
'-p' \
'--push'
removecmd=("$reply[@]")
_regex_words show '' \
'-b' \
'--base' \
'-h' \
'--help' \
'-p' \
'--pkgs'
showcmd=("$reply[@]")
_regex_words repo '' \
'add:Add pkgbase to repo:$addcmd' \
'-h:Help text' \
'--help:Help text' \
'import:Import latest tag from arch upstream:$importcmd' \
'move:Move pkgbase between repos:$movecmd' \
'remove:Remove pkgbase from repo:$removecmd' \
'show:Show pkgbase repo db:$showcmd'
repocmd=("$reply[@]")
_regex_words version '' \
'-h' \
'--help'
versioncmd=("$reply[@]")
_regex_words initial '' \
'admin:Manage topics:$admincmd' \
'git:Manage git:$gitcmd' \
'-h:Help text' \
'--help:Help text' \
'repo:Pacman database modification:$repocmd' \
'version:Show artixpkg version:$versioncmd'
initialcmd=("$reply[@]")
_regex_arguments _artixpkg /$'[^\0]##\0'/ "${initialcmd[@]}"
_artixpkg "$@"

View File

@@ -31,7 +31,7 @@ artixpkg_admin_usage() {
$ ${COMMAND} query --topic mytopic $ ${COMMAND} query --topic mytopic
$ ${COMMAND} topic --add mytopic libfoo $ ${COMMAND} topic --add mytopic libfoo
$ ${COMMAND} team --add ${ARTIX_TEAMS[3]} libfoo $ ${COMMAND} team --add ${ARTIX_TEAMS[3]} libfoo
$ ${COMMAND} --adopt libfoo libbar $ ${COMMAND} maintainer --adopt libfoo libbar
_EOF_ _EOF_
} }

View File

@@ -58,12 +58,12 @@ artixpkg_admin_maintainer() {
;; ;;
-a|--adopt) -a|--adopt)
ADOPT=1 ADOPT=1
RUNCMD+=" $1 $maintainer" RUNCMD+=" $1"
shift shift
;; ;;
-o|--orphan) -o|--orphan)
ORPHAN=1 ORPHAN=1
RUNCMD+=" $1 $orphan" RUNCMD+=" $1"
shift shift
;; ;;
--) --)

View File

@@ -196,7 +196,6 @@ remove_all_topics() {
-H "Authorization: token ${GIT_TOKEN}" \ -H "Authorization: token ${GIT_TOKEN}" \
-d "$json" -d "$json"
stat_done 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

@@ -18,6 +18,7 @@ artixpkg_git_usage() {
create Create a new Gitea package repository create Create a new Gitea package repository
pull Pull a package repository pull Pull a package repository
push Push a package repository push Push a package repository
ci Configure CI agent
OPTIONS OPTIONS
-h, --help Show this help text -h, --help Show this help text
@@ -25,9 +26,10 @@ artixpkg_git_usage() {
EXAMPLES EXAMPLES
$ ${COMMAND} clone libfoo linux libbar $ ${COMMAND} clone libfoo linux libbar
$ ${COMMAND} clone --maintainer tux $ ${COMMAND} clone --maintainer tux
$ ${COMMAND} config --topic mytopic $ ${COMMAND} clone --search mytopic
$ ${COMMAND} config --maintainer tux $ ${COMMAND} config libfoo
$ ${COMMAND} create -c libfoo $ ${COMMAND} create -c libfoo
$ ${COMMAND} ci -a ${AGENTS[1]} libfoo
_EOF_ _EOF_
} }
@@ -60,6 +62,14 @@ artixpkg_git() {
artixpkg_git_config "$@" artixpkg_git_config "$@"
exit 0 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) create)
_ARTOOLS_COMMAND+=" $1" _ARTOOLS_COMMAND+=" $1"
shift shift

View File

@@ -2,8 +2,8 @@
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_CI_CONFIG_SH:-} ]] || return 0 [[ -z ${ARTOOLS_INCLUDE_GIT_CI_SH:-} ]] || return 0
ARTOOLS_INCLUDE_CI_CONFIG_SH=1 ARTOOLS_INCLUDE_GIT_CI_SH=1
# shellcheck source=src/lib/pkg/db/db.sh # shellcheck source=src/lib/pkg/db/db.sh
source "${LIBDIR}"/pkg/db/db.sh source "${LIBDIR}"/pkg/db/db.sh
@@ -11,7 +11,7 @@ source "${LIBDIR}"/pkg/db/db.sh
set -e set -e
artixpkg_ci_config_usage() { artixpkg_git_ci_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}} local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_ cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE]... Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
@@ -19,50 +19,35 @@ artixpkg_ci_config_usage() {
OPTIONS OPTIONS
-a, --agent NAME Set the CI agent (default: ${AGENTS[0]}) -a, --agent NAME Set the CI agent (default: ${AGENTS[0]})
Possible values: $(yaml_array ${AGENTS[@]}) 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 -h, --help Show this help text
EXAMPLES EXAMPLES
$ ${COMMAND} --agent ${AGENTS[1]} libfoo $ ${COMMAND} --agent ${AGENTS[1]} libfoo
$ ${COMMAND} --switch --agent ${AGENTS[1]} libfoo
$ ${COMMAND} *
_EOF_ _EOF_
} }
artixpkg_ci_config() { artixpkg_git_ci() {
# options # options
local jobs=
jobs=$(nproc)
local paths=() local paths=()
local AGENT=${AGENTS[0]} local AGENT=${AGENTS[0]}
local SWITCH=0 local SWITCH=0
local CREATED=0
# variables # variables
local RUNCMD=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
local path realpath pkgbase local path realpath pkgbase
while (( $# )); do while (( $# )); do
case $1 in case $1 in
-h|--help) -h|--help)
artixpkg_ci_config_usage artixpkg_git_ci_usage
exit 0 exit 0
;; ;;
-s|--switch)
SWITCH=1
shift
;;
-a|--agent) -a|--agent)
(( $# <= 1 )) && die "missing argument for %s" "$1" (( $# <= 1 )) && die "missing argument for %s" "$1"
AGENT="$2" AGENT="$2"
RUNCMD+=" $1 ${AGENT}" SWITCH=1
shift 2
;;
-j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1"
jobs=$2
shift 2 shift 2
;; ;;
--) --)
@@ -84,23 +69,11 @@ artixpkg_ci_config() {
if [[ -f PKGBUILD ]]; then if [[ -f PKGBUILD ]]; then
paths=(".") paths=(".")
else else
artixpkg_ci_config_usage artixpkg_git_ci_usage
exit 1 exit 1
fi fi
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 for path in "${paths[@]}"; do
if ! realpath=$(realpath -e "${path}"); then if ! realpath=$(realpath -e "${path}"); then
error "No such directory: ${path}" error "No such directory: ${path}"
@@ -125,6 +98,8 @@ artixpkg_ci_config() {
git add "${REPO_CI}" git add "${REPO_CI}"
git commit -m "add ci support" git commit -m "add ci support"
CREATED=1
fi fi
if [[ ! -f ${REPO_DB} ]]; then if [[ ! -f ${REPO_DB} ]]; then
@@ -139,14 +114,17 @@ artixpkg_ci_config() {
fi fi
git add "${REPO_DB}" git add "${REPO_DB}"
git commit -m "create repo db" git commit -m "create repo db"
fi fi
if (( SWITCH )); then if (( SWITCH )); then
msg "Switching to agent (${AGENT}) ..." msg "Switching to agent (${AGENT}) ..."
write_jenkinsfile "${AGENT}" write_jenkinsfile "${AGENT}"
git add "${REPO_CI}" if (( ! CREATED )); then
git commit -m "switch agent" git add "${REPO_CI}"
git commit -m "switch agent"
fi
fi fi
) )

View File

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

View File

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

View File

@@ -16,14 +16,12 @@ artixpkg_git_push_usage() {
OPTIONS OPTIONS
-m, --maintainer NAME Push all packages of the named maintainer -m, --maintainer NAME Push all packages of the named maintainer
-t, --topic NAME Push all packages of the named topic -t, --topic NAME Push all packages of the named topic
-j, --jobs N Run up to N jobs in parallel (default: $(nproc))
-h, --help Show this help text -h, --help Show this help text
EXAMPLES EXAMPLES
$ ${COMMAND} libfoo linux libbar $ ${COMMAND} libfoo linux libbar
$ ${COMMAND} --maintainer tux $ ${COMMAND} --maintainer tux
$ ${COMMAND} --topic mytopic $ ${COMMAND} --topic mytopic
$ ${COMMAND} -j 8 --topic mytopic
_EOF_ _EOF_
} }
@@ -38,11 +36,6 @@ artixpkg_git_push() {
# options # options
local MAINTAINER= local MAINTAINER=
local TOPIC= local TOPIC=
local CONFIGURE_OPTIONS=()
local jobs=
jobs=$(nproc)
local command=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
while (( $# )); do while (( $# )); do
case $1 in case $1 in
@@ -60,11 +53,6 @@ artixpkg_git_push() {
TOPIC="$2" TOPIC="$2"
shift 2 shift 2
;; ;;
-j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1"
jobs=$2
shift 2
;;
--) --)
shift shift
break break
@@ -90,19 +78,6 @@ artixpkg_git_push() {
mapfile -t pkgbases < <(search_topic "${TOPIC}" | yq -P -r '.data | .[].name' | sort) mapfile -t pkgbases < <(search_topic "${TOPIC}" | yq -P -r '.data | .[].name' | sort)
fi fi
# 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}" "${command}" ::: "${pkgbases[@]}"; then
die 'Failed to push some packages, please check the output'
exit 1
fi
exit 0
fi
for pkgbase in "${pkgbases[@]}"; do for pkgbase in "${pkgbases[@]}"; do
if [[ -d ${pkgbase} ]]; then if [[ -d ${pkgbase} ]]; then
( cd "${pkgbase}" || return ( cd "${pkgbase}" || return

View File

@@ -41,9 +41,12 @@ artixpkg_repo_usage() {
-h, --help Show this help text -h, --help Show this help text
EXAMPLES EXAMPLES
$ ${COMMAND} add world libfoo $ ${COMMAND} add ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} remove world libfoo $ ${COMMAND} remove ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} move world-gremlins world libfoo $ ${COMMAND} move ${ARTIX_DB_MAP[1]} ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} add ${ARTIX_DB[4]} libfoo
$ ${COMMAND} remove ${ARTIX_DB[4]} libfoo
$ ${COMMAND} move ${ARTIX_DB[3]} ${ARTIX_DB[4]} libfoo
$ ${COMMAND} import libfoo $ ${COMMAND} import libfoo
$ ${COMMAND} show libfoo $ ${COMMAND} show libfoo
_EOF_ _EOF_

View File

@@ -7,22 +7,55 @@ ARTOOLS_INCLUDE_REPO_IMPORT_SH=1
set -e set -e
PATCHDIR=${PATCHDIR:-"${WORKSPACE_DIR}/artix-patches"}
update_patches(){
if [[ ! -d "${PATCHDIR}" ]]; then
# ${GIT_ORG}
if ! git clone "${PATCH_URL}" "${PATCHDIR}"; then
error "failed to clone %s" "${PATCHDIR}"
fi
else
if ! git -C "${PATCHDIR}" pull; then
error "Failed to pull artix-patches"
fi
fi
}
patch_pkgbase(){ patch_pkgbase(){
local name="$1" local name="$1"
case "${name}" in local patches="${PATCHDIR}/patches/${name}"
linux|linux-lts|linux-zen|linux-hardened|linux-rt*) sed -e 's|arch-meson|artix-meson|' -i PKGBUILD
sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i PKGBUILD
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ if "${PATCH_MAINTAINER}" && [ -n "${PACKAGER}" ]; then
-i config sed -e 's|# Maintainer:|# Contributor:|' -i PKGBUILD
;; printf '%s\n%s\n' "# Maintainer: ${PACKAGER}" "$(cat "PKGBUILD")" >"PKGBUILD"
*) fi
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
-e 's|(Arch Linux)|(Artix Linux)|' \ if [ -d "${patches}" ]; then
-e 's|arch-meson|artix-meson|' \ if [ -f "${patches}/env.txt" ]; then
-i PKGBUILD while read -r line; do
;; IFS="=" read -r key value <<< "$line"
esac if [[ -z "${key}" ]] || [[ -z "${value}" ]]; then
die "Invalid key value pair in env.txt"
fi
if declare -p "${key}" &> /dev/null; then
die "Environment variable %s already exists." "${key}"
fi
export "${key}=${value}"
done < "${patches}/env.txt"
fi
for file in "${patches}"/*; do
if [ -x "${file}" ]; then
echo "$> ${name}/$(basename "${file}")"
"${file}" "${TREE_DIR_ARTIX}/${name}"
elif [[ "${file}" == *.diff ]]; then
echo "$> git apply ${name}/$(basename "${file}")"
git -C "${TREE_DIR_ARTIX}/${name}" apply "${file}"
fi
done
fi
git --no-pager diff PKGBUILD git --no-pager diff PKGBUILD
} }
@@ -96,6 +129,8 @@ artixpkg_repo_import() {
esac esac
done done
update_patches
pkgbases+=("$@") pkgbases+=("$@")
for pkgbase in "${pkgbases[@]}"; do for pkgbase in "${pkgbases[@]}"; do

View File

@@ -60,6 +60,10 @@ load_pkg_config(){
DBEXT=${DBEXT:-'gz'} DBEXT=${DBEXT:-'gz'}
PATCH_MAINTAINER=${PATCH_MAINTAINER:-false}
PATCH_URL=${PATCH_URL:-"${GIT_SSH}:artix/artix-patches.git"}
if [[ -z "${AGENTS[*]}" ]]; then if [[ -z "${AGENTS[*]}" ]]; then
AGENTS=(orion taurus) AGENTS=(orion taurus)
fi fi

View File

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

View File

@@ -181,7 +181,9 @@ else
set_arch="${CARCH}" set_arch="${CARCH}"
fi fi
${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@" chroot_args=(/usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/bin)
${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "${chroot_args[@]}" "$@"
ret=$? ret=$?

View File

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