# Copyright (c) 2016, Maciej Sieczka. All rights reserved
#
# Minimal installation process is defined in mods/linux_build_arch.smod. A
# couple extra actions are called from here using RunCmd and InstallPkgs
# Singularity bootstrap keywords. Adjust them as needed.
# https://wiki.archlinux.org/index.php/Installation_Guide may come in handy.

DistType "arch"

# "Setup" keyword doesn't do anything anymore, at least as of Singularity
# 2.1.2. Undocumented "PreSetup" replaced it and is called at each
# `singularity bootstrap' run.
# Setup

Bootstrap

# Set time zone. Use whatever you prefer instead of UTC.
RunCmd ln -s /usr/share/zoneinfo/UTC /etc/localtime

# WARNING: Make sure you prefix the STDOUT redirection target (ie. that guy
# after `>' or `>>`) with $SINGULARITY_BUILD_ROOT in RunCmd calls, as below.
# Otherwise such command will write to host's filesystem, at least as of
# Singularity 2.1.2! This is a known issue, going to be fixed. See
# https://github.com/gmkurtzer/singularity/issues/200.

# Set locale. Use whatever you prefer instead of en_US.
RunCmd echo 'en_US.UTF-8 UTF-8' > "$SINGULARITY_BUILD_ROOT"/etc/locale.gen
# Add more locales as needed, eg:
# RunCmd echo 'pl_PL.UTF-8 UTF-8' >> "$SINGULARITY_BUILD_ROOT"/etc/locale.gen
RunCmd locale-gen
RunCmd echo 'LANG=en_US.UTF-8' > "$SINGULARITY_BUILD_ROOT"/etc/locale.conf
# Mind that Singularity's shell will use host's locale no matter what anyway,
# as of version 2.1.2. This may change in a future release.

# Set the package mirror server(s). This is only for the output image's
# mirrorlist. `pacstrap' can only use your hosts's package mirrors.
RunCmd echo 'Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch' > "$SINGULARITY_BUILD_ROOT"/etc/pacman.d/mirrorlist
# Add any number of fail-over servers, eg:
RunCmd echo 'Server = https://archlinux.honkgong.info/$repo/os/$arch' >> "$SINGULARITY_BUILD_ROOT"/etc/pacman.d/mirrorlist

# I need VIM and Bash completion. Specify your extra packages as needed.
InstallPkgs vim bash-completion

# Remove the packages downloaded to image's Pacman cache dir during
# InstallPkgs. BTW, `pacstrap', used in Bootstrap step, uses host's package
# cache rather than the image's.
RunCmd paccache -r -k0

Cleanup
