X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=distro-end;h=cd3de8162f962c058b7c3b5f7c06c4777df25251;hb=d314b216046098f4b520cc14946c5d7c00f2089a;hp=a30963f5d0e1240db3c5eff77dfbbecba08cbe71;hpb=e688da727d2f4620e52a26e77f190c65d6627e7e;p=distro-setup diff --git a/distro-end b/distro-end index a30963f..cd3de81 100755 --- a/distro-end +++ b/distro-end @@ -9,12 +9,18 @@ set -x exec &> >(sudo tee -a /var/log/distro-end) echo "$0: $(date): starting now)" +src="${BASH_SOURCE%/*}" + end_msg() { = local y IFS= read -r -d '' y ||: end_msg_var+="$y" } +spa() { # simple package add + simple_packages+=($@) +} + distro=$(distro-name) pending_reboot=false @@ -25,47 +31,229 @@ esac pup -# universal packages simple_packages=( - bwm-ng - chromium - duplicity - evince - fdupes - filelight - gdb - gnome-screenshot mailutils - meld - mpv nmon - offlineimap - p7zip - paprefs - pavucontrol - pianobar - pidgin - rdiff-backup - slock - smartmontools - squashfs-tools - tcpdump - transmission-remote-gtk + ruby + ruby-rest-client tree vim ) -spa() { # simple package add - simple_packages+=($@) -} +if [[ $HOSTNAME != lj && $HOSTNAME != lk ]]; then + # universal packages + simple_packages+=( + apache2 + bwm-ng + chromium + duplicity + evince + fdupes + filelight + gdb + gnome-screenshot + jq + locate + meld + offlineimap + p7zip + paprefs + pavucontrol + pdfgrep + pianobar + pidgin + rdiff-backup + slock + squashfs-tools + tcpdump + transmission-remote-gtk + vlc + ) +fi + + + +########### begin section including lj ################ + + +case $distro in + fedora) spa unrar ;; + *) spa unrar-free ;; +esac + + +case $distro in + arch) + # ubuntu 14.04 uses b-cron, + # but its not maintained in arch. + # of the ones in the main repos, cronie is only one maintained. + # fcron appears abandoned software. + pi cronie + sgo cronie + ;; + *) : ;; # other distros come with cron. +esac + + +case $distro in + debian|ubuntu) + pi debian-goodies + ;; +esac + + +case $distro in + *) pi at ;;& + arch) sgo atd ;; +esac case $distro in - debian) pi curl ;; + debian) pi curl;; arch) : ;; # fedora: unknown esac +case $distro in + # tk for gitk + arch) spa git tk ;; + *) spa git ;; +esac + +case $distro in + arch) spa the_silver_searcher ;; + debian|ubuntu) spa silversearcher-ag ;; + # fedora unknown +esac + +case $distro in + debian|ubuntu) spa ntp;; + arch) + pi ntp + sgo ntpd + ;; + # others unknown +esac + + +# no equivalent in other distros: +case $distro in + debian|ubuntu) + pi apt-file aptitude + s apt-file update + # for debconf-get-selections + spa debconf-utils + ;; +esac + +case $distro in + ubuntu|debian) spa ack-grep ;; + arch|fedora) spa ack ;; + # fedora unknown +esac + +case $distro in + arch|debian|ubuntu) + spa bash-completion + ;; + # others unknown +esac + + + + + +# disable motd junk. +case $(distro-name) in + debian) + # allows me to pipe with ssh -t, and gets rid of spam + # http://forums.debian.net/viewtopic.php?f=5&t=85822 + # i'd rather disable the service than comment the init file + # this says disabling the service, it will still get restarted + # but this script doesn't do anything on restart, so it should be fine + s dd of=/var/run/motd.dynamic if=/dev/null + s update-rc.d motd disable + ;; + ubuntu) + # this isn't a complete solution. It still shows me when updates are available, + # but it's no big deal. + s t /etc/update-motd.d/10-help-text /etc/update-motd.d/00-header + ;; +esac + +# automatic updates +# reference: +# https://debian-handbook.info/browse/stable/sect.regular-upgrades.html +# /etc/cron.daily/apt calls unattended-upgrades +# /usr/share/doc/unattended-upgrades# cat README.md +# /etc/apt/apt.conf.d/50unattended-upgrades +if isdebian; then + pi unattended-upgrades + s dd of=/etc/apt/apt.conf.d/10periodic <<'EOF' +# this file was mostly just comments. +APT::Periodic::Update-Package-Lists "1"; +APT::Periodic::Download-Upgradeable-Packages "1"; +APT::Periodic::AutocleanInterval "7"; +APT::Periodic::Unattended-Upgrade "1"; +EOF + + + { cat <<'EOF' +Unattended-Upgrade::Mail "root"; +Unattended-Upgrade::MailOnlyOnError "true"; +Unattended-Upgrade::Remove-Unused-Dependencies "true"; +Unattended-Upgrade::Origins-Pattern { +# default is just upgrade main and security, not updates. +EOF + if isdebian-testing; then + cat <<'EOF' +# for testing, only do security updates. + "origin=Debian,codename=${distro_codename},label=Debian-Security"; +EOF + else + cat <<'EOF' +# These are stable packages only getting bugfixes anyways. + "origin=*"; +EOF + fi + cat <<'EOF' +}; +EOF + } | s dd of=/etc/apt/apt.conf.d/50unattended-upgrades + + + echo $- > /tmp/x +fi + +# cron +/a/bin/crons/all + + +case $HOSTNAME in + lj|lk) + + pi "${simple_packages[@]}" + $src/homepage-setup + $src/ + +# start=' * *' +# end=' *<\/source> *' +# ruby <<'EOF' | sed -rn "/^$start$/,/^$end$/{s/^$start|$end$/# \0/;p}" | bash +# require 'json' +# puts JSON.parse(`curl 'https://ofswiki.org/w/api.php?\ +# action=query&titles=Mediawiki_Setup_Guide&prop=revisions&rvprop=content&\ +# format=json'`.chomp)['query']['pages'].values[0]['revisions'][0]['*'] +# EOF +# nginx-site iankelling.org + + echo "$0: $(date): ending now)" + exit 0 + ;; +esac + +########### end section including lj ############### + + case $distro in arch) pi syncthing ;; ubuntu|debian) @@ -97,29 +285,17 @@ esac # install bar code scanner. -# things with no equivalent in other distros: +# no equivalent in other distros: case $distro in debian|ubuntu) # for gui bug reporting spa python-vte - pi apt-file aptitude - s apt-file update - # for debconf-get-selections - spa debconf-utils ;; esac ####### misc packages ########### -case $distro in - ubuntu|debian) - spa spacefm-gtk3 ;; - arch) - spa spacefm ;; -esac - - if [[ $HOSTNAME == frodo ]]; then case $distro in @@ -138,7 +314,7 @@ EOF s sysctl -p # some reason it doesn't seem to start automatically anyways - pi-nostart tranmission-daemon + pi-nostart transmission-daemon # config file documented here, and it's the same config # for daemon vs client, so it's documented in the gui. # https://trac.transmissionbt.com/wiki/EditConfigFiles#Options @@ -146,14 +322,14 @@ EOF require 'json' p = '/etc/transmission-daemon/settings.json' File.write(p, JSON.pretty_generate(JSON.parse(File.read(p)).merge({ -'rpc-whitelist': '127.0.0.1,192.168.1.*', -'rpc-authentication-required': false, -'incomplete-dir': '/i/k/partial-torrents', -'download-dir': '/i/k/torrents', -"speed-limit-up": 700, -"speed-limit-up-enabled": true, -"ratio-limit": 1.4000, -"ratio-limit-enabled": true, +'rpc-whitelist' => '127.0.0.1,192.168.1.*', +'rpc-authentication-required' => false, +'incomplete-dir' => '/i/k/partial-torrents', +'download-dir' => '/i/k/torrents', +"speed-limit-up" => 700, +"speed-limit-up-enabled" => true, +"ratio-limit" => 1.4000, +"ratio-limit-enabled" => true, })) + "\n") EOF sgo transmission-daemon @@ -236,235 +412,143 @@ done case $distro in debian|ubuntu) pi-nostart openvpn - # pi-nostart this doesn't seem to be good enough? + # pi-nostart this doesnt seem to be good enough? ser disable openvpn@client ser disable openvpn ;; - *) pi openvpn ;; - esac - - case $HOSTNAME in - tp|frodo) - case $distro in - debian|ubuntu) - log=$(mktemp) - cd /a/opt - wget -N https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb - set +e - s dpkg -i google-chrome-stable_current_amd64.deb &> $log - code=$? - set -e - case $code in - 1) - if grep '^dpkg: dependency problems prevent configuration of' \ - $log &>/dev/null; then - s apt-get -fy install - else - exit 1 - fi - ;; - 0) : ;; - *) exit $code - esac - ;; - arch) - pi google-chrome - ;; - esac - ;; - esac - - case $distro in - # ubuntu unknown. probably the same as debian, just check if the - # init scripts come with the package. - debian) - # copied from arch, but moved to etc - s dd of=/etc/systemd/user/synergys.service <<'EOF' -[Unit] -Description=Synergy Server Daemon -After=network.target - -[Service] -User=%i -ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf -Restart=on-failure - -[Install] -WantedBy=multi-user.target -EOF - s dd of=/etc/systemd/user/synergys.socket <<'EOF' -[Unit] -Conflicts=synergys@.service - -[Socket] -ListenStream=24800 -Accept=false - -[Install] -WantedBy=sockets.target -EOF - ;;& - *) - pi synergy - # taken from arch wiki. - s dd of=/etc/systemd/system/synergyc@.service <<'EOF' -[Unit] -Description=Synergy Client -After=network.target - -[Service] -User=%i -ExecStart=/usr/bin/synergyc --no-daemon treetowl -Restart=on-failure -# per man systemd.unit, StartLimitInterval, by default we -# restart more than 5 times in 10 seconds. -# And this param defaults too 200 miliseconds. -RestartSec=3s - -[Install] -WantedBy=multi-user.target -EOF - case $HOSTNAME in - frodo) - sgo synergyc@ian - systemctl --user start synergys - systemctl --user enable synergys - ;; - treetowl) systemctl --user enable synergys ;; - esac - ;; - esac - - case $distro in - # tk for gitk - arch) spa git tk ;; - *) spa git ;; - esac - - case $distro in - arch) spa the_silver_searcher ;; - debian|ubuntu) spa silversearcher-ag ;; - # fedora unknown - esac + *) pi openvpn ;; +esac - # printer - case $distro in - arch) - pi cups ghostscript gsfonts # from arch wiki cups page - pi hplip # from google - s gpasswd -a $USER sys # from arch wiki - sgo org.cups.cupsd.service - # goto http://127.0.0.1:631 - # administration tab, add new printer button. - # In debian, I could use hte recommended driver, - # in arch, I had to pick out the 6L driver. - ;; - debian|ubuntu) - spa hplip - ;; - # other distros unknown - esac +pi wget +case $HOSTNAME in + tp|frodo) + case $distro in + debian|ubuntu) + log=$(mktemp) + cd /a/opt + wget -N https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + set +e + s dpkg -i google-chrome-stable_current_amd64.deb &> $log + code=$? + set -e + case $code in + 1) + if grep '^dpkg: dependency problems prevent configuration of' \ + $log &>/dev/null; then + s apt-get -fy install + else + exit 1 + fi + ;; + 0) : ;; + *) exit $code + esac + ;; + arch) + pi google-chrome + ;; + esac + ;; +esac +# printer +case $distro in + arch) + pi cups ghostscript gsfonts # from arch wiki cups page + pi hplip # from google + s gpasswd -a $USER sys # from arch wiki + sgo org.cups.cupsd.service + # goto http://127.0.0.1:631 + # administration tab, add new printer button. + # In debian, I could use hte recommended driver, + # in arch, I had to pick out the 6L driver. + ;; + debian|ubuntu) + spa hplip + ;; + # other distros unknown +esac - case $distro in - ubuntu|debian) spa ack-grep ;; - arch|fedora) spa ack ;; - # fedora unknown - esac - case $distro in - ubuntu|debian) pi --no-install-recommends mairix notmuch ;; - fedora|arch) spa mairix notmuch ;; - esac - case $distro in - arch) spa nfs-utils ;; - ubuntu|debian) spa nfs-client ;; - esac - case $distro in - ubuntu|debian) spa par2 ;; - arch|fedora) spa par2cmdline ;; - esac - # needed for my tex resume - case $distro in - ubuntu|debian) spa texlive-full ;; - arch) spa texlive-most ;; - # fedora unknown - esac +case $distro in + ubuntu|debian) pi --no-install-recommends mairix notmuch ;; + fedora|arch) spa mairix notmuch ;; +esac +case $distro in + arch) spa nfs-utils ;; + ubuntu|debian) spa nfs-client ;; +esac +case $distro in + ubuntu|debian) spa par2 ;; + arch|fedora) spa par2cmdline ;; +esac - case $distro in - ubuntu) - # flash, unrar, codecs, ms fonts. - # This has a manual prompt. - spa ubuntu-restricted-extras - ;; - fedora) - pi yum-utils - # rpm fusion recommended codecs - s su -c "yum localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm" - pi gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg\ - xine-lib-extras-freeworld - ;; - esac +# needed for my tex resume +case $distro in + ubuntu|debian) spa texlive-full ;; + arch) spa texlive-most ;; + # fedora unknown +esac - case $distro in - # optional dep for firefox for h.264 video - arch) spa gst-libav ;; - # other distros, probably come by default - esac +case $distro in + ubuntu) + # flash, unrar, codecs, ms fonts. + # This has a manual prompt. + spa ubuntu-restricted-extras + ;; + fedora) + pi yum-utils + # rpm fusion recommended codecs + s su -c "yum localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm" + pi gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg\ + xine-lib-extras-freeworld + ;; +esac - case $distro in - fedora|ubuntu|debian) spa gnupg-agent ;; - arch) : ;; - esac +case $distro in + # optional dep for firefox for h.264 video + arch) spa gst-libav ;; + # other distros, probably come by default +esac +case $distro in + fedora|ubuntu|debian) spa gnupg-agent ;; + arch) : ;; +esac - case $distro in - fedora) spa pinentry-gtk ;; - *) : ;; # comes default or with other packages - esac - case $distro in - arch) spa firefox pulseaudio;; - *) : ;; # comes default or with other packages - esac +case $distro in + fedora) spa pinentry-gtk ;; + *) : ;; # comes default or with other packages +esac - case $distro in - arch|debian|ubuntu) - spa bash-completion - ;; - # others unknown - esac +case $distro in + arch) spa firefox pulseaudio;; + *) : ;; # comes default or with other packages +esac - case $distro in - arch) spa ttf-dejavu;; - debian|ubuntu) spa fonts-dejavu ;; - # others unknown - esac +case $distro in + arch) spa ttf-dejavu;; + debian|ubuntu) spa fonts-dejavu ;; + # others unknown +esac - case $distro in - debian|ubuntu) spa ntp;; - arch) - pi ntp - sgo ntpd - ;; - # others unknown - esac - case $distro in - arch) spa xorg-xev;; - debian|ubuntu) spa x11-utils ;; - # others unknown - esac +case $distro in + arch) spa xorg-xev;; + debian|ubuntu) spa x11-utils ;; + # others unknown +esac - case $distro in - arch) pi virt-install;;& - debian|ubuntu) pi virtinst ;;& - *) pi virt-manager ;; # creates the libvirt group in debian at least - # others unknown - esac - # allow user to run vms, from debian handbook - for x in ian traci; do s usermod -a -G libvirt $x; done +case $distro in + arch) pi virt-install;;& + debian|ubuntu) pi virtinst ;;& + *) pi virt-manager ;; # creates the libvirt group in debian at least + # others unknown +esac +# allow user to run vms, from debian handbook +for x in ian traci; do s usermod -a -G libvirt,kvm $x; done # bridge networking as user fails. google lead here, but it doesn't work: # oh well, I give up. # http://wiki.qemu.org/Features-Done/HelperNetworking @@ -496,7 +580,7 @@ case $distro in # dnsmasq & ebtables for nat networking in libvirt # qemu for qemu-img, bind-tools for dig # dmidecode just because syslog complains - pi unzip wget xorg-xmodmap dmidecode ebtables\ + pi unzip xorg-xmodmap dmidecode ebtables\ bridge-utils dnsmasq qemu bind-tools # otherwise we get error about accessing kvm module. # seems like there might be a better way, but google was a bit vague. @@ -512,11 +596,6 @@ case $distro in ;; esac -case $distro in - *) pi at ;;& - arch) sgo atd ;; -esac - case $distro in arch) pi virtviewer ;; *) : ;; # other distros have it as a dependency afaik. @@ -524,19 +603,6 @@ esac -case $distro in - arch) - # ubuntu 14.04 uses b-cron, - # but it's not maintained in arch. - # of the ones in the main repos, cronie is only one maintained. - # fcron appears abandoned software. - pi cronie - sgo cronie - ;; - *) : ;; # other distros come with cron. -esac - - case $distro in fedora) cabal install shellcheck ;; *) spa shellcheck ;; @@ -552,15 +618,19 @@ esac case $distro in - debian|ubuntu) spa android-tools-adb ;; + debian|ubuntu) spa android-tools-adb/unstable ;; arch) spa android-tools ;; # other distros unknown esac - case $distro in - fedora) spa unrar ;; - *) spa unrar-free ;; + debian) + if [[ `debian-archive` == testing ]]; then + # has no unstable dependencies + spa bitcoin-qt/unstable + fi + ;; + # other distros unknown esac @@ -596,13 +666,12 @@ case $distro in esac -# leave this for last so it doesn't do a bunch of other apps -# which I want explicitly installed in case I switch DE's case $distro in debian) pi task-cinnamon-desktop # in settings, change scrolling to two-finger, # because the default edge scroll doesn\'t work. + pu transmission-gtk ;; # others unknown esac @@ -613,7 +682,75 @@ case $distro in # already in debian jessie esac -pi "${simple_packages[@]}" + + + +# note this failed running at the beginning of this file, +# because no systemd user instance was running. +# Doing systemd --user resulted in +# Trying to run as user instance, but $XDG_RUNTIME_DIR is not set +case $distro in + # ubuntu unknown. probably the same as debian, just check if the + # init scripts come with the package. + debian) + # copied from arch, but moved to etc + s dd of=/etc/systemd/user/synergys.service <<'EOF' +[Unit] +Description=Synergy Server Daemon +After=network.target + +[Service] +User=%i +ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf +Restart=on-failure + +[Install] +WantedBy=multi-user.target +EOF + s dd of=/etc/systemd/user/synergys.socket <<'EOF' +[Unit] +Conflicts=synergys@.service + +[Socket] +ListenStream=24800 +Accept=false + +[Install] +WantedBy=sockets.target +EOF + ;;& + *) + pi synergy + # taken from arch wiki. + s dd of=/etc/systemd/system/synergyc@.service <<'EOF' +[Unit] +Description=Synergy Client +After=network.target + +[Service] +User=%i +ExecStart=/usr/bin/synergyc --no-daemon treetowl +Restart=on-failure +# per man systemd.unit, StartLimitInterval, by default we +# restart more than 5 times in 10 seconds. +# And this param defaults too 200 miliseconds. +RestartSec=3s + +[Install] +WantedBy=multi-user.target +EOF + case $HOSTNAME in + frodo) + ser enable synergyc@ian + ser start synergyc@ian ||: # X might not be running yet + systemctl --user start synergys ||: + systemctl --user enable synergys + ;; + treetowl) systemctl --user enable synergys ;; + esac + ;; +esac + ######### end misc packages ######### @@ -628,6 +765,8 @@ pi "${simple_packages[@]}" ######## unfinished # todo, finish configuring smart. + +pi smartmontools # mostly from https://wiki.archlinux.org/index.php/S.M.A.R.T. # turn on smart. background on options: # first line, -a = test everyting on all devices. @@ -656,21 +795,32 @@ DEVICESCAN -a -o on -S on -n standby,q $sched\ ########### misc stuff -if [[ $HOSTNAME == frodo ]]; then - tu /etc/exports <<'EOF' -/k 192.168.1.0/24(rw,nohide,no_subtree_check,insecure) -EOF - s exportfs -ra -fi -if [[ `debian-archive` == stable ]]; then - s dd of=/etc/apt/preferences.d/unison-gtk <<'EOF' +case $distro in + debian|ubuntu) + case `debian-archive` in + stable) + s dd of=/etc/apt/preferences.d/unison-gtk <<'EOF' Explanation: Allow unison-gtk to be upgraded Package: unison-gtk Pin: release a=unstable Pin-Priority: 500 EOF -fi + # dont think using testing is needed since I figured out how to + # deal with mismatching unison compilers, but I dont + # see any reason to revert it, since it only installs + # a single package which is primarily a single binary + pi unison-gtk/testing unison/testing + ;; + testing) + piunison unison-gtk + ;; + esac + ;; + arch) + pi unison gtk2 + ;; +esac case $distro in arch) @@ -681,11 +831,11 @@ EOF ;; esac - -case $distro in - arch|debian|ubuntu) pi btrbk ;; - # others unknown -esac +# not using it atm, and for jessie, it depends on a higher version of btrfs-tools +# case $distro in +# arch|debian|ubuntu) pi btrbk ;; +# # others unknown +# esac if [[ $HOSTNAME == treetowl ]] && [[ `debian-archive` != testing ]]; then # fail2 ban is broken, with a workaround, per @@ -697,128 +847,6 @@ fi -# disable motd junk. -case $(distro-name) in - debian) - # allows me to pipe with ssh -t, and gets rid of spam - # http://forums.debian.net/viewtopic.php?f=5&t=85822 - # i'd rather disable the service than comment the init file - # this says disabling the service, it will still get restarted - # but this script doesn't do anything on restart, so it should be fine - s dd of=/var/run/motd.dynamic if=/dev/null - s update-rc.d motd disable - ;; - ubuntu) - # this isn't a complete solution. It still shows me when updates are available, - # but it's no big deal. - s t /etc/update-motd.d/10-help-text /etc/update-motd.d/00-header - ;; -esac - -# automatic updates -# reference: -# https://debian-handbook.info/browse/stable/sect.regular-upgrades.html -# /etc/cron.daily/apt calls unattended-upgrades -# /usr/share/doc/unattended-upgrades# cat README.md -# /etc/apt/apt.conf.d/50unattended-upgrades -if isdebian; then - pi unattended-upgrades - s dd of=/etc/apt/apt.conf.d/10periodic <<'EOF' -# this file was mostly just comments. -APT::Periodic::Update-Package-Lists "1"; -APT::Periodic::Download-Upgradeable-Packages "1"; -APT::Periodic::AutocleanInterval "7"; -APT::Periodic::Unattended-Upgrade "1"; -EOF - { cat <<'EOF' -Unattended-Upgrade::Mail "root"; -Unattended-Upgrade::MailOnlyOnError "true"; -Unattended-Upgrade::Remove-Unused-Dependencies "true"; -Unattended-Upgrade::Origins-Pattern { -# default is just upgrade main and security, not updates. -EOF - if isdebian-testing; then - cat <<'EOF' -# for testing, only do security updates. - "origin=Debian,codename=${distro_codename},label=Debian-Security"; -EOF - else - cat <<'EOF' -# These are stable packages only getting bugfixes anyways. - "origin=*"; -EOF - cat <<'EOF' -}; -EOF - fi - } | s dd of=/etc/apt/apt.conf.d/50unattended-upgrades - echo $- > /tmp/x -fi - - - -######### begin postfix ######## -# based on,http://www.postfix.org/qmgr.8.html and my notes in gnus -# originally tried moving specific directories under /var/spool/postfix, -# but postfix didn't like that -if [[ ! -L /var/spool/postfix ]]; then - ser stop postfix - n=/q/postfix-`distro-name``debian-archive` - if [[ -e $n ]]; then - echo "$0: warning: $n already exists before we do the link, removing it" - rm -rf $n - fi - s mv /var/spool/postfix $n - s lnf -T $n /var/spool/postfix - ser start postfix - journalctl -n 20 | cat -fi - - -# This also works instead of ~/.forward -# s sed -i '/^root/d' /etc/aliases ||: -#echo "root: $HOSTNAME@bog.mm.st" | s tee -a /etc/aliases -# this can't be a symlink and has permission restrictions -# it might work in /etc/aliases, but this seems more proper. - -if s grep amazonaws /etc/postfix/sasl_passwd &>/dev/null; then - forward=$HOSTNAME@sallymae.club -else - forward=$HOSTNAME@bog.mm.st -fi -e $forward > ~/.forward -e $forward | s tee /root/.forward -s newaliases - -# if I wanted the from address to be renamed and sent to a different address, -# echo "sdx@localhost development@localhost" | sudo dd of=/etc/postfix/recipient_canonical -# sudo postmap hash:/etc/postfix/recipient_canonical -# sudo service postfix reload - - -# i'm assuming mail just won't work on systems without the sasl_passwd. -postconfin <<'EOF' -smtp_sasl_auth_enable = yes -smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd -smtp_sasl_security_options = noanonymous -smtp_tls_security_level = secure -message_size_limit = 20480000 -smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt -EOF -# ^ I ran into a log file not sending cuz of size. double from 10 to 20 meg limit - -s postmap hash:/etc/postfix/sasl_passwd -# offlineimap uses this too, it is much easier to use one location than to -# condition it's config and postfix's config -case $distro in - fedora) s lnf -T ca-certificates.crt /etc/ssl/ca-bundle.trust.crt ;; - *) : -esac - -s service postfix reload -sgo postfix - -############ end postfix ####### case $distro in @@ -911,7 +939,14 @@ EOF ;; esac -if [[ -e /i/video ]]; then +if [[ $HOSTNAME == frodo ]]; then + tu /etc/exports <<'EOF' +/k 192.168.1.0/24(rw,nohide,no_subtree_check,insecure) +EOF + s exportfs -rav +fi + +if [[ -e /k/video ]]; then # nohide = export filesystems mounted deeper than the export point # fsid=0 makes this export the "root" export # not documented in the man page, but this means @@ -923,11 +958,6 @@ if [[ -e /i/video ]]; then fi -# cron -f=/a/bin/$HOSTNAME-crontab -if [[ -e $f ]]; then - $f -fi e "$end_msg_var" @@ -1028,9 +1058,9 @@ case $distro in s /etc/init.d/samba start ;; - arch) - sgo samba - ;; + arch) + sgo samba + ;; esac tu /etc/hosts <<< "127.0.1.1 $(hostname).lan $(hostname)" @@ -1048,9 +1078,26 @@ if [[ $idev != $rootdev ]]; then mountpoint /mnt/iroot || s mount /mnt/iroot fi -# Do this again because it occasionally has changes and -# it can be run outside initial isntall. -s /a/bin/fai/fai/config/distro-install-common/end + +######### begin stuff belonging at the end ########## + + +# Apps we want to override others for default file handler: +# simplest way in debian is to just install them last. +simple_packages+=( + mpv +) + +case $distro in + ubuntu|debian) + spa spacefm-gtk3 ;; + arch) + spa spacefm ;; +esac + + +pi "${simple_packages[@]}" + if $pending_reboot; then echo "$0: pending reboot and then finished. doing it now."