Compare commits

..

12 Commits
0.30 ... 0.30.4

Author SHA1 Message Date
6787d5fafb merge branch 'artixpkg' 2023-05-25 20:57:42 +02:00
2a0c08e34b artixpkg git: fix config help examples 2023-05-25 17:02:57 +02:00
b48b056194 merge branch 'arch-patches' 2023-05-24 21:30:43 +02:00
50b71dfb55 artixpkg: add special rebuild repo names 2023-05-24 16:02:20 +02:00
f8075b7bd4 artixpkg: fix more help examples 2023-05-23 21:53:02 +02:00
0912e6f74a artixpkg: update all help 2023-05-22 23:31:01 +02:00
9af4fe14f2 artixpkg: fix repo help examples 2023-05-22 23:25:23 +02:00
943350f4ec artixpkg: fix repo help cmd 2023-05-22 23:17:08 +02:00
e8075e436d merge branch 'bug-fixes' 2023-05-22 22:49:35 +02:00
48804b67f1 artixpkg git: fix redirection 2023-05-22 22:22:47 +02:00
cf60c6f544 artixpkg repo import: fix typo 2023-05-22 17:38:16 +02:00
e39aeb62ca merge branch 'import' 2023-05-22 17:26:27 +02:00
13 changed files with 317 additions and 95 deletions

View File

