host info updates
[distro-setup] / distro-begin
index 9780ed65226a08ab3b12861b154aaa4f9fc94469..59e50d595efa3b4935707ab86e3d827ab7c2f1d7 100755 (executable)
@@ -1,22 +1,35 @@
 #!/bin/bash
-# Copyright (C) 2016 Ian Kelling
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Setup Ian's computers
+# Copyright (C) 2024  Ian Kelling
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# SPDX-License-Identifier: GPL-3.0-or-later
 
-# for setting up a new machine
+#### for setting up a new machine
 # usage: $0 [-r] [HOSTNAME]
 # HOSTNAME changes the machine's hostname
 
+# Update target_down alerts in
+# /a/bin/ds/filesystem/etc/prometheus/rules/iank.yml
+#
+# Update hostnames in /b/ds/check-remote-mailqs
+# Update hostnames in /b/ds/machine_specific/*.hosts /p/c/machine_specific/*.hosts
+# Update hostnames in this file
+
+### end new machine setup
+
 # tips:
 # run any sudo command first so your pass is cached
 # set the scrollback to unlimited in case something goes wrong
@@ -44,7 +57,7 @@
 
 
 ### make ssh interactive shell run better. for when running line interactively line by line
-sudo bash -c '/a/exe/ssh-emacs-setup'
+sudo bash -c '/a/exe/ssh-emacs-setup' || exit $?
 
 ##### setup error handling
 interactive=true  # set this to false to force set -x
@@ -52,7 +65,7 @@ interactive=true  # set this to false to force set -x
 if ! $interactive; then
   set -x
 fi
-source /a/bin/errhandle/err
+source /a/bin/bash-bear-trap/bash-bear
 
 mkdir -p ~/.local
 err-cleanup() {
@@ -100,7 +113,7 @@ source $script_dir/pkgs
 set +x
 source /a/bin/distro-functions/src/identify-distros
 $interactive || set -x
-for f in kd x2 x3 x8 frodo tp li bk je demohost kw sy bo; do
+for f in kd x2 x3 x8 frodo tp li bk je demohost kw sy bo so; do
   eval "$f() { [[ $HOSTNAME == $f ]]; }"
 done
 codename=$(debian-codename)
@@ -297,8 +310,8 @@ set +x
 err-allow
 source /etc/profile.d/environment.sh
 export LC_USEBASHRC=t
-# shellcheck source=./.bashrc
-source ~/.bashrc
+# shellcheck source=./brc
+source ~/brc
 err-catch
 $interactive || set -x
 
@@ -371,7 +384,7 @@ if [[ -e $f ]]; then
       fi
     fi
   done
-  if $apparmor_reload && systemctl is-enabled apparmor; then
+  if $apparmor_reload && systemctl is-active apparmor; then
     m ser reload apparmor
   fi
 fi
@@ -474,6 +487,7 @@ if isarch; then
 fi
 
 #### update all packages
+# shellcheck disable=SC2119 # obvious
 pup
 
 
@@ -493,7 +507,7 @@ case $(debian-codename-compat) in
     file=/etc/modprobe.d/evbug.conf
     line="blacklist evbug"
     if [[ $(cat $file) != "$line" ]]; then
-      sudo dd of=$file 2>/dev/null <<<"$line"
+      sudo dd of=$file status=none <<<"$line"
       sudo depmod -a
       sudo update-initramfs -u
     fi
@@ -623,7 +637,7 @@ if has_btrfs; then
 
     first_root_crypt=$(awk '$2 == "/" {print $1}' /etc/mtab)
     tu /etc/fstab <<EOF
-$first_root_crypt  /nocow  btrfs  noatime,subvol=nocow$( ((`nproc` > 2)) && echo ,compress=zstd )  0 0
+$first_root_crypt  /nocow  btrfs  noatime,subvol=nocow$( (( $(nproc) > 2)) && echo ,compress=zstd )  0 0
 EOF
     sudo mkdir -p $dir
     sudo chown $USER:$USER $dir
@@ -637,6 +651,7 @@ case $HOSTNAME in
   kd)
     tu /etc/fstab <<'EOF'
 /dev/mapper/crypt_dev_ata-Samsung_SSD_870_QVO_8TB_S5VUNG0N900656V-part7  /d  btrfs  nofail,x-systemd.device-timeout=30s,x-systemd.mount-timeout=30s,noatime,compress=zstd,subvol=d  0 0
+/d/m /i  none  bind,compress=zstd  0 0
 EOF
     if ! mountpoint /d &>/dev/null; then
       sudo mkdir -p /d
@@ -644,6 +659,10 @@ EOF
         sudo mount /d
       fi
     fi
+    if ! mountpoint /i &>/dev/null; then
+      sudo mkdir -p /i
+      sudo mount /i
+    fi
     ;;
   frodo)
     tu /etc/fstab <<'EOF'
@@ -696,8 +715,7 @@ if has_monitor; then
 
 
   ###### install X
-  # no recommends due to this bug: https://trisquel.info/en/issues/26525
-  pi --no-install-recommends i3
+  pi i3
 
   ##### install xinput
   case $(distro-name) in