Compare commits
	
		
			28 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fa245021bf | |||
| fd74b22bc2 | |||
| 538e5051e5 | |||
| ba2542c697 | |||
| 23c6cecdcc | |||
| 
						
						
							
						
						828844fd9a
	
				 | 
					
					
						|||
| 760f5e8281 | |||
| bb1585ad7b | |||
| be6506d6ee | |||
| 35a9c2f305 | |||
| 5347f45cc5 | |||
| 
						
						
							
						
						c7f11a5bd5
	
				 | 
					
					
						|||
| f3794ff2ad | |||
| 
						
						
							
						
						c6811cca48
	
				 | 
					
					
						|||
| a1f296ff2b | |||
| ac5e0f4b3d | |||
| 2ecfb04dc6 | |||
| e81eac2021 | |||
| 
						
						
							
						
						e612d2c6d2
	
				 | 
					
					
						|||
| 2bed697813 | |||
| 
						
						
							
						
						ba4ac669e7
	
				 | 
					
					
						|||
| 47babd20fd | |||
| 
						
						
							
						
						d35422a74e
	
				 | 
					
					
						|||
| 
						
						
							
						
						94b8957494
	
				 | 
					
					
						|||
| 
						
						
							
						
						a0a485294c
	
				 | 
					
					
						|||
| 
						
						
							
						
						7b67601e44
	
				 | 
					
					
						|||
| 
						
						
							
						
						8db0c1ca39
	
				 | 
					
					
						|||
| 
						
						
							
						
						190340e375
	
				 | 
					
					
						
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							@@ -116,6 +116,7 @@ install_pkg: binprogs_pkg
 | 
			
		||||
	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/zsh/_artixpkg $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_artixpkg
 | 
			
		||||
 | 
			
		||||
install_iso: binprogs_iso
 | 
			
		||||
	install -dm0755 $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
 | 
			
		||||
 
 | 
			
		||||
@@ -38,3 +38,9 @@
 | 
			
		||||
 | 
			
		||||
# default jenkins agents
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
@@ -43,17 +43,16 @@ CHOST="x86_64-pc-linux-gnu"
 | 
			
		||||
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
 | 
			
		||||
        -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \
 | 
			
		||||
        -fstack-clash-protection -fcf-protection"
 | 
			
		||||
        # -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
 | 
			
		||||
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
 | 
			
		||||
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
 | 
			
		||||
         -Wl,-z,pack-relative-relocs"
 | 
			
		||||
LTOFLAGS="-flto=auto"
 | 
			
		||||
RUSTFLAGS=""
 | 
			
		||||
#-- Make Flags: change this for DistCC/SMP systems
 | 
			
		||||
#MAKEFLAGS="-j2"
 | 
			
		||||
#-- Debugging flags
 | 
			
		||||
DEBUG_CFLAGS="-g"
 | 
			
		||||
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
 | 
			
		||||
DEBUG_RUSTFLAGS="-C debuginfo=2"
 | 
			
		||||
 | 
			
		||||
#########################################################################
 | 
			
		||||
# BUILD ENVIRONMENT
 | 
			
		||||
@@ -82,7 +81,7 @@ BUILDENV=(!distcc color !ccache check !sign)
 | 
			
		||||
#   These are default values for the options=() settings
 | 
			
		||||
#########################################################################
 | 
			
		||||
#
 | 
			
		||||
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
 | 
			
		||||
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps)
 | 
			
		||||
#  A negated option will do the opposite of the comments below.
 | 
			
		||||
#
 | 
			
		||||
#-- strip:      Strip symbols from binaries/libraries
 | 
			
		||||
@@ -94,6 +93,7 @@ BUILDENV=(!distcc color !ccache check !sign)
 | 
			
		||||
#-- purge:      Remove files specified by PURGE_TARGETS
 | 
			
		||||
#-- debug:      Add debugging flags as specified in DEBUG_* variables
 | 
			
		||||
#-- lto:        Add compile flags for building with link time optimization
 | 
			
		||||
#-- autodeps:   Automatically add depends/provides
 | 
			
		||||
#
 | 
			
		||||
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
 | 
			
		||||
 | 
			
		||||
@@ -113,6 +113,8 @@ DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
 | 
			
		||||
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 | 
			
		||||
