#!/bin/bash . ../lib.sh # Include library # Image DISTRIB="archlinux" ARCH=${ARCH:-"armhf"} TARGET=${TARGET:-"rootfs-target"} CLEAN_PATHS="/root/.bash_history /root/.history /etc/resolv.conf /etc/hostname /etc/ssh/*_key* /var/log/bootstrap.log" PKGS_INCLUDE=${PKGS_INCLUDE:-"ca-certificates,cron,curl,iptables,iputils-ping,isc-dhcp-client,less,man-db,nano,nbd-client,net-tools,ntp,ntpdate,rsyslog,ssh,sudo,wget,whiptail,xnbd-client"} # MIRROR=${MIRROR:-"http://mirror.cloud.online.net/ubuntu-ports/"} VERSION=${VERSION:-"latest"} # Required NAME=${NAME:-"rootfs-$ARCH-$DISTRIB-$VERSION"} build_image() { sudo wget -O source.tar.gz \ http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-$VERSION.tar.gz sudo tar -C "$TARGET" -xzf source.tar.gz } patch_image() { # prepare chroot sudo umount $TARGET/{sys,dev,proc} || true sudo mount -t proc proc $TARGET/proc sudo mount -t sysfs sys $TARGET/sys sudo mount -o bind /dev $TARGET/dev sudo rm -f $TARGET/etc/mtab do_in_target "grep -v rootfs /proc/mounts | sudo tee -a $TARGET/etc/mtab" sudo mkdir -p $TARGET/run/systemd/resolve sudo cp /etc/resolv.conf $TARGET/run/systemd/resolve/resolv.conf # FIXME: patch_target archlinux-latest/patches # FIXME: locales # - do_in_target "locale-gen en_US.UTF-8" # ssh server do_in_target "pacman -S --noconfirm openssh" do_in_target "systemctl enable sshd.service" # clean chroot sudo rm -f $TARGET/etc/mtab $TARGET/run/systemd/resolve/resolv.conf sudo umount $TARGET/proc sudo umount $TARGET/sys sudo umount $TARGET/dev } upgrade_image() { # FIXME: upgrade security packages echo } clean_image() { # FIXME: clean package achives clean_target $CLEAN_PATHS # FIXME: reload package index } if [ "${1}" != "--source-only" ]; then cli $@ fi