@@ -205,7 +205,8 @@ diff_pkgs() {
[[ -f $oldpkg ]] || die "No such file: %s" "${oldpkg}" [[ -f $oldpkg ]] || die "No such file: %s" "${oldpkg}"
[[ -f $newpkg ]] || die "No such file: %s" "${newpkg}" [[ -f $newpkg ]] || die "No such file: %s" "${newpkg}"
DIFFOPTIONS+=(--label "${oldpkg}" --label "${newpkg}") local -a diffoptions
diffoptions=("${DIFFOPTIONS[@]}" --label "${oldpkg}" --label "${newpkg}")
if (( TARLIST )); then if (( TARLIST )); then
tar_list "$oldpkg" > "$TMPDIR/old" tar_list "$oldpkg" > "$TMPDIR/old"
@@ -226,7 +227,7 @@ diff_pkgs() {
# Resolve dynamic auto width one we know the content to diff # Resolve dynamic auto width one we know the content to diff
if [[ $DIFFWIDTH == --width=auto ]]; then if [[ $DIFFWIDTH == --width=auto ]]; then
AUTOLENGTH=$(file_diff_columns "$TMPDIR/old" "$TMPDIR/new") AUTOLENGTH=$(file_diff_columns "$TMPDIR/old" "$TMPDIR/new")
DIFFOPTIONS+=("--width=${AUTOLENGTH}") diffoptions+=("--width=${AUTOLENGTH}")
fi fi
# Print a header for side-by-side view as it lacks labels # Print a header for side-by-side view as it lacks labels
@@ -234,7 +235,7 @@ diff_pkgs() {
printf -- "--- %s\n+++ %s\n" "${oldpkg}" "${newpkg}" printf -- "--- %s\n+++ %s\n" "${oldpkg}" "${newpkg}"
fi fi
diff "${DIFFOPTIONS[@]}" "$TMPDIR/old" "$TMPDIR/new" diff "${diffoptions[@]}" "$TMPDIR/old" "$TMPDIR/new"
fi fi
if (( DIFFOSCOPE )); then if (( DIFFOSCOPE )); then

View File

@@ -22,14 +22,19 @@ stat_busy() {
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2
} }
stat_progress() {
# shellcheck disable=2059
printf "${BOLD}.${ALL_OFF}" >&2
}
stat_done() { stat_done() {
# shellcheck disable=2059 # shellcheck disable=2059
printf "${BOLD}done${ALL_OFF}\n" >&2 printf "${BOLD}done${ALL_OFF}\n" >&2
} }
lock_close() { lock_close() {
local fd=$1 local fd=$1
exec {fd}>&- exec {fd}>&-
} }
lock() { lock() {

View File

@@ -2,6 +2,11 @@
#{{{ base conf #{{{ base conf
prepare_dir(){
[[ ! -d $1 ]] && mkdir -p "$1"
return 0
}
if [[ -n $SUDO_USER ]]; then if [[ -n $SUDO_USER ]]; then
eval "USER_HOME=~$SUDO_USER" eval "USER_HOME=~$SUDO_USER"
else else
@@ -10,10 +15,7 @@ fi
USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools"
prepare_dir(){ prepare_dir "${USER_CONF_DIR}"
[[ ! -d $1 ]] && mkdir -p "$1"
return 0
}
load_base_config(){ load_base_config(){
@@ -33,7 +35,8 @@ load_base_config(){
#}}} #}}}
load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}"
prepare_dir "${WORKSPACE_DIR}" prepare_dir "${WORKSPACE_DIR}"
prepare_dir "${USER_CONF_DIR}"

View File

@@ -2,6 +2,15 @@
#{{{ gitea api #{{{ gitea api
get_compliant() {
local name=$1
printf "%s" "${name}" \
| sed -E 's/([a-zA-Z0-9]+)\+([a-zA-Z]+)/\1-\2/g' \
| sed -E 's/\+/plus/g' \
| sed -E 's/[^a-zA-Z0-9_\-\.]/-/g' \
| sed -E 's/[_\-]{2,}/-/g'
}
get_compliant_name(){ get_compliant_name(){
local gitname="$1" local gitname="$1"
case "$gitname" in case "$gitname" in
@@ -90,7 +99,7 @@ transfer_repo() {
list_all_repos() { list_all_repos() {
local url local url
url="${GIT_URL}/api/v1/orgs/packages/repos" url="${GIT_URL}/api/v1/orgs/packages/repos?limit=10000"
api_get "$url" \ api_get "$url" \
-H "accept: application/json" -H "accept: application/json"

View File

@@ -22,8 +22,9 @@ artixpkg_git_usage() {
EXAMPLES EXAMPLES
$ ${COMMAND} clone libfoo linux libbar $ ${COMMAND} clone libfoo linux libbar
$ ${COMMAND} clone --maintainer mynickname $ ${COMMAND} clone --maintainer maintainer-mynickname
$ ${COMMAND} config * $ ${COMMAND} config -t libfoo
$ ${COMMAND} config -u libfoo
$ ${COMMAND} create libfoo $ ${COMMAND} create libfoo
_EOF_ _EOF_
} }

View File

@@ -17,6 +17,7 @@ artixpkg_git_clone_usage() {
OPTIONS OPTIONS
-m, --maintainer=NAME Clone all packages of the named maintainer -m, --maintainer=NAME Clone all packages of the named maintainer
--protocol https Clone the repository over https
-t, --topic=NAME Clone all packages of the named topic -t, --topic=NAME Clone all packages of the named topic
-j, --jobs N Run up to N jobs in parallel (default: $(nproc)) -j, --jobs N Run up to N jobs in parallel (default: $(nproc))
--universe Clone all existing packages, useful for cache warming --universe Clone all existing packages, useful for cache warming
@@ -55,11 +56,21 @@ artixpkg_git_clone() {
artixpkg_git_clone_usage artixpkg_git_clone_usage
exit 0 exit 0
;; ;;
-u|--unprivileged) --protocol=https)
GIT_REPO_BASE_URL="${GIT_URL}/" GIT_REPO_BASE_URL="${GIT_URL}/"
CONFIGURE_OPTIONS+=("$1") CONFIGURE_OPTIONS+=("$1")
shift shift
;; ;;
--protocol)
(( $# <= 1 )) && die "missing argument for %s" "$1"
if [[ $2 == https ]]; then
GIT_REPO_BASE_URL=${GIT_PACKAGING_URL_HTTPS}
else
die "unsupported protocol: %s" "$2"
fi
CONFIGURE_OPTIONS+=("$1" "$2")
shift 2
;;
-m|--maintainer) -m|--maintainer)
(( $# <= 1 )) && die "missing argument for %s" "$1" (( $# <= 1 )) && die "missing argument for %s" "$1"
MAINTAINER="$2" MAINTAINER="$2"

View File

@@ -16,14 +16,15 @@ artixpkg_git_config_usage() {
OPTIONS OPTIONS
-t, --topic Set the maintainer topic via gitea api -t, --topic Set the maintainer topic via gitea api
-u, --upstream add upstream arch remote -u, --upstream Add upstream arch remote
--protocol https Configure remote url to use https
-j, --jobs N Run up to N jobs in parallel (default: $(nproc)) -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} config -t libfoo $ ${COMMAND} -t libfoo
$ ${COMMAND} config -u libfoo $ ${COMMAND} -u libfoo
$ ${COMMAND} config * $ ${COMMAND} *
_EOF_ _EOF_
} }
@@ -80,6 +81,7 @@ artixpkg_git_config() {
local GIT_REPO_BASE_URL=${GIT_URL} local GIT_REPO_BASE_URL=${GIT_URL}
local official=0 local official=0
local proto=https local proto=https
local proto_force=0
local jobs= local jobs=
jobs=$(nproc) jobs=$(nproc)
local paths=() local paths=()
@@ -106,6 +108,19 @@ artixpkg_git_config() {
UPSTREAM=1 UPSTREAM=1
shift shift
;; ;;
--protocol=https)
proto_force=1
shift
;;
--protocol)
(( $# <= 1 )) && die "missing argument for %s" "$1"
if [[ $2 == https ]]; then
proto_force=1
else
die "unsupported protocol: %s" "$2"
fi
shift 2
;;
-j|--jobs) -j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1" (( $# <= 1 )) && die "missing argument for %s" "$1"
jobs=$2 jobs=$2
@@ -149,8 +164,10 @@ artixpkg_git_config() {
fi fi
if is_packager_email_official "${packager_email}"; then if is_packager_email_official "${packager_email}"; then
official=1 official=1
proto=ssh if (( ! proto_force )); then
GIT_REPO_BASE_URL=${GIT_SSH} proto=ssh
GIT_REPO_BASE_URL=${GIT_PACKAGING_URL_SSH}
fi
fi fi
fi fi
@@ -217,7 +234,7 @@ artixpkg_git_config() {
local topic gitname local topic gitname
topic="maintainer-${packager_name}" topic="maintainer-${packager_name}"
gitname=$(get_compliant_name "${pkgbase}") gitname=$(get_compliant_name "${pkgbase}")
if ! add_topic "${gitname}" "${topic}" >/dev/null; then if ! add_topic "${gitname}" "${topic}"; then
warning "failed to set the maintainer topic: ${topic}" warning "failed to set the maintainer topic: ${topic}"
fi fi
fi fi
@@ -225,7 +242,7 @@ artixpkg_git_config() {
if (( UPSTREAM )); then if (( UPSTREAM )); then
local remote_url local remote_url
remote_url="${GIT_UPSTREAM_URL}/$pkgbase".git remote_url="${GIT_UPSTREAM_URL}/$pkgbase".git
if ! git remote add upstream "${remote_url}" >/dev/null; then if ! git remote add upstream "${remote_url}"; then
warning "failed to set the upstream: ${remote_url}" warning "failed to set the upstream: ${remote_url}"
fi fi
fi fi

View File

@@ -7,7 +7,7 @@ ARTOOLS_INCLUDE_GIT_CREATE_SH=1
source "${LIBDIR}"/pkg/git/clone.sh source "${LIBDIR}"/pkg/git/clone.sh
source "${LIBDIR}"/pkg/git/config.sh source "${LIBDIR}"/pkg/git/config.sh
source "${LIBDIR}"/pkg/git/ci/jenkins.sh source "${LIBDIR}"/pkg/ci/jenkins.sh
set -e set -e
@@ -19,7 +19,7 @@ artixpkg_git_create_usage() {
OPTIONS OPTIONS
-c, --clone Clone the Git repository after creation -c, --clone Clone the Git repository after creation
-t, --team=NAME Clone the Git repository after creation -t, --team=NAME Assign team name [default: world]
-h, --help Show this help text -h, --help Show this help text
EXAMPLES EXAMPLES

View File

@@ -8,7 +8,7 @@ ARTOOLS_INCLUDE_REPO_SH=1
set -e set -e
artixpkg_repo_usage() { artixpkg_repo_usage() {
local -r COMMAND=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}} local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_ cat <<- _EOF_
Usage: ${COMMAND} [COMMAND] [OPTIONS] Usage: ${COMMAND} [COMMAND] [OPTIONS]
@@ -16,14 +16,16 @@ artixpkg_repo_usage() {
add add and commit pkg to repo add add and commit pkg to repo
move move and commit pkg between repos move move and commit pkg between repos
remove remove and commit pkg from repo remove remove and commit pkg from repo
import import latest tag from arch upstream
OPTIONS OPTIONS
-h, --help Show this help text -h, --help Show this help text
EXAMPLES EXAMPLES
$ ${COMMAND} add libfoo extra $ ${COMMAND} add extra libfoo
$ ${COMMAND} remove libfoo extra $ ${COMMAND} remove extra libfoo
$ ${COMMAND} move libfoo extra-testing extra $ ${COMMAND} move extra-testing extra libfoo
$ ${COMMAND} import libfoo
_EOF_ _EOF_
} }
@@ -42,6 +44,8 @@ ARTIX_DB=(
multilib-staging multilib-staging
kde-unstable kde-unstable
gnome-unstable gnome-unstable
core-rebuild
extra-rebuild
) )
artixpkg_repo() { artixpkg_repo() {
@@ -60,7 +64,7 @@ artixpkg_repo() {
add) add)
_ARTOOLS_COMMAND+=" $1" _ARTOOLS_COMMAND+=" $1"
shift shift
# shellcheck source=lib/repo/add.sh # shellcheck source=lib/pkg/repo/add.sh
source "${LIBDIR}"/pkg/repo/add.sh source "${LIBDIR}"/pkg/repo/add.sh
artixpkg_repo_add "$@" artixpkg_repo_add "$@"
exit 0 exit 0
@@ -68,7 +72,7 @@ artixpkg_repo() {
move) move)
_ARTOOLS_COMMAND+=" $1" _ARTOOLS_COMMAND+=" $1"
shift shift
# shellcheck source=lib/repo/move.sh # shellcheck source=lib/pkg/repo/move.sh
source "${LIBDIR}"/pkg/repo/move.sh source "${LIBDIR}"/pkg/repo/move.sh
artixpkg_repo_move "$@" artixpkg_repo_move "$@"
exit 0 exit 0
@@ -76,11 +80,19 @@ artixpkg_repo() {
remove) remove)
_ARTOOLS_COMMAND+=" $1" _ARTOOLS_COMMAND+=" $1"
shift shift
# shellcheck source=lib/repo/remove.sh # shellcheck source=lib/pkg/repo/remove.sh
source "${LIBDIR}"/pkg/repo/remove.sh source "${LIBDIR}"/pkg/repo/remove.sh
artixpkg_repo_remove "$@" artixpkg_repo_remove "$@"
exit 0 exit 0
;; ;;
import)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=lib/pkg/repo/import.sh
source "${LIBDIR}"/pkg/repo/import.sh
artixpkg_repo_import "$@"
exit 0
;;
-*) -*)
die "invalid argument: %s" "$1" die "invalid argument: %s" "$1"
;; ;;

View File

@@ -24,7 +24,7 @@ artixpkg_repo_add_usage() {
EXAMPLES EXAMPLES
$ ${COMMAND} extra-testing libfoo $ ${COMMAND} extra-testing libfoo
$ ${COMMAND} -p extra-testing libfoo $ ${COMMAND} -p extra-testing libfoo
$ ${COMMAND} -tp extra-testing libfoo $ ${COMMAND} -t -p extra-testing libfoo
_EOF_ _EOF_
} }
@@ -98,32 +98,40 @@ artixpkg_repo_add() {
cp -r trunk/* "$CARCH/${DEST}"/ cp -r trunk/* "$CARCH/${DEST}"/
if [[ "${DEST}" != 'trunk' ]]; then pkgbuild="$CARCH/${DEST}"/PKGBUILD
pkgbuild="$CARCH/${DEST}"/PKGBUILD
fi
# shellcheck disable=1090 # shellcheck disable=1090
source "$pkgbuild" source "$pkgbuild"
local commit_msg local commit_msg
commit_msg=$(get_commit_msg) commit_msg=$(get_commit_msg)
msg "Action: %s" "$commit_msg"
git add . if [[ -n $(git status --porcelain --untracked-files=normal) ]]; then
git commit -m "$commit_msg"
if (( PUSH )); then msg 'Staging files'
msg "Push (${pkgbase})" for f in $(git ls-files --modified -o --directory); do
git push origin master git add "$f"
fi done
# stat_done
if (( SET_TOPIC )); then msg 'Commit'
# topics meta git commit -m "${commit_msg}"
if [[ -n ${GIT_TOKEN} ]]; then # stat_done
local topic="${DEST}"
local gitname=$(get_compliant_name "${pkgbase}") if (( PUSH )); then
if ! add_topic "${gitname}" "${topic}" >/dev/null; then msg "Push (${pkgbase})"
warning "failed to add pacman repo topic: ${topic}" git push origin master
# stat_done
fi
if (( SET_TOPIC )); then
# topics meta
if [[ -n ${GIT_TOKEN} ]]; then
local topic="${DEST}"
local gitname=$(get_compliant_name "${pkgbase}")
if ! add_topic "${gitname}" "${topic}" >/dev/null; then
warning "failed to add pacman repo topic: ${topic}"
fi
fi fi
fi fi
fi fi

135
lib/pkg/repo/import.sh Normal file
View File

@@ -0,0 +1,135 @@
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_REPO_IMPORT_SH:-} ]] || return 0
ARTOOLS_INCLUDE_REPO_IMPORT_SH=1
set -e
patch_pkgbase(){
local name="$1"
local pkgbuild
pkgbuild=trunk/PKGBUILD
sed -e 's|arch-meson|artix-meson|' -i "${pkgbuild}"
case "${name}" in
glibc)
msg "Patching %s" "${name}"
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i "${pkgbuild}"
;;
linux|linux-lts)
msg "Patching %s" "${name}"
sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i "${pkgbuild}"
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-i "$pkgpath"/config
;;
gstreamer|gst-plugins-*|licenses)
msg "Patching %s" "${name}"
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
-e 's|(Arch Linux)|(Artix Linux)|' \
-i "${pkgbuild}"
;;
esac
}
artixpkg_repo_import_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
OPTIONS
--switch TAG Switch the current trunk to a specified version tag
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} libfoo
$ ${COMMAND} libfoo --switch TAG
_EOF_
}
artixpkg_repo_import() {
if (( $# < 1 )); then
artixpkg_repo_import_usage
exit 0
fi
# options
local pkgbases=()
local pkgbase
local upstream_url
upstream_url="https://gitlab.archlinux.org/archlinux/packaging/packages"
local TAG
local rsync_args=()
rsync_args+=(-aWxvci --progress --delete-before --no-R --no-implied-dirs --exclude '.git')
while (( $# )); do
case $1 in
--switch=*)
TAG="${1#*=}"
shift
;;
-h|--help)
artixpkg_repo_import_usage
exit 0
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
break
;;
esac
done
pkgbases+=("$@")
for pkgbase in "${pkgbases[@]}"; do
if [[ -d "${pkgbase}" ]];then
if [[ ! -d "${pkgbase}/.git" ]]; then
error "Not a Git repository: ${pkgbase}"
continue
fi
( cd "${pkgbase}" || return
stat_busy "Checking for upstream url"
if ! git config --local --get remote.upstream.url &>/dev/null; then
git remote add upstream "${upstream_url}"/${pkgbase}.git
fi
stat_done
stat_busy "Fetching upstream tags"
git fetch upstream --tags
stat_done
local latest version
latest=$(git describe --tags FETCH_HEAD)
version="${latest}"
if [[ -n "${TAG}" ]]; then
version="${TAG}"
fi
stat_busy "Importing upstream changeset for ${version}"
git checkout "${version}" -b "${version}" &>/dev/null
local temp
temp=$(mktemp -d --tmpdir "${pkgbase}.XXXXXXXXXX")
rsync "${rsync_args[@]}" "$(pwd)"/ "${temp}"/ &>/dev/null
git checkout master &>/dev/null
git branch -D "${version}" &>/dev/null
rsync "${rsync_args[@]}" "${temp}"/ "$(pwd)"/trunk/ &>/dev/null
patch_pkgbase "${pkgbase}"
stat_done
)
fi
done
}

View File

@@ -21,7 +21,7 @@ artixpkg_repo_move_usage() {
EXAMPLES EXAMPLES
$ ${COMMAND} extra-testing extra libfoo $ ${COMMAND} extra-testing extra libfoo
$ ${COMMAND} -p extra-testing extra libfoo $ ${COMMAND} -p extra-testing extra libfoo
$ ${COMMAND} -tp extra-testing extra libfoo $ ${COMMAND} -t -p extra-testing extra libfoo
_EOF_ _EOF_
} }
@@ -103,39 +103,50 @@ artixpkg_repo_move() {
[[ ! -d "$CARCH" ]] && mkdir "$CARCH" [[ ! -d "$CARCH" ]] && mkdir "$CARCH"
[[ ! -d "$CARCH/${DEST}" ]] && mkdir "$CARCH/${DEST}" [[ ! -d "$CARCH/${DEST}" ]] && mkdir "$CARCH/${DEST}"
cp -r "$CARCH/${SRC}"/* "$CARCH/${DEST}"/ mv -T "$CARCH/${SRC}" "$CARCH/${DEST}"
git rm -r "$CARCH/${SRC}"
pkgbuild="$CARCH/${DEST}"/PKGBUILD
if [[ "${SRC}" != 'trunk' ]]; then
pkgbuild="$CARCH/${DEST}"/PKGBUILD
fi
# shellcheck disable=1090 # shellcheck disable=1090
source "$pkgbuild" source "$pkgbuild"
local commit_msg local commit_msg
commit_msg=$(get_commit_msg) commit_msg=$(get_commit_msg)
msg "Action: %s" "$commit_msg"
git add . if [[ -n $(git status --porcelain --untracked-files=normal) ]]; then
git commit -m "$commit_msg"
if (( PUSH )); then # git add .
msg "Push (${pkgbase})" msg 'Staging files'
git push origin master for f in $(git ls-files --deleted); do
fi git rm "$f"
done
for f in $(git ls-files -o --unmerged); do
git add "$f"
done
# stat_done
if (( SET_TOPIC )); then msg 'Commit'
# topics meta git commit -m "${commit_msg}"
if [[ -n ${GIT_TOKEN} ]]; then # stat_done
local topic="${DEST}"
local gitname=$(get_compliant_name "${pkgbase}") if (( PUSH )); then
if ! add_topic "${gitname}" "${topic}" >/dev/null; then msg "Push (${pkgbase})"
warning "failed to add pacman repo topic: ${topic}" git push origin master
fi # stat_done
topic="${SRC}" fi
if ! remove_topic "${gitname}" "${topic}" >/dev/null; then
warning "failed to remove pacman repo topic: ${topic}" if (( SET_TOPIC )); then
# topics meta
if [[ -n ${GIT_TOKEN} ]]; then
local topic="${DEST}"
local gitname=$(get_compliant_name "${pkgbase}")
if ! add_topic "${gitname}" "${topic}" >/dev/null; then
warning "failed to add pacman repo topic: ${topic}"
fi
topic="${SRC}"
if ! remove_topic "${gitname}" "${topic}" >/dev/null; then
warning "failed to remove pacman repo topic: ${topic}"
fi
fi fi
fi fi
fi fi

View File

@@ -21,7 +21,7 @@ artixpkg_repo_remove_usage() {
EXAMPLES EXAMPLES
$ ${COMMAND} extra-testing libfoo $ ${COMMAND} extra-testing libfoo
$ ${COMMAND} -p extra-testing libfoo $ ${COMMAND} -p extra-testing libfoo
$ ${COMMAND} -tp extra-testing libfoo $ ${COMMAND} -t -p extra-testing libfoo
_EOF_ _EOF_
} }
@@ -91,35 +91,44 @@ artixpkg_repo_remove() {
die "No PKGBUILD found in (%s)" "trunk" die "No PKGBUILD found in (%s)" "trunk"
fi fi
if [[ "${DEST}" != 'trunk' ]]; then pkgbuild="$CARCH/${DEST}"/PKGBUILD
pkgbuild="$CARCH/${DEST}"/PKGBUILD
fi
# shellcheck disable=1090 # shellcheck disable=1090
source "$pkgbuild" source "$pkgbuild"
local commit_msg local commit_msg
commit_msg=$(get_commit_msg) commit_msg=$(get_commit_msg)
msg "Action: %s" "$commit_msg"
if [[ "${DEST}" == 'trunk' ]];then
git rm -r "trunk"
else
git rm -r "$CARCH/${DEST}"
fi
if (( PUSH )); then rm -r "$CARCH/${DEST}"
msg "Push (${pkgbase})"
git push origin master
fi
if (( SET_TOPIC )); then if [[ -n $(git status --porcelain --untracked-files=normal) ]]; then
# topics meta
if [[ -n ${GIT_TOKEN} ]]; then msg 'Staging files'
local topic="${SRC}" for f in $(git ls-files --deleted); do
if ! remove_topic "${gitname}" "${topic}" >/dev/null; then git rm "$f"
warning "failed to remove pacman repo topic: ${topic}" done
# stat_done
msg 'Commit'
git commit -m "${commit_msg}"
# stat_done
if (( PUSH )); then
msg "Push (${pkgbase})"
git push origin master
# stat_done
fi
if (( SET_TOPIC )); then
# topics meta
if [[ -n ${GIT_TOKEN} ]]; then
local topic="${SRC}"
if ! remove_topic "${gitname}" "${topic}" >/dev/null; then
warning "failed to remove pacman repo topic: ${topic}"
fi
fi fi
fi fi
fi fi
) )
fi fi