#-- Directory to store source code in for debug packages
 | 
			
		||||
DBGSRCDIR="/usr/src/debug"
 | 
			
		||||
#-- Prefix and directories for library autodeps
 | 
			
		||||
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
 | 
			
		||||
 | 
			
		||||
#########################################################################
 | 
			
		||||
# PACKAGE OUTPUT
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,8 @@ Color
 | 
			
		||||
CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 10
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,8 @@ Color
 | 
			
		||||
CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 10
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,8 @@ Color
 | 
			
		||||
CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 10
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ NoProgressBar
 | 
			
		||||
#CheckSpace
 | 
			
		||||
VerbosePkgLists
 | 
			
		||||
ParallelDownloads = 5
 | 
			
		||||
DownloadUser = alpm
 | 
			
		||||
#DisableSandbox
 | 
			
		||||
 | 
			
		||||
# By default, pacman accepts packages signed by keys that its local keyring
 | 
			
		||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,14 @@ _artixpkg_pkgbase() {
 | 
			
		||||
    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() {
 | 
			
		||||
    local cur prev comps comps_all repos autorepos teams agents cwords comp_cword_exflag
 | 
			
		||||
    source "${LIBDIR}"/pkg/db/db.sh 2>/dev/null
 | 
			
		||||
@@ -70,7 +78,7 @@ _artixpkg_completion() {
 | 
			
		||||
 | 
			
		||||
    case "${comp_cword_exflag}" in
 | 
			
		||||
        1)
 | 
			
		||||
            COMPREPLY=($(compgen -W "admin ci git repo version -h --help" -- "${cur}"))
 | 
			
		||||
            COMPREPLY=($(compgen -W "admin git repo version -h --help" -- "${cur}"))
 | 
			
		||||
            return 0
 | 
			
		||||
            ;;
 | 
			
		||||
        2)
 | 
			
		||||
@@ -78,11 +86,8 @@ _artixpkg_completion() {
 | 
			
		||||
                admin)
 | 
			
		||||
                    COMPREPLY=($(compgen -W "maintainer query team topic transfer -h --help" -- ${cur}))
 | 
			
		||||
                    ;;
 | 
			
		||||
                ci)
 | 
			
		||||
                    COMPREPLY=($(compgen -W "config -h --help" -- ${cur}))
 | 
			
		||||
                    ;;
 | 
			
		||||
                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)
 | 
			
		||||
                    COMPREPLY=($(compgen -W "add remove move import show -h --help" -- ${cur}))
 | 
			
		||||
@@ -150,12 +155,15 @@ _artixpkg_completion() {
 | 
			
		||||
                        "-t"|"--team")
 | 
			
		||||
                            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
 | 
			
		||||
                            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
 | 
			
		||||
                    ;;
 | 
			
		||||
@@ -188,7 +196,10 @@ _artixpkg_completion() {
 | 
			
		||||
                    ;;
 | 
			
		||||
                "artixpkg git pull"*)
 | 
			
		||||
                    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
 | 
			
		||||
                            COMPREPLY=()
 | 
			
		||||
                            ;;
 | 
			
		||||
@@ -206,7 +217,10 @@ _artixpkg_completion() {
 | 
			
		||||
                    ;;
 | 
			
		||||
                "artixpkg git push"*)
 | 
			
		||||
                    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
 | 
			
		||||
                            COMPREPLY=()
 | 
			
		||||
                            ;;
 | 
			
		||||
@@ -215,17 +229,13 @@ _artixpkg_completion() {
 | 
			
		||||
                            ;;
 | 
			
		||||
                    esac
 | 
			
		||||
                    ;;
 | 
			
		||||
                "artixpkg ci config"*)
 | 
			
		||||
                "artixpkg git ci"*)
 | 
			
		||||
                    case "${prev}" in
 | 
			
		||||
                        "-j"|"--jobs")
 | 
			
		||||
                            # this flag expects a parameter
 | 
			
		||||
                            COMPREPLY=()
 | 
			
		||||
                            ;;
 | 
			
		||||
                        "-a"|"--agent")
 | 
			
		||||
                            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
 | 
			
		||||
                    ;;
 | 
			
		||||
