# provides letsencrypt
 certbot
 # provides systemd scripts that configure iptables via /etc/iptables/*
-iptables-persistent
\ No newline at end of file
+iptables-persistent
 
 #!/bin/sh
 # Walks through the package names in the argument-selected files of
 # apt-mark/ and ensures the respective packages are installed.
+#
+# Ignores anything in an apt-mark/ file after the last newline.
 set -e
 
 config_tree_prefix="${HOME}/config/all_new_2018/apt-mark/"
 for target in "$@"; do
     path="${config_tree_prefix}${target}"
     cat "${path}" | while read line; do
+        echo "$line"
         if [ ! $(echo "${line}" | cut -c1) = "#" ]; then
             apt-get -y install "${line}"
         fi
 
 -A INPUT -p tcp --dport 443 -j ACCEPT
 -A INPUT -p tcp --dport 80 -j ACCEPT
 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-COMMIT
\ No newline at end of file
+COMMIT
+# iptables-restore seems to ignore COMMIT if no newline follows it
\ No newline at end of file
 
 
 # Provide maximum input for set_hostname_and_fqdn.sh.
 if [ "$#" -ne 2 ]; then
-    echo "Need exactly two arguments (hostname, FQDN)."
+    echo 'Need exactly two arguments (hostname, FQDN).'
     false
 fi
 hostname="$1"
 
 # Some debconf selections we don't want to get asked during coming
 # install actions.
-debconf-set-selections <<< "iptables-persistent iptables-persistent/autosave_v4 boolean false"
-debconf-set-selections <<< "iptables-persistent iptables-persistent/autosave_v6 boolean false"
+echo 'iptables-persistent iptables-persistent/autosave_v4 boolean false' | debconf-set-selections
+echo 'iptables-persistent iptables-persistent/autosave_v6 boolean false' | debconf-set-selections
 
 # Ensure package installation state as defined by what packages are
 # defined as required by Debian policy and by settings in ./apt-mark/.