forked from artix/artools
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6700e1a2e6 | |||
| f874c8c399 |
@@ -20,6 +20,7 @@ load_user_info
|
|||||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||||
|
|
||||||
create_first=false
|
create_first=false
|
||||||
|
rebuild=false
|
||||||
|
|
||||||
mkchrootpkg_args=(-c -n)
|
mkchrootpkg_args=(-c -n)
|
||||||
|
|
||||||
@@ -27,22 +28,11 @@ cmd=${0##*/}
|
|||||||
repo=${cmd#*-}
|
repo=${cmd#*-}
|
||||||
base_devel=('base-devel')
|
base_devel=('base-devel')
|
||||||
|
|
||||||
case ${repo} in
|
|
||||||
system|world|galaxy) repo='default' ;;
|
|
||||||
lib32*) base_devel+=('multilib-devel') ;;
|
|
||||||
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
pacman_conf="${DATADIR}/pacman-${repo}.conf"
|
|
||||||
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf"
|
|
||||||
|
|
||||||
makepkg_conf="${DATADIR}/makepkg.conf"
|
|
||||||
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf"
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]"
|
echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]"
|
||||||
echo " -r <dir> Create chroots in this directory"
|
echo " -r <dir> Create chroots in this directory"
|
||||||
echo ' -c Recreate the chroot before building'
|
echo ' -c Recreate the chroot before building'
|
||||||
|
echo ' -m Major rebuild'
|
||||||
echo ' -h This help'
|
echo ' -h This help'
|
||||||
echo ''
|
echo ''
|
||||||
echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}"
|
echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}"
|
||||||
@@ -52,17 +42,34 @@ usage() {
|
|||||||
|
|
||||||
orig_argv=("$0" "$@")
|
orig_argv=("$0" "$@")
|
||||||
|
|
||||||
opts='hcr:'
|
opts='hcmr:'
|
||||||
|
|
||||||
while getopts "${opts}" arg; do
|
while getopts "${opts}" arg; do
|
||||||
case "${arg}" in
|
case "${arg}" in
|
||||||
r) CHROOTS_PKG="$OPTARG" ;;
|
r) CHROOTS_PKG="$OPTARG" ;;
|
||||||
c) create_first=true ;;
|
c) create_first=true ;;
|
||||||
|
m) rebuild=true ;;
|
||||||
h|?) usage 0 ;;
|
h|?) usage 0 ;;
|
||||||
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
|
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if ${rebuild};then
|
||||||
|
repo='default'
|
||||||
|
else
|
||||||
|
case ${repo} in
|
||||||
|
system|world|galaxy) repo='default' ;;
|
||||||
|
lib32*) base_devel+=('multilib-devel') ;;
|
||||||
|
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
pacman_conf="${DATADIR}/pacman-${repo}.conf"
|
||||||
|
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf"
|
||||||
|
|
||||||
|
makepkg_conf="${DATADIR}/makepkg.conf"
|
||||||
|
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf"
|
||||||
|
|
||||||
check_root SOURCE_DATE_EPOCH
|
check_root SOURCE_DATE_EPOCH
|
||||||
|
|
||||||
mkchrootpkg_args+=("${@:$OPTIND}")
|
mkchrootpkg_args+=("${@:$OPTIND}")
|
||||||
|
|||||||
@@ -15,6 +15,62 @@
|
|||||||
. @libdir@/artools/util-base.sh
|
. @libdir@/artools/util-base.sh
|
||||||
. @libdir@/artools/util-pkg.sh
|
. @libdir@/artools/util-pkg.sh
|
||||||
|
|
||||||
|
find_cached_pkgfile() {
|
||||||
|
local searchdirs=("$PKGDEST" "$PWD") results=()
|
||||||
|
local pkg="$1"
|
||||||
|
for dir in "${searchdirs[@]}"; do
|
||||||
|
[[ -d $dir ]] || continue
|
||||||
|
results+=$(find "$dir" -type f -name "$pkg")
|
||||||
|
done
|
||||||
|
case ${#results[*]} in
|
||||||
|
0)
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
printf '%s\n' "${results[0]}"
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
error 'Multiple packages found:'
|
||||||
|
printf '\t%s\n' "${results[@]}" >&2
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
update_repo2(){
|
||||||
|
local repo="$1"
|
||||||
|
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
|
||||||
|
|
||||||
|
for name in ${passfiles[@]}; do
|
||||||
|
if pkgfile=$(find_cached_pkgfile "$name");then
|
||||||
|
info "Found: %s" "$name"
|
||||||
|
if ${add_pkg};then
|
||||||
|
local action='add'
|
||||||
|
packages+=("$name")
|
||||||
|
# checkpkg "${pkgfile}" || return 2
|
||||||
|
if ${sign_pkg};then
|
||||||
|
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
|
||||||
|
signfile ${pkgfile}
|
||||||
|
fi
|
||||||
|
ln -sf ${pkgfile}{,.sig} $repo_path/
|
||||||
|
elif ${del_pkg};then
|
||||||
|
local action='remove'
|
||||||
|
packages+=("$name")
|
||||||
|
[[ -e $repo_path/$name ]] && rm $repo_path/$name
|
||||||
|
[[ -e $repo_path/$name.sig ]] && rm $repo_path/$name.sig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
cd $repo_path
|
||||||
|
if [[ -n $action ]]; then
|
||||||
|
repo-$action -R $repo.${PKGDBEXT} ${packages[@]}
|
||||||
|
${linksdb} && links-$action $repo.${LINKSDBEXT} ${packages[@]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
update_repo(){
|
update_repo(){
|
||||||
local repo="$1" pkgfile ver
|
local repo="$1" pkgfile ver
|
||||||
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
|
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
|
||||||
@@ -100,6 +156,12 @@ done
|
|||||||
|
|
||||||
shift $(($OPTIND - 1))
|
shift $(($OPTIND - 1))
|
||||||
|
|
||||||
|
passfiles="$@"
|
||||||
|
|
||||||
prepare_dir "${REPOS_ROOT}"
|
prepare_dir "${REPOS_ROOT}"
|
||||||
|
|
||||||
update_repo "${dest_repo}"
|
if [[ -n ${passfiles[@]} ]]; then
|
||||||
|
update_repo2 "${dest_repo}"
|
||||||
|
else
|
||||||
|
update_repo "${dest_repo}"
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user