@@ -241,7 +251,10 @@ _artixpkg_completion() {
 | 
			
		||||
                    ;;
 | 
			
		||||
                "artixpkg admin query"*)
 | 
			
		||||
                    case "${prev}" in
 | 
			
		||||
                        "-m"|"--maintainer"|"-t"|"--topic")
 | 
			
		||||
                        "-m"|"--maintainer")
 | 
			
		||||
                            COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
 | 
			
		||||
                            ;;
 | 
			
		||||
                        "-t"|"--topic")
 | 
			
		||||
                            # this flag expects a parameter
 | 
			
		||||
                            COMPREPLY=()
 | 
			
		||||
                            ;;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										205
									
								
								contrib/completion/zsh/_artixpkg.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								contrib/completion/zsh/_artixpkg.in
									
									
									
									
									
										Normal 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 "$@"
 | 
			
		||||
@@ -31,7 +31,7 @@ artixpkg_admin_usage() {
 | 
			
		||||
        $ ${COMMAND} query --topic mytopic
 | 
			
		||||
        $ ${COMMAND} topic --add mytopic libfoo
 | 
			
		||||
        $ ${COMMAND} team --add ${ARTIX_TEAMS[3]} libfoo
 | 
			
		||||
        $ ${COMMAND} --adopt libfoo libbar
 | 
			
		||||
        $ ${COMMAND} maintainer --adopt libfoo libbar
 | 
			
		||||
_EOF_
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,8 +5,6 @@
 | 
			
		||||
[[ -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
 | 
			
		||||
 | 
			
		||||
@@ -58,12 +56,12 @@ artixpkg_admin_maintainer() {
 | 
			
		||||
            ;;
 | 
			
		||||
            -a|--adopt)
 | 
			
		||||
                ADOPT=1
 | 
			
		||||
                RUNCMD+=" $1 $maintainer"
 | 
			
		||||
                RUNCMD+=" $1"
 | 
			
		||||
                shift
 | 
			
		||||
            ;;
 | 
			
		||||
            -o|--orphan)
 | 
			
		||||
                ORPHAN=1
 | 
			
		||||
                RUNCMD+=" $1 $orphan"
 | 
			
		||||
                RUNCMD+=" $1"
 | 
			
		||||
                shift
 | 
			
		||||
            ;;
 | 
			
		||||
            --)
 | 
			
		||||
@@ -81,7 +79,9 @@ artixpkg_admin_maintainer() {
 | 
			
		||||
 | 
			
		||||
    pkgbases+=("$@")
 | 
			
		||||
 | 
			
		||||
    load_makepkg_config
 | 
			
		||||
    # shellcheck source=src/lib/pkg/packager.sh
 | 
			
		||||
    source "${LIBDIR}"/pkg/packager.sh
 | 
			
		||||
 | 
			
		||||
    if [[ -n ${PACKAGER} ]]; then
 | 
			
		||||
        if ! packager_name=$(get_packager_name "${PACKAGER}") || \
 | 
			
		||||
            ! packager_email=$(get_packager_email "${PACKAGER}"); then
 | 
			
		||||
@@ -90,9 +90,11 @@ artixpkg_admin_maintainer() {
 | 
			
		||||
        if ! is_packager_name_valid "${packager_name}"; then
 | 
			
		||||
            die "invalid PACKAGER '${PACKAGER}' in makepkg.conf"
 | 
			
		||||
        fi
 | 
			
		||||
        if is_packager_email_official "${packager_email}"; then
 | 
			
		||||
            maintainer="maintainer-${packager_name}"
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    maintainer="maintainer-${packager_name}"
 | 
			
		||||
 | 
			
		||||
    if [[ -n ${GIT_TOKEN} ]]; then
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -196,7 +196,6 @@ remove_all_topics() {
 | 
			
		||||
        -H "Authorization: token ${GIT_TOKEN}" \
 | 
			
		||||
        -d "$json"
 | 
			
		||||
    stat_done
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#}}}
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -25,9 +26,10 @@ artixpkg_git_usage() {
 | 
			
		||||
    EXAMPLES
 | 
			
		||||
        $ ${COMMAND} clone libfoo linux libbar
 | 
			
		||||
        $ ${COMMAND} clone --maintainer tux
 | 
			
		||||
        $ ${COMMAND} config --topic mytopic
 | 
			
		||||
        $ ${COMMAND} config --maintainer tux
 | 
			
		||||
        $ ${COMMAND} clone --search mytopic
 | 
			
		||||
        $ ${COMMAND} config libfoo
 | 
			
		||||
        $ ${COMMAND} create -c libfoo
 | 
			
		||||
        $ ${COMMAND} ci -a ${AGENTS[1]} libfoo
 | 
			
		||||
_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
 | 
			
		||||
 
 | 
			
		||||
@@ -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,7 +11,7 @@ source "${LIBDIR}"/pkg/db/db.sh
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
artixpkg_ci_config_usage() {
 | 
			
		||||
artixpkg_git_ci_usage() {
 | 
			
		||||
    local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
 | 
			
		||||
    cat <<- _EOF_
 | 
			
		||||
    Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
 | 
			
		||||
@@ -19,50 +19,35 @@ 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
 | 
			
		||||
    local CREATED=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
 | 
			
		||||
        ;;
 | 
			
		||||
        --)
 | 
			
		||||
@@ -84,23 +69,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}"
 | 
			
		||||
@@ -125,6 +98,8 @@ artixpkg_ci_config() {
 | 
			
		||||
 | 
			
		||||
                git add "${REPO_CI}"
 | 
			
		||||
                git commit -m "add ci support"
 | 
			
		||||
 | 
			
		||||
                CREATED=1
 | 
			
		||||
            fi
 | 
			
		||||
 | 
			
		||||
            if [[ ! -f ${REPO_DB} ]]; then
 | 
			
		||||
@@ -139,14 +114,17 @@ artixpkg_ci_config() {
 | 
			
		||||
                fi
 | 
			
		||||
                git add "${REPO_DB}"
 | 
			
		||||
                git commit -m "create repo db"
 | 
			
		||||
 | 
			
		||||
            fi
 | 
			
		||||
 | 
			
		||||
            if (( SWITCH )); then
 | 
			
		||||
                msg "Switching to agent (${AGENT}) ..."
 | 
			
		||||
                write_jenkinsfile "${AGENT}"
 | 
			
		||||
 | 
			
		||||
                git add "${REPO_CI}"
 | 
			
		||||
                git commit -m "switch agent"
 | 
			
		||||
                if (( ! CREATED )); then
 | 
			
		||||
                    git add "${REPO_CI}"
 | 
			
		||||
                    git commit -m "switch agent"
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
 | 
			
		||||
        )
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,6 @@
 | 
			
		||||
[[ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -91,8 +88,10 @@ artixpkg_git_config() {
 | 
			
		||||
 | 
			
		||||
    # Load makepkg.conf variables to be available for packager identity
 | 
			
		||||
    msg "Collecting packager identity from makepkg.conf"
 | 
			
		||||
    # shellcheck source=config/makepkg/x86_64.conf
 | 
			
		||||
    load_makepkg_config
 | 
			
		||||
 | 
			
		||||
    # shellcheck source=src/lib/pkg/packager.sh
 | 
			
		||||
    source "${LIBDIR}"/pkg/packager.sh
 | 
			
		||||
 | 
			
		||||
    if [[ -n ${PACKAGER} ]]; then
 | 
			
		||||
        if ! packager_name=$(get_packager_name "${PACKAGER}") || \
 | 
			
		||||
            ! packager_email=$(get_packager_email "${PACKAGER}"); then
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,14 +16,12 @@ artixpkg_git_push_usage() {
 | 
			
		||||
    OPTIONS
 | 
			
		||||
        -m, --maintainer NAME      Push all packages of the named maintainer
 | 
			
		||||
        -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
 | 
			
		||||
 | 
			
		||||
    EXAMPLES
 | 
			
		||||
        $ ${COMMAND} libfoo linux libbar
 | 
			
		||||
        $ ${COMMAND} --maintainer tux
 | 
			
		||||
        $ ${COMMAND} --topic mytopic
 | 
			
		||||
        $ ${COMMAND} -j 8 --topic mytopic
 | 
			
		||||
_EOF_
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -38,11 +36,6 @@ artixpkg_git_push() {
 | 
			
		||||
    # options
 | 
			
		||||
    local MAINTAINER=
 | 
			
		||||
    local TOPIC=
 | 
			
		||||
    local CONFIGURE_OPTIONS=()
 | 
			
		||||
    local jobs=
 | 
			
		||||
    jobs=$(nproc)
 | 
			
		||||
 | 
			
		||||
    local command=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
 | 
			
		||||
 | 
			
		||||
    while (( $# )); do
 | 
			
		||||
        case $1 in
 | 
			
		||||
@@ -60,11 +53,6 @@ artixpkg_git_push() {
 | 
			
		||||
                TOPIC="$2"
 | 
			
		||||
                shift 2
 | 
			
		||||
            ;;
 | 
			
		||||
            -j|--jobs)
 | 
			
		||||
                (( $# <= 1 )) && die "missing argument for %s" "$1"
 | 
			
		||||
                jobs=$2
 | 
			
		||||
                shift 2
 | 
			
		||||
            ;;
 | 
			
		||||
            --)
 | 
			
		||||
                shift
 | 
			
		||||
                break
 | 
			
		||||
@@ -90,19 +78,6 @@ artixpkg_git_push() {
 | 
			
		||||
        mapfile -t pkgbases < <(search_topic "${TOPIC}" | yq -P -r '.data | .[].name' | sort)
 | 
			
		||||
    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
 | 
			
		||||
        if [[ -d ${pkgbase} ]]; then
 | 
			
		||||
            ( cd "${pkgbase}" || return
 | 
			
		||||
 
 | 
			
		||||
@@ -49,3 +49,6 @@ is_packager_email_official() {
 | 
			
		||||
    fi
 | 
			
		||||
    return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# shellcheck source=config/makepkg/x86_64.conf
 | 
			
		||||
load_makepkg_config
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,8 @@ source "${LIBDIR}"/pkg/db/db.sh
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
load_makepkg_config
 | 
			
		||||
 | 
			
		||||
has_remote_changes() {
 | 
			
		||||
    local status
 | 
			
		||||
    msg "Checking for remote changes ..."
 | 
			
		||||
@@ -41,9 +43,12 @@ artixpkg_repo_usage() {
 | 
			
		||||
        -h, --help     Show this help text
 | 
			
		||||
 | 
			
		||||
    EXAMPLES
 | 
			
		||||
        $ ${COMMAND} add world libfoo
 | 
			
		||||
        $ ${COMMAND} remove world libfoo
 | 
			
		||||
        $ ${COMMAND} move world-gremlins world libfoo
 | 
			
		||||
        $ ${COMMAND} add ${ARTIX_DB_MAP[2]} libfoo
 | 
			
		||||
        $ ${COMMAND} remove ${ARTIX_DB_MAP[2]} 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} show libfoo
 | 
			
		||||
_EOF_
 | 
			
		||||
 
 | 
			
		||||
@@ -7,22 +7,61 @@ ARTOOLS_INCLUDE_REPO_IMPORT_SH=1
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
PATCHDIR=${PATCHDIR:-"${WORKSPACE_DIR}/artix-patches"}
 | 
			
		||||
 | 
			
		||||
declare -A arch_map=(
 | 
			
		||||
    ["archlinux-mirrorlist"]="pacman-mirrorlist"
 | 
			
		||||
    ["artix-rebuild-order"]="arch-rebuild-order"
 | 
			
		||||
    ["virtualbox-host-modules-artix"]="virtualbox-host-modules-arch"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
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(){
 | 
			
		||||
    local name="$1"
 | 
			
		||||
    case "${name}" in
 | 
			
		||||
        linux|linux-lts|linux-zen|linux-hardened|linux-rt*)
 | 
			
		||||
            sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i PKGBUILD
 | 
			
		||||
            sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
 | 
			
		||||
                -i config
 | 
			
		||||
        ;;
 | 
			
		||||
        *)
 | 
			
		||||
            sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
 | 
			
		||||
                -e 's|(Arch Linux)|(Artix Linux)|' \
 | 
			
		||||
                -e 's|arch-meson|artix-meson|' \
 | 
			
		||||
                -i PKGBUILD
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
    local patches="${PATCHDIR}/patches/${name}"
 | 
			
		||||
    sed -e 's|arch-meson|artix-meson|' -i PKGBUILD
 | 
			
		||||
 | 
			
		||||
    if "${PATCH_MAINTAINER}" && [ -n "${PACKAGER}" ]; then
 | 
			
		||||
        sed -e 's|# Maintainer:|# Contributor:|' -i PKGBUILD
 | 
			
		||||
        printf '%s\n%s\n' "# Maintainer: ${PACKAGER}" "$(cat "PKGBUILD")" >"PKGBUILD"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ -d "${patches}" ]; then
 | 
			
		||||
        if [ -f "${patches}/env.txt" ]; then
 | 
			
		||||
            while read -r line; do
 | 
			
		||||
                IFS="=" read -r key value <<< "$line"
 | 
			
		||||
                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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -96,6 +135,8 @@ artixpkg_repo_import() {
 | 
			
		||||
        esac
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    update_patches
 | 
			
		||||
 | 
			
		||||
    pkgbases+=("$@")
 | 
			
		||||
 | 
			
		||||
    for pkgbase in "${pkgbases[@]}"; do
 | 
			
		||||
@@ -108,9 +149,11 @@ artixpkg_repo_import() {
 | 
			
		||||
            fi
 | 
			
		||||
            ( cd "${pkgbase}" || return
 | 
			
		||||
 | 
			
		||||
                upstream="${arch_map["$pkgbase"]:-$pkgbase}"
 | 
			
		||||
 | 
			
		||||
                stat_busy "Checking for upstream url"
 | 
			
		||||
                if ! git config --local --get remote.upstream.url &>/dev/null; then
 | 
			
		||||
                    git remote add upstream "${GIT_UPSTREAM_URL}/${pkgbase}".git
 | 
			
		||||
                    git remote add upstream "${GIT_UPSTREAM_URL}/${upstream}".git
 | 
			
		||||
                fi
 | 
			
		||||
                stat_done
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,10 @@ load_pkg_config(){
 | 
			
		||||
 | 
			
		||||
    DBEXT=${DBEXT:-'gz'}
 | 
			
		||||
 | 
			
		||||
    PATCH_MAINTAINER=${PATCH_MAINTAINER:-false}
 | 
			
		||||
 | 
			
		||||
    PATCH_URL=${PATCH_URL:-"${GIT_SSH}:artix/artix-patches.git"}
 | 
			
		||||
 | 
			
		||||
    if [[ -z "${AGENTS[*]}" ]]; then
 | 
			
		||||
        AGENTS=(orion taurus)
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,6 @@ usage() {
 | 
			
		||||
 | 
			
		||||
    COMMANDS
 | 
			
		||||
        admin     Manage topics, teams and obsolete repos
 | 
			
		||||
        ci        Manage CI and build agent
 | 
			
		||||
        git       Manage Git packaging repositories and their configuration
 | 
			
		||||
        repo      Pacman database modification for package updates, moves, etc.
 | 
			
		||||
 | 
			
		||||
@@ -42,8 +41,6 @@ export _ARTOOLS_COMMAND='artixpkg'
 | 
			
		||||
# shellcheck source=src/lib/pkg/util.sh
 | 
			
		||||
source "${LIBDIR}"/pkg/util.sh
 | 
			
		||||
 | 
			
		||||
load_makepkg_config
 | 
			
		||||
 | 
			
		||||
cd "${TREE_DIR_ARTIX}"
 | 
			
		||||
 | 
			
		||||
# command checking
 | 
			
		||||
@@ -69,14 +66,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
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,6 @@ source "${LIBDIR}"/base/message.sh
 | 
			
		||||
# shellcheck source=src/lib/pkg/diff.sh
 | 
			
		||||
source "${LIBDIR}"/pkg/diff.sh
 | 
			
		||||
 | 
			
		||||
load_makepkg_config
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
    cat <<- _EOF_
 | 
			
		||||
        Usage: ${BASH_SOURCE[0]##*/} [OPTIONS]
 | 
			
		||||
 
 | 
			
		||||
@@ -181,7 +181,9 @@ else
 | 
			
		||||
    set_arch="${CARCH}"
 | 
			
		||||
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=$?
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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}"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user