forked from Spark/builder
44
makepkg-overlay
Executable file
44
makepkg-overlay
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cleanup() {
|
||||
umount "$cnt_dir/rootfs"
|
||||
}
|
||||
|
||||
wrk_dir='/home/lxc'
|
||||
pkg_url=$1
|
||||
pkg_dest=$2
|
||||
|
||||
cnt="_makepkg.$$"
|
||||
cnt_dir="$wrk_dir/containers/$cnt"
|
||||
|
||||
trap 'cleanup' INT TERM EXIT
|
||||
|
||||
lxf -r builder -i builder new "$cnt"
|
||||
|
||||
# Add the build script
|
||||
cp "$wrk_dir/files/buildpackage" "$cnt_dir/rootfs/init"
|
||||
chmod 755 "$cnt_dir/rootfs/init"
|
||||
|
||||
# Tell it where to fetch the package
|
||||
echo "$pkg_url" > "$cnt_dir/rootfs/repo"
|
||||
|
||||
# Start the container
|
||||
lxc-start -n "$cnt" -F; lxc_exit=$?
|
||||
(( lxc_exit )) && exit "$lxc_exit"
|
||||
|
||||
# Put the artifacts where asked to
|
||||
[[ "$pkg_dest" ]] && {
|
||||
artifacts=( "$cnt_dir/rootfs/buildroot/"*.pkg.* )
|
||||
|
||||
for i in "${artifacts[@]}"; do
|
||||
i_name="${i##*/}"
|
||||
|
||||
printf 'Found artifact: %s\n' "$i_name"
|
||||
|
||||
if [[ -f "$pkg_dest/$i_name" ]]; then
|
||||
echo "$pkg_dest/$i_name already exists, not overwriting."
|
||||
else
|
||||
cp -vn "$i" "$pkg_dest"
|
||||
fi
|
||||
done
|
||||
}
|
Reference in New Issue
Block a user