# vim: ft=zsh
if [[ $1 == info ]]; then
STAGE_ALPINE_DOWN_DIR=$FSB_DOWNLOADS_DIR/alpine/
STAGE_ALPINE_DOWN_DIR+=$STAGE_ALPINE_RELEASE/main/
STAGE_ALPINE_DOWN_DIR+=$STAGE_ALPINE_ARCH
mkdir -p $STAGE_ALPINE_DOWN_DIR || die "could not make download directory"
(
cd $STAGE_ALPINE_DOWN_DIR && \
wget -S -N -v $FSB_ALPINE_MIRROR/$STAGE_ALPINE_RELEASE/main/$STAGE_ALPINE_ARCH/APKINDEX.tar.gz && \
tar xf APKINDEX.tar.gz DESCRIPTION
) || die "downloading APKINDEX failed"
STAGE_APKINDEX_VERSION=$(<$STAGE_ALPINE_DOWN_DIR/DESCRIPTION)
FSB_INFO_BASE=$FSB_BUILD_DIR/alpine
FSB_INFO_BASE+=-$STAGE_ALPINE_ARCH
FSB_INFO_BASE+=-$STAGE_ALPINE_RELEASE
FSB_INFO_BASE+=-$STAGE_APKINDEX_VERSION
FSB_INFO_DIR=%s-init
return
elif [[ $1 != build ]]; then
die "unimplemented action: $*"
fi
if ! (($+STAGE_ALPINE_REPOSITORIES)); then
typeset -ga STAGE_ALPINE_REPOSITORIES
STAGE_ALPINE_REPOSITORIES=( main testing )
fi
local -a apk_args
local repo
apk_args=( )
mkdir -p $build_dir/etc/apk || die "failed to set up apk"
for repo in $STAGE_ALPINE_REPOSITORIES; do
print -rl - "$FSB_ALPINE_MIRROR/$STAGE_ALPINE_RELEASE/$repo" >> ${build_dir}/etc/apk/repositories || die "failed to set up apk"
apk_args+=(
--repository $FSB_ALPINE_MIRROR/$STAGE_ALPINE_RELEASE/$repo
)
done
apk_args+=(
#--repository file://${STAGE_ALPINE_DOWN_DIR:h:a}
#--repository $FSB_ALPINE_MIRROR/$STAGE_ALPINE_RELEASE/main
#--repository $FSB_ALPINE_MIRROR/$STAGE_ALPINE_RELEASE/testing
--update-cache
--root $build_dir
--arch $STAGE_ALPINE_ARCH
--keys-dir /etc/apk/keys/
--initdb
add alpine-base
)
apk.static $apk_args || die "alpine init failed"