66 lines
1.6 KiB
Bash
Executable File
66 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# TODO: good codebase, need parameters and make a more generic tool
|
|
|
|
APKPKT=apk-tools-static-2.10.1-r0.apk
|
|
|
|
mirror=http://uk.alpinelinux.org/alpine/
|
|
MAINREP=/media/fast/al
|
|
CHROOT=$MAINREP/chroot
|
|
PACKAGES="vim zsh"
|
|
POSTPACKAGES="alpine-sdk git openssh openssl openssl-dev crystal"
|
|
|
|
chroot_install(){
|
|
mkdir -p $CHROOT
|
|
cd ${MAINREP}/
|
|
|
|
if [ -f ${APKPKT} ]; then
|
|
echo "apk already downloaded"
|
|
else
|
|
wget ${mirror}/latest-stable/main/`uname -p`/${APKPKT}
|
|
tar -xzf ${APKPKT}
|
|
fi
|
|
|
|
${MAINREP}/sbin/apk.static -X ${mirror}/latest-stable/main -U --allow-untrusted --root ${CHROOT} --initdb add alpine-base $PACKAGES
|
|
cp /etc/resolv.conf $CHROOT/etc/
|
|
cp -r ~/.zsh* ~/.vim* ${CHROOT}/root
|
|
echo export PS1=\"\(chroot\) \$PS1\" >> ${CHROOT}/root/.zshrc
|
|
|
|
cat << END > $CHROOT/etc/apk/repositories
|
|
http://uk.alpinelinux.org/alpine/latest-stable/main
|
|
http://uk.alpinelinux.org/alpine/latest-stable/community
|
|
http://uk.alpinelinux.org/alpine/edge/main
|
|
http://uk.alpinelinux.org/alpine/edge/community
|
|
END
|
|
}
|
|
|
|
chroot_mount(){
|
|
mount -t proc /proc ${CHROOT}/proc/
|
|
mount -o bind /sys ${CHROOT}/sys/
|
|
mount -o bind /dev ${CHROOT}/dev/
|
|
}
|
|
|
|
chroot_env(){
|
|
chroot ${CHROOT} /bin/zsh -l
|
|
}
|
|
|
|
chroot_post(){
|
|
${MAINREP}/sbin/apk.static --root ${CHROOT} add $POSTPACKAGES
|
|
# chroot ${CHROOT} /bin/zsh -l "apk update && apk upgrade && apk add $POSTPACKAGES"
|
|
}
|
|
|
|
ask(){
|
|
echo -en "$1? [YyNn] (n): "
|
|
read V ; echo $V | grep "[Yy]" >/dev/null
|
|
if [ $? -eq 0 ] ; then
|
|
echo -en "doing $1..." ; $1
|
|
else
|
|
echo "not doing $1"
|
|
fi
|
|
}
|
|
|
|
ask chroot_install
|
|
ask chroot_mount
|
|
ask chroot_post
|
|
ask chroot_env
|