Compare commits

..

1 Commits

Author SHA1 Message Date
Christian Heusel
8125a81a98 fix: Reduce verbosity if version file is missing
As we don't check for the existance of the version file this would
otherwise emit a useless error to the commandline:

    > ==> Building protobuf for [extra-staging] (x86_64)
    > cat: /var/lib/archbuild/extra-staging-x86_64/root/.arch-chroot: No such file or directory
    > ==> Creating chroot for [extra-staging] (x86_64)...

Fix this by just silencing the error, as the check later also covers the
case for empty `CURRENT_CHROOT_VERSION`.

Fixes #272

Component: archbuild
Signed-off-by: Christian Heusel <christian@heusel.eu>
2025-07-28 18:30:49 +02:00
7 changed files with 2 additions and 162 deletions

View File

@@ -150,7 +150,6 @@ _pkgctl_cmds=(
db
diff
issue
license
release
repo
search

View File

@@ -80,7 +80,7 @@ check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAG
makechrootpkg_args+=("${@:$OPTIND}")
# Automatically recreate the root chroot if a version mismatch is detected
CURRENT_CHROOT_VERSION=$(cat "${chroots}/${repo}-${arch}/root/.arch-chroot")
CURRENT_CHROOT_VERSION=$(cat "${chroots}/${repo}-${arch}/root/.arch-chroot" 2>/dev/null)
if [[ -f "${chroots}/${repo}-${arch}/root/.arch-chroot" ]] && [[ "$CURRENT_CHROOT_VERSION" != "$CHROOT_VERSION" ]]; then
warning "Recreating chroot '%s' (%s) as it is not at version %s" "${chroots}/${repo}-${arch}/root" "$CURRENT_CHROOT_VERSION" "$CHROOT_VERSION"
clean_first=true

View File

@@ -155,7 +155,7 @@ if (( ${#needsversioning[*]} )); then
if [[ ! -f "${file}" ]]; then
continue
fi
if ! git ls-files --error-unmatch "$file" >/dev/null; then
if ! git ls-files --error-unmatch "$file"; then
die "%s is not under version control" "$file"
fi
done

View File

@@ -901,61 +901,3 @@ gitlab_issue_state_color() {
fi
printf "%s" "${state_color}"
}
# Star a GitLab project
gitlab_api_star() {
local pkgbase=$1
local outfile project_path project_id
[[ -z ${WORKDIR:-} ]] && setup_workdir
outfile=$(mktemp --tmpdir="${WORKDIR}" pkgctl-gitlab-api.XXXXXXXXXX)
project_path=$(gitlab_project_name_to_path "${pkgbase}")
# Get project details first
if ! gitlab_api_call "${outfile}" GET "projects/archlinux%2fpackaging%2fpackages%2f${project_path}/"; then
return 1
fi
# Extract project ID
if ! project_id=$(jq --raw-output --exit-status '.id' < "${outfile}"); then
msg_error " failed to get project ID: $(cat "${outfile}")"
return 1
fi
# Star the project
if ! gitlab_api_call "${outfile}" POST "/projects/${project_id}/star"; then
return 1
fi
return 0
}
# Unstar a GitLab project
gitlab_api_unstar() {
local pkgbase=$1
local outfile project_path project_id
[[ -z ${WORKDIR:-} ]] && setup_workdir
outfile=$(mktemp --tmpdir="${WORKDIR}" pkgctl-gitlab-api.XXXXXXXXXX)
project_path=$(gitlab_project_name_to_path "${pkgbase}")
# Get project details first
if ! gitlab_api_call "${outfile}" GET "projects/archlinux%2fpackaging%2fpackages%2f${project_path}/"; then
return 1
fi
# Extract project ID
if ! project_id=$(jq --raw-output --exit-status '.id' < "${outfile}"); then
msg_error " failed to get project ID: $(cat "${outfile}")"
return 1
fi
# Unstar the project
if ! gitlab_api_call "${outfile}" POST "/projects/${project_id}/unstar"; then
return 1
fi
return 0
}

View File

@@ -188,13 +188,10 @@ path = [
"README.md",
"keys/**",
".SRCINFO",
".gitignore",
".nvchecker.toml",
"*.install",
"*.sysusers",
"*sysusers.conf",
"*.tmpfiles",
"*tmpfiles.conf",
"*.logrotate",
"*.pam",
"*.service",

View File

@@ -1,89 +0,0 @@
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${DEVTOOLS_INCLUDE_STAR_SH:-} ]] || return 0
DEVTOOLS_INCLUDE_STAR_SH=1
_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
# shellcheck source=src/lib/api/gitlab.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/api/gitlab.sh
set -e
pkgctl_star_usage() {
local -r COMMAND=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE...]
Star a package's GitLab project.
If no package is specified, the current directory's package will be used.
Multiple packages can be specified to star multiple projects at once.
Every usage of the star command must be authenticated. Consult the
'pkgctl auth' command to authenticate with GitLab or view the
authentication status.
OPTIONS
-h, --help Show this help text
-u, --unstar Remove star from the project instead
EXAMPLES
$ ${COMMAND} pacman
$ ${COMMAND} --unstar pacman
$ ${COMMAND} libfoo libbar
_EOF_
}
pkgctl_star() {
if (( $# == 0 )) && [[ ! -f PKGBUILD ]]; then
pkgctl_star_usage
exit 1
fi
# Check authentication
if [[ -z ${GITLAB_TOKEN} ]]; then
die "GitLab authentication required. Run 'pkgctl auth login' first"
fi
local unstar=0
local pkgbases=()
# option checking
while (( $# )); do
case $1 in
-h|--help)
pkgctl_star_usage
exit 0
;;
-u|--unstar)
unstar=1
shift
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
pkgbases+=("$1")
shift
;;
esac
done
# Use current directory if no packages specified
if (( ${#pkgbases[@]} == 0 )); then
pkgbases=("$(basename "$PWD")")
fi
# Star/unstar each package
for pkgbase in "${pkgbases[@]}"; do
if (( unstar )); then
msg "Unstarring %s..." "${pkgbase}"
gitlab_api_unstar "${pkgbase}"
else
msg "Starring %s..." "${pkgbase}"
gitlab_api_star "${pkgbase}"
fi
done
}

View File

@@ -29,7 +29,6 @@ usage() {
release Release step to commit, tag and upload build artifacts
repo Manage Git packaging repositories and their configuration
search Search for an expression across the GitLab packaging group
star Star a package's GitLab project
version Check and manage package versions against upstream
OPTIONS
@@ -139,14 +138,6 @@ while (( $# )); do
pkgctl_search "$@"
exit 0
;;
star)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/star.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/star.sh
pkgctl_star "$@"
exit 0
;;
version)
_DEVTOOLS_COMMAND+=" $1"
shift