forked from artix/artools
Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
ba77c20d77 | |||
c376041a07 | |||
bd29d360b4 | |||
7e1b1ee238 | |||
221218ba2a | |||
697d18da82 | |||
27d0230ed7 | |||
41fdcb68fb | |||
37b02c08bc | |||
31200d7765 | |||
60844ee0ea | |||
2c2e6b41a1 | |||
52c81a0e61 | |||
6667147b77 | |||
26635e3a10 | |||
1d5a565ed8 | |||
4e54b48903 | |||
2f16cd73c9 | |||
9fd6ac3531 | |||
2f5acc6e3c | |||
d73b6d9178 | |||
d5404ac2fa | |||
d250b967ba | |||
5715eecf0c |
@@ -18,14 +18,16 @@ DATADIR='@datadir@'
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-pkg.sh
|
||||
import ${LIBDIR}/util-pkg-gitea.sh
|
||||
import ${LIBDIR}/util-pkg-subrepo.sh
|
||||
|
||||
pull_tree_arch(){
|
||||
cd ${tree_dir_arch}
|
||||
for tree in packages community;do
|
||||
if [[ -d ${tree} ]];then
|
||||
cd ${tree}
|
||||
msg "Checking (%s)" "${tree}"
|
||||
pull_tree
|
||||
msg "Checking (%s)" "${tree}"
|
||||
pull_tree
|
||||
cd ..
|
||||
else
|
||||
msg "Cloning (%s) ..." "$tree"
|
||||
@@ -34,24 +36,32 @@ pull_tree_arch(){
|
||||
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 packages packages-galaxy;do
|
||||
if [[ -d ${tree} ]];then
|
||||
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
|
||||
msg "Checking (%s)" "${tree}"
|
||||
pull_tree
|
||||
config_tree
|
||||
msg "Checking (%s)" "${tree}"
|
||||
pull_tree
|
||||
cd ..
|
||||
else
|
||||
msg "Cloning (%s) ..." "$tree"
|
||||
clone_tree "${host_tree_artix}/${tree}"
|
||||
config_tree "${tree}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -161,7 +171,10 @@ from_arch(){
|
||||
cd ${tree_dir_artix}/$git_tree_artix
|
||||
|
||||
dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk
|
||||
mkdir $pkg
|
||||
|
||||
create_repo "$pkg"
|
||||
add_repo_to_team "$pkg" "$pkg_path"
|
||||
subrepo_clone "$pkg"
|
||||
|
||||
info "Import from archlinux (%s)" "$git_tree_arch"
|
||||
rsync "${rsync_args[@]}" $src/ $dest/
|
||||
|
@@ -18,6 +18,7 @@ DATADIR='@datadir@'
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-pkg.sh
|
||||
import ${LIBDIR}/util-pkg-subrepo.sh
|
||||
|
||||
commit_pkg(){
|
||||
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
|
||||
@@ -27,6 +28,7 @@ commit_pkg(){
|
||||
source trunk/PKGBUILD
|
||||
[[ $arch == 'any' ]] && CARCH=any
|
||||
local ver=$(get_full_version "${package}")
|
||||
local commit_msg=""
|
||||
|
||||
if ${remove};then
|
||||
local action='remove'
|
||||
@@ -37,20 +39,27 @@ commit_pkg(){
|
||||
local pkg="${package}-$ver"
|
||||
git rm -r repos/"${source_repo}-$CARCH"
|
||||
fi
|
||||
msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
|
||||
git commit -m "[${source_repo}] '$pkg' ${action}"
|
||||
commit_msg="[${source_repo}] '$pkg' ${action}"
|
||||
msg "Action: %s" "$commit_msg"
|
||||
else
|
||||
local action='modify'
|
||||
msg "Action: [%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}"
|
||||
commit_msg="[${source_repo}] '${package}-$ver' ${action}"
|
||||
msg "Action: %s" "$commit_msg"
|
||||
git add .
|
||||
git commit -m "[${source_repo}] '${package}-$ver' ${action}"
|
||||
|
||||
fi
|
||||
git commit -m "$commit_msg"
|
||||
|
||||
cd ${tree_dir_artix}/${git_tree}
|
||||
|
||||
if ${push};then
|
||||
msg "Checking (%s)" "${git_tree}"
|
||||
git pull origin master
|
||||
subrepo_push "${package}"
|
||||
sleep 1
|
||||
git push origin master
|
||||
fi
|
||||
git prune
|
||||
else
|
||||
error "Package '%s' does not exist!" "${package}"
|
||||
fi
|
||||
@@ -85,16 +94,22 @@ symlink_commit_pkg(){
|
||||
cp repos/$src/* repos/$dest/
|
||||
git rm -r repos/$src
|
||||
fi
|
||||
local commit_msg="[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
|
||||
msg "Action: %s" "$commit_msg"
|
||||
|
||||
msg "Action: [%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}"
|
||||
git add .
|
||||
git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
|
||||
git commit -m "$commit_msg"
|
||||
|
||||
cd ${tree_dir_artix}/${git_tree}
|
||||
|
||||
if ${push};then
|
||||
msg "Checking (%s)" "${git_tree}"
|
||||
git pull origin master
|
||||
subrepo_push "${package}"
|
||||
sleep 1
|
||||
git push origin master
|
||||
fi
|
||||
git prune
|
||||
else
|
||||
error "Package '%s' does not exist!" "${package}"
|
||||
fi
|
||||
|
@@ -12,7 +12,10 @@
|
||||
################ artools-pkg ################
|
||||
#############################################
|
||||
|
||||
# host_tree_artix='https://github.com/artix-linux'
|
||||
# git user access token
|
||||
# git_token=''
|
||||
|
||||
# host_tree_artix='gitea@gitea.artixlinux.org:artix'
|
||||
|
||||
# host_tree_arch=git://projects.archlinux.org/svntogit
|
||||
|
||||
|
59
lib/util-pkg-gitea.sh
Normal file
59
lib/util-pkg-gitea.sh
Normal file
@@ -0,0 +1,59 @@
|
||||
#!/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.
|
||||
|
||||
get_compliant_name(){
|
||||
local gitname="$1"
|
||||
case $gitname in
|
||||
*+) gitname=${gitname//+/plus}
|
||||
esac
|
||||
echo $gitname
|
||||
}
|
||||
|
||||
|
||||
create_repo(){
|
||||
local pkg="$1"
|
||||
local gitname=$(get_compliant_name "$pkg")
|
||||
curl -X POST "${git_url}/api/v1/org/packages/repos?access_token=${git_token}" -H "accept: application/json" -H "content-type: application/json" -d "{ \"auto_init\": true, \"name\":\"$gitname\", \"readme\": \"Default\" }"
|
||||
}
|
||||
|
||||
delete_repo(){
|
||||
local pkg="$1"
|
||||
local gitname=$(get_compliant_name "$pkg")
|
||||
curl -X DELETE "${git_url}/api/v1/repos/packages/$gitname?access_token=${git_token}" -H "accept: application/json"
|
||||
}
|
||||
|
||||
find_team(){
|
||||
local pkg="$1" team_id=
|
||||
|
||||
if [[ -f $pkg/repos/core-x86_64/PKGBUILD ]];then
|
||||
team_id=18
|
||||
elif [[ -f $pkg/repos/core-any/PKGBUILD ]];then
|
||||
team_id=18
|
||||
elif [[ -f $pkg/repos/extra-x86_64/PKGBUILD ]];then
|
||||
team_id=19
|
||||
elif [[ -f $pkg/repos/extra-any/PKGBUILD ]];then
|
||||
team_id=19
|
||||
elif [[ -f $pkg/repos/community-x86_64/PKGBUILD ]];then
|
||||
team_id=20
|
||||
elif [[ -f $pkg/repos/community-any/PKGBUILD ]];then
|
||||
team_id=20
|
||||
elif [[ -f $pkg/repos/multilib-x86_64/PKGBUILD ]];then
|
||||
team_id=21
|
||||
fi
|
||||
echo $team_id
|
||||
}
|
||||
|
||||
add_repo_to_team(){
|
||||
local pkg="$1" path="$2"
|
||||
local id=$(find_team "$path")
|
||||
|
||||
curl -X PUT "${git_url}/api/v1/teams/$id/repos/packages/$pkg?access_token=${git_token}" -H "accept: application/json"
|
||||
}
|
30
lib/util-pkg-subrepo.sh
Normal file
30
lib/util-pkg-subrepo.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/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.
|
||||
|
||||
subrepo_init(){
|
||||
local pkg="$1"
|
||||
git subrepo init $pkg -r gitea@${git_domain}:packages/$pkg.git -b master
|
||||
}
|
||||
|
||||
subrepo_push(){
|
||||
local pkg="$1"
|
||||
git subrepo push -u "$pkg" -b master
|
||||
}
|
||||
|
||||
subrepo_pull(){
|
||||
local pkg="$1" name="${2:-$1}"
|
||||
git subrepo pull "$pkg" -b master -r gitea@${git_domain}:packages/$name.git -u
|
||||
}
|
||||
|
||||
subrepo_clone(){
|
||||
local pkg="$1" name="${2:-$1}"
|
||||
git subrepo clone gitea@gitea.artixlinux.org:packages/$pkg.git "$name" -b master
|
||||
}
|
@@ -45,8 +45,7 @@ patch_pkg(){
|
||||
;;
|
||||
'linux')
|
||||
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
|
||||
sed -e 's|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="-ARTIX"|' \
|
||||
-e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
|
||||
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
|
||||
-e 's|CONFIG_CRYPTO_SPECK=.*|CONFIG_CRYPTO_SPECK=n|' \
|
||||
-i $pkg/trunk/config
|
||||
cd $pkg/trunk
|
||||
@@ -77,6 +76,14 @@ patch_pkg(){
|
||||
esac
|
||||
}
|
||||
|
||||
write_jenkinsfile(){
|
||||
local pkg="$1" jenkins=Jenkinsfile
|
||||
echo '@Library(["PackagePipeline", "BuildPkg", "DeployPkg", "Notify", "PostBuild", "RepoPackage"]) import org.artixlinux.RepoPackage' > $pkg/$jenkins
|
||||
echo '' >> $pkg/$jenkins
|
||||
echo 'PackagePipeline(new RepoPackage(this))' >> $pkg/$jenkins
|
||||
echo '' >> $pkg/$jenkins
|
||||
}
|
||||
|
||||
find_tree(){
|
||||
local tree="$1" pkg="$2"
|
||||
local result=$(find $tree -mindepth 2 -maxdepth 2 -type d -name "$pkg")
|
||||
|
@@ -60,9 +60,15 @@ init_artools_base(){
|
||||
|
||||
init_artools_pkg(){
|
||||
|
||||
git_domain='gitea.artixlinux.org'
|
||||
|
||||
git_url="https://${git_domain}"
|
||||
|
||||
[[ -z ${git_token} ]] && git_token=''
|
||||
|
||||
[[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix
|
||||
|
||||
[[ -z ${host_tree_artix} ]] && host_tree_artix='https://github.com/artix-linux'
|
||||
[[ -z ${host_tree_artix} ]] && host_tree_artix="gitea@gitea.artixlinux.org:artix"
|
||||
|
||||
[[ -z ${tree_dir_arch} ]] && tree_dir_arch=${workspace_dir}/archlinux
|
||||
|
||||
|
Reference in New Issue
Block a user