forked from artix/artools
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
0918ff749d | |||
3d3e4376c5 | |||
7499878d00 | |||
d9e99543f6 | |||
43983042dd | |||
1b5f09076f | |||
d770030869 | |||
ea06ec0b2e | |||
e67990ae04 | |||
b37d5f0236 | |||
989af04593 | |||
90f46d7ecc | |||
8e872ca9ca | |||
05c95b7025 | |||
442aee08df | |||
2c497f663b | |||
9a84cdedd5 | |||
bcc807ebbc | |||
6b00319bfc | |||
c24f625d81 | |||
15ca2bfc7e | |||
2487f4655e |
16
Makefile
16
Makefile
@@ -26,7 +26,8 @@ LIBS_BASE = \
|
||||
lib/util-msg.sh \
|
||||
lib/util-mount.sh \
|
||||
lib/util-chroot.sh \
|
||||
lib/util-fstab.sh
|
||||
lib/util-fstab.sh \
|
||||
lib/util-yaml.sh
|
||||
|
||||
SHARED_BASE = \
|
||||
$(wildcard data/pacman*.conf)
|
||||
@@ -41,6 +42,7 @@ BIN_PKG = \
|
||||
bin/buildtree \
|
||||
bin/deploypkg \
|
||||
bin/commitpkg \
|
||||
bin/comparepkg \
|
||||
bin/pkg2yaml
|
||||
|
||||
LIBS_PKG = \
|
||||
@@ -62,7 +64,9 @@ COMMITPKG_SYMS = \
|
||||
community-stagingpkg \
|
||||
multilibpkg \
|
||||
multilib-testingpkg \
|
||||
multilib-stagingpkg
|
||||
multilib-stagingpkg \
|
||||
kde-unstablepkg \
|
||||
gnome-unstablepkg
|
||||
|
||||
BUILDPKG_SYMS = \
|
||||
buildpkg-system \
|
||||
@@ -74,7 +78,9 @@ BUILDPKG_SYMS = \
|
||||
buildpkg-galaxy-goblins \
|
||||
buildpkg-lib32 \
|
||||
buildpkg-lib32-gremlins \
|
||||
buildpkg-lib32-goblins
|
||||
buildpkg-lib32-goblins \
|
||||
buildpkg-kde-wobble \
|
||||
buildpkg-gnome-wobble
|
||||
|
||||
DEPLOYPKG_SYMS = \
|
||||
deploypkg-system \
|
||||
@@ -86,7 +92,9 @@ DEPLOYPKG_SYMS = \
|
||||
deploypkg-galaxy-goblins \
|
||||
deploypkg-lib32 \
|
||||
deploypkg-lib32-gremlins \
|
||||
deploypkg-lib32-goblins
|
||||
deploypkg-lib32-goblins \
|
||||
deploypkg-kde-wobble \
|
||||
deploypkg-gnome-wobble
|
||||
|
||||
BIN_ISO = \
|
||||
bin/buildiso \
|
||||
|
@@ -11,13 +11,17 @@
|
||||
|
||||
VERSION=@version@
|
||||
|
||||
[[ -r @libdir@/util-msg.sh ]] && source @libdir@/util-msg.sh
|
||||
import @libdir@/util.sh
|
||||
import @libdir@/util-chroot.sh
|
||||
LIBDIR='@libdir@'
|
||||
SYSCONFDIR='@sysconfdir@'
|
||||
DATADIR='@datadir@'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-chroot.sh
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "@sysconfdir@/artools.conf"
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
create_first=false
|
||||
|
||||
@@ -33,10 +37,10 @@ case ${repo} in
|
||||
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
|
||||
esac
|
||||
|
||||
pacman_conf="/usr/share/artools/pacman-${repo}.conf"
|
||||
pacman_conf="${DATADIR}/pacman-${repo}.conf"
|
||||
[[ -f $AT_USERCONFDIR/pacman-${repo}.conf ]] && pacman_conf="$AT_USERCONFDIR/pacman-${repo}.conf"
|
||||
|
||||
makepkg_conf="/usr/share/artools/makepkg.conf"
|
||||
makepkg_conf="${DATADIR}/makepkg.conf"
|
||||
[[ -f $AT_USERCONFDIR/makepkg.conf ]] && makepkg_conf="$AT_USERCONFDIR/makepkg.conf"
|
||||
|
||||
usage() {
|
||||
@@ -52,7 +56,7 @@ usage() {
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='hc:r'
|
||||
opts='hcr:'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
|
193
bin/buildtree.in
193
bin/buildtree.in
@@ -26,141 +26,33 @@ pull_tree_arch(){
|
||||
for tree in ${tree_names[@]};do
|
||||
if [[ -d ${tree} ]];then
|
||||
cd ${tree}
|
||||
msg "Checking (%s)" "${tree}"
|
||||
pull_tree
|
||||
pull_tree "${tree}"
|
||||
cd ..
|
||||
else
|
||||
msg "Cloning (%s) ..." "$tree"
|
||||
clone_tree "${HOST_TREE_ARCH}/${tree}"
|
||||
clone_tree "${HOST_TREE_ARCH}" "${tree}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
config_tree(){
|
||||
local tree="$1"
|
||||
cd $tree
|
||||
git config --bool pull.rebase true
|
||||
git config commit.gpgsign true
|
||||
if [[ -n "${GPGKEY}" ]];then
|
||||
git config user.signingkey "${GPGKEY}"
|
||||
else
|
||||
warning "No GPGKEY configured in makepkg.conf!"
|
||||
fi
|
||||
cd ..
|
||||
}
|
||||
|
||||
pull_tree_artix(){
|
||||
cd ${TREE_DIR_ARTIX}
|
||||
for tree in ${tree_names[@]};do
|
||||
if [[ -d ${tree} ]];then
|
||||
config_tree "${tree}"
|
||||
cd ${tree}
|
||||
msg "Checking (%s)" "${tree}"
|
||||
pull_tree
|
||||
pull_tree "${tree}"
|
||||
cd ..
|
||||
else
|
||||
msg "Cloning (%s) ..." "$tree"
|
||||
clone_tree "${HOST_TREE_ARTIX}/${tree}"
|
||||
clone_tree "${HOST_TREE_ARTIX}" "${tree}"
|
||||
config_tree "${tree}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
mkrepo(){
|
||||
local pkg="$1" team="$2"
|
||||
local pkg_path=${TREE_DIR_ARTIX}/$team/$pkg
|
||||
|
||||
cd ${TREE_DIR_ARTIX}/$team
|
||||
|
||||
local org=$(get_pkg_org "$pkg")
|
||||
|
||||
create_repo "$pkg" "$org"
|
||||
|
||||
add_repo_to_team "$pkg" "$org" "$team"
|
||||
|
||||
subrepo_clone "$pkg" "$org"
|
||||
|
||||
prepare_dir "$pkg_path/trunk"
|
||||
|
||||
cd $pkg_path
|
||||
commit_jenkins_files
|
||||
}
|
||||
|
||||
show_version_table(){
|
||||
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
|
||||
|
||||
for tree in ${tree_names[@]};do
|
||||
|
||||
local git=$(find ${TREE_DIR_ARTIX}/$tree/ -mindepth 1 -maxdepth 1 -type d)
|
||||
|
||||
for package in ${git[@]}; do
|
||||
|
||||
local pkg=${package##*/}
|
||||
local artixrepo=$(find_repo "$package" "${unstable}" "${staging}")
|
||||
local artixshow=${artixrepo%-*}
|
||||
local pkgbuild=$package/repos/$artixrepo/PKGBUILD
|
||||
|
||||
if [[ -f $pkgbuild ]];then
|
||||
|
||||
source $pkgbuild 2>/dev/null
|
||||
local artixver=$(get_full_version $pkg)
|
||||
|
||||
local archpath=${TREE_DIR_ARCH}/$tree/$pkg
|
||||
local archrepo=$(find_repo "$archpath" "${unstable}" "${staging}")
|
||||
local archshow=${archrepo%-*}
|
||||
pkgbuild=$archpath/repos/$archrepo/PKGBUILD
|
||||
|
||||
if [[ -f $pkgbuild ]];then
|
||||
source $pkgbuild 2>/dev/null
|
||||
local archver=$(get_full_version $pkg)
|
||||
fi
|
||||
|
||||
if ${artix};then
|
||||
|
||||
if [ $(vercmp "$artixver" "$archver") -eq 0 ] || [ $(vercmp "$artixver" "$archver") -gt 0 ];then
|
||||
case $artixrepo in
|
||||
*staging*)
|
||||
if [[ "$archrepo" == "$artixrepo" ]];then
|
||||
msg_row "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
else
|
||||
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
;;
|
||||
*testing*)
|
||||
if [[ "$archrepo" == "$artixrepo" ]];then
|
||||
msg_row "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
else
|
||||
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
if [ $(vercmp "$artixver" "$archver") -lt 0 ];then
|
||||
${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
|
||||
if [ $(vercmp "$artixver" "$archver") -gt 0 ];then
|
||||
if [[ -n $archver ]] && [[ -n $archrepo ]];then
|
||||
${downgrades} && msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
unset pkgver epoch pkgrel artixver archver
|
||||
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
sync_pkg(){
|
||||
local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
|
||||
local src="$1" dest="$2" tree="$3"
|
||||
local src="$1" dest="$2"
|
||||
|
||||
info "Sync from archlinux (%s)" "$git_tree_arch"
|
||||
rsync "${rsync_args[@]}" $src/ $dest/
|
||||
}
|
||||
|
||||
@@ -193,47 +85,28 @@ from_arch(){
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
|
||||
|
||||
local package=${TREE_DIR_ARCH}/$git_tree_arch/$pkg
|
||||
local repo=$(find_repo "$package" "${unstable}")
|
||||
local repo=$(find_repo "$package")
|
||||
|
||||
src=$package/repos/$repo
|
||||
|
||||
local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "$pkg")
|
||||
dest=${TREE_DIR_ARTIX}/$git_tree_artix/$pkg/trunk
|
||||
dest=${TREE_DIR_ARTIX}/$git_tree_arch/$pkg/trunk
|
||||
|
||||
show_deps "$src" "$repo"
|
||||
|
||||
if [[ -d $dest ]];then
|
||||
cd ${TREE_DIR_ARTIX}/$git_tree_artix
|
||||
cd ${TREE_DIR_ARTIX}/$git_tree_arch
|
||||
|
||||
source $dest/PKGBUILD 2>/dev/null
|
||||
local artixver=$(get_full_version $pkg)
|
||||
|
||||
msg2 "Artix Version: %s" "$artixver"
|
||||
sync_pkg "$src" "$dest" "$git_tree_arch"
|
||||
patch_pkg "$pkg"
|
||||
else
|
||||
[[ $git_tree_arch == 'packages' ]] && git_tree_artix=$git_tree_arch
|
||||
[[ $git_tree_arch == 'community' ]] && git_tree_artix=$git_tree_arch
|
||||
|
||||
local pkg_path=${TREE_DIR_ARTIX}/$git_tree_artix/$pkg
|
||||
|
||||
cd ${TREE_DIR_ARTIX}/$git_tree_artix
|
||||
|
||||
local org=$(get_pkg_org "$pkg")
|
||||
|
||||
create_repo "$pkg" "$org"
|
||||
|
||||
add_repo_to_team "$pkg" "$org" "$git_tree_artix"
|
||||
|
||||
subrepo_clone "$pkg" "$org"
|
||||
|
||||
cd $pkg_path
|
||||
commit_jenkins_files
|
||||
|
||||
dest=$pkg_path/trunk
|
||||
|
||||
sync_pkg "$src" "$dest" "$git_tree_arch"
|
||||
subrepo_new "$pkg" "$git_tree_arch"
|
||||
fi
|
||||
|
||||
info "Sync from archlinux (%s)" "$git_tree_arch"
|
||||
sync_pkg "$src" "$dest"
|
||||
patch_pkg "$pkg"
|
||||
}
|
||||
|
||||
view_build(){
|
||||
@@ -242,7 +115,7 @@ view_build(){
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
|
||||
|
||||
local pkg_path=${TREE_DIR_ARCH}/$git_tree_arch/$pkg
|
||||
local repo=$(find_repo "$pkg_path" "${unstable}")
|
||||
local repo=$(find_repo "$pkg_path")
|
||||
|
||||
src=$pkg_path/repos/$repo
|
||||
|
||||
@@ -262,36 +135,28 @@ load_vars /etc/makepkg.conf
|
||||
|
||||
sync=false
|
||||
sync_arch=true
|
||||
compare=false
|
||||
unstable=false
|
||||
staging=true
|
||||
upgrades=false
|
||||
downgrades=false
|
||||
artix=false
|
||||
import=false
|
||||
view=false
|
||||
createnew=false
|
||||
conf=false
|
||||
|
||||
PACKAGE=''
|
||||
|
||||
tree_names=(packages community)
|
||||
TEAM=${tree_names[0]}
|
||||
SUBORG=''
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options]"
|
||||
echo ' -p <pkg> Package name'
|
||||
echo ' -t <team> Team name (only with -m)'
|
||||
echo ' -t <team> Team name (only with -n)'
|
||||
echo " [default: ${TEAM}]"
|
||||
echo ' -o <org> Org of subrepo (only with -c)'
|
||||
echo " -s Clone or pull repos"
|
||||
echo " -z Don't clone or pull arch repos"
|
||||
echo ' -c Compare packages'
|
||||
echo ' -u Show upgrade packages'
|
||||
echo ' -d Show downgrade packages'
|
||||
echo ' -a Show testing packages'
|
||||
echo " -y Don't inlcude staging packages"
|
||||
echo ' -x Include unstable kde and gnome'
|
||||
echo ' -i Import a package from arch repos'
|
||||
echo ' -m Make new remote subrepo and clone it'
|
||||
echo ' -n Make new remote subrepo and clone it'
|
||||
echo ' -c Configure subrepo url'
|
||||
echo ' -v View package depends'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
@@ -301,23 +166,19 @@ usage() {
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='p:t:csudayimzxvh'
|
||||
opts='p:t:o:csinzvh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
p) PACKAGE="$OPTARG" ;;
|
||||
t) TEAM="$OPTARG" ;;
|
||||
o) SUBORG="$OPTARG" ;;
|
||||
s) sync=true ;;
|
||||
z) sync_arch=false ;;
|
||||
c) compare=true ;;
|
||||
u) upgrades=true ;;
|
||||
d) downgrades=true ;;
|
||||
a) artix=true ;;
|
||||
y) staging=false ;;
|
||||
i) import=true ;;
|
||||
m) createnew=true ;;
|
||||
n) createnew=true ;;
|
||||
v) view=true ;;
|
||||
x) unstable=true ;;
|
||||
c) conf=true ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
@@ -332,8 +193,8 @@ ${sync} && sync_repos
|
||||
|
||||
${view} && view_build "${PACKAGE}"
|
||||
|
||||
${compare} && show_version_table
|
||||
|
||||
${import} && from_arch "${PACKAGE}"
|
||||
|
||||
${createnew} && mkrepo "${PACKAGE}" "${TEAM}"
|
||||
${createnew} && subrepo_new "${PACKAGE}" "${TEAM}"
|
||||
|
||||
${conf} && subrepo_config "${PACKAGE}" "${SUBORG}"
|
||||
|
@@ -38,6 +38,8 @@ commit_pkg(){
|
||||
local ver=$(get_full_version "${PACKAGE}")
|
||||
local commit_msg=""
|
||||
|
||||
local head=$(get_local_head)
|
||||
|
||||
if ${remove};then
|
||||
local action='remove'
|
||||
if [[ "${REPO_SRC}" == 'trunk' ]];then
|
||||
@@ -61,14 +63,12 @@ commit_pkg(){
|
||||
cd ${TREE_DIR_ARTIX}/${git_tree}
|
||||
|
||||
if ${push};then
|
||||
msg2 "Check (%s)" "${git_tree}"
|
||||
git pull origin master
|
||||
pull_tree "${git_tree}" "$head"
|
||||
|
||||
msg2 "Update (%s)" "${PACKAGE}"
|
||||
subrepo_push "${PACKAGE}"
|
||||
subrepo_clean "${PACKAGE}"
|
||||
# sleep 1
|
||||
msg2 "Update (%s)" "${git_tree}"
|
||||
git push origin master
|
||||
push_tree "${git_tree}"
|
||||
fi
|
||||
git prune
|
||||
else
|
||||
@@ -85,6 +85,8 @@ symlink_commit_pkg(){
|
||||
[[ $arch == 'any' ]] && CARCH=any
|
||||
local ver=$(get_full_version "${PACKAGE}")
|
||||
|
||||
local head=$(get_local_head)
|
||||
|
||||
if [[ ${REPO_SRC} == 'trunk' ]];then
|
||||
local action='add'
|
||||
local dest="${REPO_DEST}-$CARCH"
|
||||
@@ -114,14 +116,12 @@ symlink_commit_pkg(){
|
||||
cd ${TREE_DIR_ARTIX}/${git_tree}
|
||||
|
||||
if ${push};then
|
||||
msg2 "Check (%s)" "${git_tree}"
|
||||
git pull origin master
|
||||
pull_tree "${git_tree}" "$head"
|
||||
|
||||
msg2 "Update (%s)" "${PACKAGE}"
|
||||
subrepo_push "${PACKAGE}"
|
||||
subrepo_clean "${PACKAGE}"
|
||||
# sleep 1
|
||||
msg2 "Update (%s)" "${git_tree}"
|
||||
git push origin master
|
||||
push_tree "${git_tree}"
|
||||
fi
|
||||
git prune
|
||||
else
|
||||
|
139
bin/comparepkg.in
Normal file
139
bin/comparepkg.in
Normal file
@@ -0,0 +1,139 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
VERSION=@version@
|
||||
|
||||
LIBDIR='@libdir@'
|
||||
SYSCONFDIR='@sysconfdir@'
|
||||
DATADIR='@datadir@'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-pkg.sh
|
||||
|
||||
show_version_table(){
|
||||
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
|
||||
|
||||
for tree in ${tree_names[@]};do
|
||||
|
||||
local git=$(find ${TREE_DIR_ARTIX}/$tree/ -mindepth 1 -maxdepth 1 -type d)
|
||||
|
||||
for package in ${git[@]}; do
|
||||
|
||||
local pkg=${package##*/}
|
||||
local artixrepo=$(find_repo "$package" "${staging}" "${unstable}")
|
||||
local artixshow=${artixrepo%-*}
|
||||
local pkgbuild=$package/repos/$artixrepo/PKGBUILD
|
||||
|
||||
if [[ -f $pkgbuild ]];then
|
||||
|
||||
source $pkgbuild 2>/dev/null
|
||||
local artixver=$(get_full_version $pkg)
|
||||
|
||||
local archpath=$(get_import_path $pkg)
|
||||
|
||||
local archrepo=$(find_repo "$archpath" "${staging}" "${unstable}")
|
||||
|
||||
local archshow=${archrepo%-*}
|
||||
pkgbuild=$archpath/repos/$archrepo/PKGBUILD
|
||||
|
||||
if [[ -f $pkgbuild ]];then
|
||||
source $pkgbuild 2>/dev/null
|
||||
local archver=$(get_full_version $pkg)
|
||||
fi
|
||||
|
||||
local result=$(vercmp "$artixver" "$archver")
|
||||
|
||||
local repomatch=false
|
||||
[[ "$archrepo" == "$artixrepo" ]] && repomatch=true
|
||||
|
||||
if ${move};then
|
||||
|
||||
if [ $result -gt -1 ];then
|
||||
case $artixrepo in
|
||||
*testing*|*staging*)
|
||||
if $repomatch;then
|
||||
msg_row "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
else
|
||||
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
elif ${upgrades};then
|
||||
|
||||
if [ $result -eq -1 ];then
|
||||
msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
|
||||
elif ${downgrades};then
|
||||
|
||||
if [ $result -eq 1 ];then
|
||||
if [[ -n $archver ]] && [[ -n $archrepo ]];then
|
||||
msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
unset pkgver epoch pkgrel artixver archver pkgbuild archpath
|
||||
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
unstable=false
|
||||
staging=true
|
||||
upgrades=false
|
||||
downgrades=false
|
||||
move=false
|
||||
|
||||
tree_names=(packages community)
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options]"
|
||||
echo ' -u Show upgrade packages'
|
||||
echo ' -d Show downgrade packages'
|
||||
echo ' -m Show packages to move'
|
||||
echo " -x Don't inlcude staging packages"
|
||||
echo ' -y Include unstable kde and gnome'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
echo ''
|
||||
exit $1
|
||||
}
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='udmxyh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
u) upgrades=true ;;
|
||||
d) downgrades=true ;;
|
||||
m) move=true ;;
|
||||
x) staging=false ;;
|
||||
y) unstable=true ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
show_version_table
|
@@ -11,9 +11,13 @@
|
||||
|
||||
VERSION=@version@
|
||||
|
||||
[[ -r @libdir@/util-msg.sh ]] && source @libdir@/util-msg.sh
|
||||
import @libdir@/util.sh
|
||||
import @libdir@/util-pkg.sh
|
||||
LIBDIR='@libdir@'
|
||||
SYSCONFDIR='@sysconfdir@'
|
||||
DATADIR='@datadir@'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-pkg.sh
|
||||
|
||||
update_repo(){
|
||||
local repo="$1" pkgfile ver ext=db.tar.xz
|
||||
@@ -51,7 +55,7 @@ update_repo(){
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "@sysconfdir@/artools.conf"
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
|
144
bin/pkg2yaml.in
144
bin/pkg2yaml.in
@@ -11,34 +11,138 @@
|
||||
|
||||
VERSION=@version@
|
||||
|
||||
VERSION=0.10.4.r2.gd0e3c4e
|
||||
LIBDIR='@libdir@'
|
||||
|
||||
if [[ -f "$1"/PKGBUILD ]]; then
|
||||
LIBRARY=${LIBRARY:-'/usr/share/makepkg'}
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util-yaml.sh
|
||||
|
||||
for lib in "$LIBRARY"/*.sh; do
|
||||
source "$lib"
|
||||
LIBRARY=${LIBRARY:-'/usr/share/makepkg'}
|
||||
|
||||
for lib in "$LIBRARY"/*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
source /etc/makepkg.conf
|
||||
|
||||
write_attr(){
|
||||
local ident1="$1" ident2="$2" ident3="$3"
|
||||
local attrname=$4 attrvalues=("${@:5}")
|
||||
|
||||
# normalize whitespace, strip leading and trailing
|
||||
attrvalues=("${attrvalues[@]//+([[:space:]])/ }")
|
||||
attrvalues=("${attrvalues[@]#[[:space:]]}")
|
||||
attrvalues=("${attrvalues[@]%[[:space:]]}")
|
||||
|
||||
case $attrname in
|
||||
makedepends|checkdepends|depends|provides|arch)
|
||||
Yaml+=$(write_yaml_map $ident1 "$attrname")
|
||||
for v in ${attrvalues[@]};do
|
||||
Yaml+=$(write_yaml_seq $ident2 "$v")
|
||||
done
|
||||
;;
|
||||
*)
|
||||
for v in ${attrvalues[@]};do
|
||||
Yaml+=$(write_yaml_map $ident3 "$attrname" "$v")
|
||||
done
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
extract_info() {
|
||||
local pkgname=$1 attrname=$2 isarray=$3 outvalue=
|
||||
|
||||
if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then
|
||||
[[ -z $pkgname ]] && write_attr 2 4 2 "$attrname" "${outvalue[@]}"
|
||||
[[ -n $pkgname ]] && write_attr 4 6 2 "$attrname" "${outvalue[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
write_details() {
|
||||
local attr package_arch a
|
||||
local multivalued_arch_attrs=(provides depends makedepends checkdepends)
|
||||
|
||||
local singlevalued=()
|
||||
local multivalued=(arch provides depends checkdepends)
|
||||
|
||||
if [[ -z "$1" ]];then
|
||||
singlevalued=(pkgver pkgrel epoch)
|
||||
multivalued=(arch provides depends makedepends checkdepends)
|
||||
fi
|
||||
|
||||
for attr in "${singlevalued[@]}"; do
|
||||
extract_info "$1" "$attr" 0
|
||||
done
|
||||
. /etc/makepkg.conf
|
||||
|
||||
. "$1"/PKGBUILD
|
||||
for attr in "${multivalued[@]}"; do
|
||||
extract_info "$1" "$attr" 1
|
||||
done
|
||||
|
||||
pkgfile=$(print_all_package_names)
|
||||
fi
|
||||
get_pkgbuild_attribute "$1" 'arch' 1 'package_arch'
|
||||
for a in "${package_arch[@]}"; do
|
||||
# 'any' is special. there's no support for, e.g. depends_any.
|
||||
[[ $a = any ]] && continue
|
||||
|
||||
NL=$'\n'
|
||||
for attr in "${multivalued_arch_attrs[@]}"; do
|
||||
extract_info "$1" "${attr}_$a" 1
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
Yaml="%YAML 1.2"$NL
|
||||
Yaml+="---"$NL
|
||||
write_pkg_yaml(){
|
||||
local pkgfile=$(print_all_package_names)
|
||||
|
||||
Yaml+="pkgfile:"$NL
|
||||
for f in ${pkgfile[@]};do
|
||||
Yaml+=" - ${f##*/}"$NL
|
||||
Yaml=$(write_yaml_header)
|
||||
|
||||
Yaml+=$(write_empty_line)
|
||||
|
||||
Yaml+=$(write_yaml_map 0 "pkgbase")
|
||||
Yaml+=$(write_yaml_map 2 "pkgname" "${pkgbase:-$pkgname}")
|
||||
${details} && write_details ''
|
||||
|
||||
Yaml+=$(write_empty_line)
|
||||
|
||||
Yaml+=$(write_yaml_map 0 "package")
|
||||
for pkg in "${pkgname[@]}"; do
|
||||
Yaml+=$(write_yaml_seq_map 2 "pkgname" "$pkg")
|
||||
${details} && write_details "$pkg"
|
||||
done
|
||||
|
||||
Yaml+=$(write_empty_line)
|
||||
|
||||
Yaml+=$(write_yaml_map 0 "pkgfile")
|
||||
for f in ${pkgfile[@]};do
|
||||
Yaml+=$(write_yaml_seq 2 "${f##*/}")
|
||||
done
|
||||
|
||||
Yaml+=$(write_empty_line)
|
||||
|
||||
printf '%s' "${Yaml}"
|
||||
}
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options]"
|
||||
echo " -d Don't include details"
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
exit $1
|
||||
}
|
||||
|
||||
details=true
|
||||
|
||||
opts='dh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
d) details=false ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
Yaml+="pkgname:"$NL
|
||||
for n in ${pkgname[@]};do
|
||||
Yaml+=" - ${n##*/}"$NL
|
||||
done
|
||||
shift $(( $OPTIND - 1 ))
|
||||
|
||||
printf '%s' "${Yaml}"
|
||||
[[ -f "$1"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$1"
|
||||
PACKAGE=$1/PKGBUILD; shift
|
||||
|
||||
source "$PACKAGE"
|
||||
|
||||
write_pkg_yaml
|
||||
|
146
data/pacman-gnome-wobble.conf
Normal file
146
data/pacman-gnome-wobble.conf
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
#HookDir = /etc/pacman.d/hooks/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
#UseDelta = 0.7
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
CheckSpace
|
||||
VerbosePkgLists
|
||||
|
||||
# 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.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Artix Linux
|
||||
# packagers with `pacman-key --populate archlinux artix`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The gremlins repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
[gnome-wobble]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[goblins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[gremlins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[system]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[world]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[galaxy-goblins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[galaxy-gremlins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[galaxy]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the lib32 repositories as required here.
|
||||
|
||||
#[lib32-goblins]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[lib32-gremlins]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[lib32]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
||||
|
||||
#
|
||||
# ARCHLINUX
|
||||
#
|
||||
|
||||
[gnome-unstable]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[staging]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[testing]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community-staging]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community-testing]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib-staging]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
146
data/pacman-kde-wobble.conf
Normal file
146
data/pacman-kde-wobble.conf
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
#HookDir = /etc/pacman.d/hooks/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
#UseDelta = 0.7
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
CheckSpace
|
||||
VerbosePkgLists
|
||||
|
||||
# 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.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Artix Linux
|
||||
# packagers with `pacman-key --populate archlinux artix`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The gremlins repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
[kde-wobble]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[goblins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[gremlins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[system]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[world]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[galaxy-goblins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[galaxy-gremlins]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[galaxy]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the lib32 repositories as required here.
|
||||
|
||||
#[lib32-goblins]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[lib32-gremlins]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[lib32]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
||||
|
||||
#
|
||||
# ARCHLINUX
|
||||
#
|
||||
|
||||
[kde-unstable]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[staging]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[testing]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community-staging]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community-testing]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib-staging]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
@@ -1,84 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
write_users_conf(){
|
||||
local conf="$1/users.conf"
|
||||
msg2 "Writing %s ..." "${conf##*/}"
|
||||
echo "---" > "$conf"
|
||||
echo "defaultGroups:" >> "$conf"
|
||||
local IFS=','
|
||||
for g in ${ADDGROUPS[@]};do
|
||||
echo " - $g" >> "$conf"
|
||||
done
|
||||
unset IFS
|
||||
echo "autologinGroup: autologin" >> "$conf"
|
||||
echo "doAutologin: false" >> "$conf"
|
||||
echo "sudoersGroup: wheel" >> "$conf"
|
||||
echo "setRootPassword: true" >> "$conf"
|
||||
echo "availableShells: /bin/bash, /bin/zsh" >> "$conf" # only used in new 'users' module
|
||||
|
||||
# echo "passwordRequirements:" >> "$conf"
|
||||
# echo " minLength: -1" >> "$conf"
|
||||
# echo " maxLength: -1" >> "$conf"
|
||||
# echo " libpwquality:" >> "$conf"
|
||||
# echo " - minlen=8" >> "$conf"
|
||||
# echo " - minclass=80" >> "$conf"
|
||||
}
|
||||
|
||||
write_servicescfg_conf(){
|
||||
local init="$2"
|
||||
local conf="$1"/services-"$init".conf
|
||||
msg2 "Writing %s ..." "${conf##*/}"
|
||||
echo '---' > "$conf"
|
||||
case "$init" in
|
||||
'runit')
|
||||
echo 'svDir: /etc/runit/sv' >> "$conf"
|
||||
echo '' >> "$conf"
|
||||
echo 'runsvDir: /etc/runit/runsvdir' >> "$conf"
|
||||
echo '' >> "$conf"
|
||||
echo 'services:' >> "$conf"
|
||||
echo " enabled:" >> "$conf"
|
||||
for svc in ${SERVICES[@]};do
|
||||
echo " - name: $svc" >> "$conf"
|
||||
echo ' runlevel: default' >> "$conf"
|
||||
done
|
||||
;;
|
||||
'openrc')
|
||||
echo 'initdDir: /etc/init.d' >> "$conf"
|
||||
echo '' >> "$conf"
|
||||
echo 'runlevelsDir: /etc/runlevels' >> "$conf"
|
||||
echo '' >> "$conf"
|
||||
echo 'services:' >> "$conf"
|
||||
for svc in ${SERVICES[@]};do
|
||||
echo " - name: $svc" >> "$conf"
|
||||
echo ' runlevel: default' >> "$conf"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
write_postcfg_conf(){
|
||||
local conf="$1/postcfg.conf" init="$2"
|
||||
sed -e "s|openrc|$init|" -i "$conf"
|
||||
}
|
||||
|
||||
configure_calamares(){
|
||||
local mods="$1/etc/calamares/modules" init="$2"
|
||||
if [[ -d "$mods" ]];then
|
||||
info "Configuring [Calamares]"
|
||||
write_users_conf "$mods"
|
||||
write_servicescfg_conf "$mods" "$init"
|
||||
write_postcfg_conf "$mods" "$init"
|
||||
local name=services-"$init"
|
||||
sed -e "s|services-openrc|$name|" -i "$1"/etc/calamares/settings.conf
|
||||
info "Done configuring [Calamares]"
|
||||
fi
|
||||
}
|
@@ -11,8 +11,8 @@
|
||||
|
||||
import ${LIBDIR}/util-chroot.sh
|
||||
import ${LIBDIR}/util-iso-grub.sh
|
||||
import ${LIBDIR}/util-iso-yaml.sh
|
||||
import ${LIBDIR}/util-iso-profile.sh
|
||||
import ${LIBDIR}/util-yaml.sh
|
||||
|
||||
track_img() {
|
||||
info "mount: [%s]" "$2"
|
||||
@@ -256,13 +256,77 @@ clean_up_image(){
|
||||
fi
|
||||
}
|
||||
|
||||
write_users_conf(){
|
||||
local yaml=$(write_yaml_header)
|
||||
yaml+=$(write_empty_line)
|
||||
yaml+=$(write_yaml_map 0 'defaultGroups')
|
||||
local IFS=','
|
||||
for g in ${ADDGROUPS[@]};do
|
||||
yaml+=$(write_yaml_seq 2 "$g")
|
||||
done
|
||||
unset IFS
|
||||
yaml+=$(write_yaml_map 0 'autologinGroup' 'autologin')
|
||||
yaml+=$(write_yaml_map 0 'doAutologin' 'false')
|
||||
yaml+=$(write_yaml_map 0 'sudoersGroup' 'wheel')
|
||||
yaml+=$(write_yaml_map 0 'setRootPassword' 'true')
|
||||
yaml+=$(write_yaml_map 0 'availableShells' '/bin/bash, /bin/zsh')
|
||||
# yaml+=$(write_yaml_map 0 'passwordRequirements')
|
||||
# yaml+=$(write_yaml_map 2 'minLength' '-1')
|
||||
# yaml+=$(write_yaml_map 2 'maxLength' '-1')
|
||||
# yaml+=$(write_yaml_map 2 'libpwquality')
|
||||
# yaml+=$(write_yaml_seq 4 "minlen=8")
|
||||
# yaml+=$(write_yaml_seq 4 "minclass=80")
|
||||
yaml+=$(write_empty_line)
|
||||
printf '%s' "${yaml}"
|
||||
}
|
||||
|
||||
write_servicescfg_conf(){
|
||||
local yaml=$(write_yaml_header)
|
||||
yaml+=$(write_empty_line)
|
||||
case "${INITSYS}" in
|
||||
'runit')
|
||||
yaml+=$(write_yaml_map 0 'svDir' '/etc/runit/sv')
|
||||
yaml+=$(write_yaml_map 0 'runsvDir' '/etc/runit/runsvdir')
|
||||
yaml+=$(write_yaml_map 0 'services')
|
||||
yaml+=$(write_yaml_map 2 'enabled')
|
||||
for svc in ${SERVICES[@]};do
|
||||
yaml+=$(write_yaml_seq_map 4 'name' "$svc")
|
||||
yaml+=$(write_yaml_map 6 'runlevel' 'default')
|
||||
done
|
||||
;;
|
||||
'openrc')
|
||||
yaml+=$(write_yaml_map 0 'initdDir' '/etc/init.d')
|
||||
yaml+=$(write_yaml_map 0 'runlevelsDir' '/etc/runlevels')
|
||||
yaml+=$(write_yaml_map 0 'services')
|
||||
for svc in ${SERVICES[@]};do
|
||||
yaml+=$(write_yaml_seq_map 2 'name' "$svc")
|
||||
yaml+=$(write_yaml_map 4 'runlevel' 'default')
|
||||
done
|
||||
;;
|
||||
esac
|
||||
yaml+=$(write_empty_line)
|
||||
printf '%s' "${yaml}"
|
||||
}
|
||||
|
||||
configure_calamares(){
|
||||
local mods="$1/etc/calamares/modules"
|
||||
if [[ -d "$mods" ]];then
|
||||
info "Configuring [Calamares]"
|
||||
write_users_conf > "$mods"/users.conf
|
||||
write_servicescfg_conf > "$mods"/services-"${INITSYS}".conf
|
||||
sed -e "s|openrc|${INITSYS}|" -i "$mods"/postcfg.conf
|
||||
sed -e "s|services-openrc|services-${INITSYS}|" -i "$1"/etc/calamares/settings.conf
|
||||
info "Done configuring [Calamares]"
|
||||
fi
|
||||
}
|
||||
|
||||
configure_live_image(){
|
||||
local fs="$1"
|
||||
msg "Configuring [livefs]"
|
||||
configure_hosts "$fs"
|
||||
configure_system "$fs"
|
||||
configure_services "$fs"
|
||||
configure_calamares "$fs" "${INITSYS}"
|
||||
configure_calamares "$fs"
|
||||
write_live_session_conf "$fs"
|
||||
msg "Done configuring [livefs]"
|
||||
}
|
||||
|
@@ -34,6 +34,19 @@ delete_repo(){
|
||||
-H "accept: application/json"
|
||||
}
|
||||
|
||||
get_pkg_org(){
|
||||
local pkg="$1" org= sub=
|
||||
case ${pkg} in
|
||||
# ruby-*) org=${pkg:0:6}; sub="${org:5}"; echo "packagesRuby" ;;
|
||||
perl-*) org=${pkg:0:6}; sub="${org:5}"; echo "packagesPerl" ;;
|
||||
python-*) org=${pkg:0:8}; sub="${org:7}"; echo "packagesPython" ;;
|
||||
python2-*) org=${pkg:0:9}; sub="${org:8}"; echo "packagesPython" ;;
|
||||
lib32*) org=${pkg:0:7}; sub="${org:6}"; echo "packagesL" ;; #"packages${sub^^}" ;;
|
||||
# lib*) org=${pkg:0:4}; sub="${org:3}"; echo "packagesLib${sub^^}" ;;
|
||||
*) org=${pkg:0:1}; echo "packages${org^^}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
load_team_id(){
|
||||
local org="$1" tree="$2" id=0
|
||||
|
||||
|
@@ -9,9 +9,32 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
get_local_head(){
|
||||
echo $(git log --pretty=%H ...refs/heads/master^ | head -n 1)
|
||||
}
|
||||
|
||||
get_remote_head(){
|
||||
echo $(git ls-remote origin -h refs/heads/master | cut -f1)
|
||||
}
|
||||
|
||||
subrepo_push(){
|
||||
local pkg="$1"
|
||||
git subrepo push "$pkg" --clean
|
||||
msg2 "Update (%s)" "$pkg"
|
||||
git subrepo push "$pkg"
|
||||
}
|
||||
|
||||
subrepo_config(){
|
||||
local pkg="$1" org="$2"
|
||||
local gitname=$(get_compliant_name "$pkg")
|
||||
local url=gitea@"${GIT_DOMAIN}":"$org"/"$gitname".git
|
||||
msg2 "Update .gitrepo (%s) [%s]" "$pkg" "$url"
|
||||
git subrepo config "$pkg" remote "$url"
|
||||
}
|
||||
|
||||
subrepo_clean(){
|
||||
local pkg="$1"
|
||||
msg2 "Clean (%s)" "$pkg"
|
||||
git subrepo clean "$pkg"
|
||||
}
|
||||
|
||||
subrepo_pull(){
|
||||
@@ -26,28 +49,106 @@ subrepo_clone(){
|
||||
git subrepo clone gitea@"${GIT_DOMAIN}":"$org"/"$gitname".git "$pkg"
|
||||
}
|
||||
|
||||
clone_tree(){
|
||||
local timer=$(get_timer) url="$1" tree="$2"
|
||||
|
||||
msg "Cloning (%s) ..." "$tree"
|
||||
|
||||
git clone $url/$tree.git
|
||||
show_elapsed_time "${FUNCNAME}" "${timer}"
|
||||
}
|
||||
|
||||
has_changes(){
|
||||
local head_l="$1" head_r="$2"
|
||||
if [[ "$head_l" == "$head_r" ]]; then
|
||||
msg2 "remote changes: no"
|
||||
return 1
|
||||
else
|
||||
msg2 "remote changes: yes"
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
pull_tree(){
|
||||
local tree="$1"
|
||||
local local_head=${2:-$(get_local_head)}
|
||||
local remote_head=$(get_remote_head)
|
||||
|
||||
msg "Checking (%s)" "${tree}"
|
||||
if $(has_changes "${local_head}" "${remote_head}");then
|
||||
git pull origin master
|
||||
fi
|
||||
}
|
||||
|
||||
push_tree(){
|
||||
local tree="$1"
|
||||
msg "Update (%s)" "${tree}"
|
||||
git push origin master
|
||||
}
|
||||
|
||||
write_jenkinsfile(){
|
||||
local jenkins=Jenkinsfile
|
||||
echo '@Library(["PackagePipeline", "RepoPackage"]) import org.artixlinux.RepoPackage' > $jenkins
|
||||
local pkg="$1"
|
||||
local jenkins=$pkg/Jenkinsfile
|
||||
|
||||
echo "@Library('artix-ci') import org.artixlinux.RepoPackage" > $jenkins
|
||||
echo '' >> $jenkins
|
||||
echo 'PackagePipeline(new RepoPackage(this))' >> $jenkins
|
||||
echo '' >> $jenkins
|
||||
|
||||
git add $jenkins
|
||||
}
|
||||
|
||||
write_agentyaml(){
|
||||
local agent=.artixlinux/agent.yaml label='master'
|
||||
[[ -d .artixlinux ]] || mkdir .artixlinux
|
||||
local pkg="$1"
|
||||
local agent=$pkg/.artixlinux/agent.yaml label='master'
|
||||
[[ -d $pkg/.artixlinux ]] || mkdir $pkg/.artixlinux
|
||||
|
||||
echo '%YAML 1.2' > $agent
|
||||
echo '---' >> $agent
|
||||
echo '' >> $agent
|
||||
echo "label: $label" >> $agent
|
||||
echo '' >> $agent
|
||||
|
||||
git add $agent
|
||||
}
|
||||
|
||||
commit_jenkins_files(){
|
||||
write_jenkinsfile
|
||||
write_agentyaml
|
||||
git add Jenkinsfile
|
||||
git add .artixlinux
|
||||
local pkg="$1"
|
||||
|
||||
write_jenkinsfile "$pkg"
|
||||
write_agentyaml "$pkg"
|
||||
|
||||
git commit -m "add jenkinsfile & .artixlinux/agent.yaml"
|
||||
}
|
||||
|
||||
config_tree(){
|
||||
local tree="$1"
|
||||
cd $tree
|
||||
git config --bool pull.rebase true
|
||||
git config commit.gpgsign true
|
||||
if [[ -n "${GPGKEY}" ]];then
|
||||
git config user.signingkey "${GPGKEY}"
|
||||
else
|
||||
warning "No GPGKEY configured in makepkg.conf!"
|
||||
fi
|
||||
cd ..
|
||||
}
|
||||
|
||||
subrepo_new(){
|
||||
local pkg="$1" team="$2"
|
||||
local dest=${TREE_DIR_ARTIX}/$team/$pkg/trunk
|
||||
|
||||
cd ${TREE_DIR_ARTIX}/$team
|
||||
|
||||
local org=$(get_pkg_org "$pkg")
|
||||
|
||||
create_repo "$pkg" "$org"
|
||||
|
||||
add_repo_to_team "$pkg" "$org" "$team"
|
||||
|
||||
subrepo_clone "$pkg" "$org"
|
||||
|
||||
prepare_dir "$dest"
|
||||
|
||||
commit_jenkins_files "$pkg"
|
||||
}
|
||||
|
@@ -9,14 +9,6 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
get_local_head(){
|
||||
echo $(git log --pretty=%H ...refs/heads/$1^ | head -n 1)
|
||||
}
|
||||
|
||||
get_remote_head(){
|
||||
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
|
||||
}
|
||||
|
||||
patch_pkg(){
|
||||
local pkg="$1"
|
||||
case $pkg in
|
||||
@@ -82,10 +74,10 @@ find_tree(){
|
||||
}
|
||||
|
||||
find_repo(){
|
||||
local pkg="$1" unst="$2" stag="$3" repo=
|
||||
local repos=(core extra testing community community-testing mulitilib multilib-testing)
|
||||
local pkg="$1" stag="$2" unst="$3" repo=
|
||||
local repos=(core extra testing community community-testing multilib multilib-testing)
|
||||
|
||||
$stag && repos+=(staging community-staging mulitilib-staging)
|
||||
$stag && repos+=(staging community-staging multilib-staging)
|
||||
$unst && repos+=(gnome-unstable kde-unstable)
|
||||
|
||||
for r in ${repos[@]};do
|
||||
@@ -95,34 +87,12 @@ find_repo(){
|
||||
echo $repo
|
||||
}
|
||||
|
||||
clone_tree(){
|
||||
local timer=$(get_timer) host_tree="$1"
|
||||
git clone $host_tree.git
|
||||
show_elapsed_time "${FUNCNAME}" "${timer}"
|
||||
}
|
||||
|
||||
pull_tree(){
|
||||
local branch="master"
|
||||
local local_head=$(get_local_head "$branch")
|
||||
local remote_head=$(get_remote_head "$branch")
|
||||
if [[ "${local_head}" == "${remote_head}" ]]; then
|
||||
msg2 "remote changes: no"
|
||||
else
|
||||
msg2 "remote changes: yes"
|
||||
git pull origin "$branch"
|
||||
fi
|
||||
}
|
||||
|
||||
get_pkg_org(){
|
||||
local pkg="$1" org= sub=
|
||||
case ${pkg} in
|
||||
perl-*) org=${pkg:0:6}; sub="${org:5}"; echo "packagesPerl" ;;
|
||||
python-*) org=${pkg:0:8}; sub="${org:7}"; echo "packagesPython" ;;
|
||||
python2-*) org=${pkg:0:9}; sub="${org:8}"; echo "packagesPython" ;;
|
||||
lib32*) org=${pkg:0:7}; sub="${org:6}"; echo "packagesL" ;; #"packages${sub^^}" ;;
|
||||
# lib*) org=${pkg:0:4}; sub="${org:3}"; echo "packagesLib${sub^^}" ;;
|
||||
*) org=${pkg:0:1}; echo "packages${org^^}" ;;
|
||||
esac
|
||||
get_import_path(){
|
||||
local pkg="$1" import_path=
|
||||
for tree in ${tree_names[@]};do
|
||||
[[ -d ${TREE_DIR_ARCH}/$tree/$pkg ]] && import_path=${TREE_DIR_ARCH}/$tree/$pkg
|
||||
done
|
||||
echo $import_path
|
||||
}
|
||||
|
||||
pkgver_equal() {
|
||||
|
32
lib/util-yaml.sh
Normal file
32
lib/util-yaml.sh
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
write_yaml_header(){
|
||||
printf '%s\n%s' "%YAML 1.2" '---'
|
||||
}
|
||||
|
||||
write_empty_line(){
|
||||
printf '\n%s\n' ' '
|
||||
}
|
||||
|
||||
write_yaml_map(){
|
||||
local ident="$1" key="$2" val="$3"
|
||||
printf "\n%${ident}s%s: %s\n" '' "$key" "$val"
|
||||
}
|
||||
|
||||
write_yaml_seq(){
|
||||
local ident="$1" val="$2"
|
||||
printf "\n%${ident}s- %s\n" '' "$val"
|
||||
}
|
||||
|
||||
write_yaml_seq_map(){
|
||||
local ident="$1" key="$2" val="$3"
|
||||
printf "\n%${ident}s- %s: %s\n" '' "$key" "$val"
|
||||
}
|
Reference in New Issue
Block a user