+# }}}
+
+# helper functions {{{
+stage() {
+ if [ -n "$2" ] ; then
+ echo "$2" > "$STAGES/$1"
+ return 0
+ elif grep -q done "$STAGES/$1" 2>/dev/null ; then
+ echo "[*] Notice: stage $1 has been executed already, skipping execution therefore.">&2
+ return 1
+ fi
+}
+# }}}
+
+# define chroot mirror {{{
+chrootmirror() {
+ [ -n "$KEEP_SRC_LIST" ] && return
+ if [ -n "$ISO" ] ; then
+ echo "deb $ISO $RELEASE main contrib" > /etc/apt/sources.list
+ [ -n "$CHROOTMIRROR" ] && echo "deb $CHROOTMIRROR $RELEASE main contrib non-free" >> /etc/apt/sources.list
+ else
+ if [ -n "$CHROOTMIRROR" ] ; then
+ echo "deb $CHROOTMIRROR $RELEASE main contrib non-free" > /etc/apt/sources.list
+ fi
+ fi
+}
+# }}}
+
+# set up grml repository {{{
+grmlrepos() {
+ if [ -n "$GRMLREPOS" ] ; then
+ # user might have provided their own apt sources.list
+ if ! grep -q grml /etc/apt/sources.list 2>/dev/null ; then
+ cat >> /etc/apt/sources.list << EOF
+
+# grml: stable repository:
+ deb http://deb.grml.org/ grml-stable main
+ deb-src http://deb.grml.org/ grml-stable main
+
+# grml: testing/development repository:
+ deb http://deb.grml.org/ grml-testing main
+ deb-src http://deb.grml.org/ grml-testing main
+
+EOF
+ fi
+
+ # make sure we have the keys available for aptitude
+ gpg --keyserver subkeys.pgp.net --recv-keys F61E2E7CECDEA787
+ gpg --export F61E2E7CECDEA787 | apt-key add - || /bin/true # not yet sure
+ # why it's necessary, sometimes we get an error even though it works [mika]
+
+ # make sure we install packages from grml's pool only if not available
+ # from Debian!
+ if ! grep -q grml /etc/apt/preferences 2>/dev/null ; then
+ cat >> /etc/apt/preferences << EOF
+// debian pool (default):
+Package: *
+Pin: release o=Debian
+Pin-Priority: 996
+
+// main grml-repository:
+Package: *
+Pin: origin deb.grml.org
+Pin-Priority: 991
+EOF
+ fi
+ fi
+}
+# }}}