Support env vars for {DESK,LAP,CLOUD}TOP devices

I recently changed my hostname for my desktop and laptop from

wpcarro.lon.corp.google.com -> zeno.lon.corp.google.com
wpcarro2                    -> seneca

If you're curious, the names Zeno and Seneca come from famous Stoic
philosophers. As you can see from this commit, my configuration depends on the
values of these hostnames.

Immediately impacted:
- .profile
- device.el

Not immediately impacted:
- configs/install
- configs/uninstall
- .ssh/config
- .zshrc*

* As a side note, I should stop supporting ZSH.

Using an .envrc file helps me DRY up some of my configuration. Ideally I should
only need to make changes to the .envrc file and then expect everything to work
as expected. Let's see how that goes.
This commit is contained in:
William Carroll 2020-01-29 12:38:19 +00:00
parent d28690d814
commit 093b566e71
7 changed files with 21 additions and 38 deletions

3
.envrc
View file

@ -1,2 +1,5 @@
export DOTFILES=~/dotfiles
export DESKTOP=zeno.lon.corp.google.com
export LAPTOP=seneca
export CLOUDTOP=wpcarro.c.googlers.com
NIX_PATH=nixpkgs=$HOME/.nix-defexpr/nixpkgs:depot=$HOME/depot:universe=$HOME/universe

View file

@ -3,14 +3,11 @@
configs="$DOTFILES/configs"
case $(hostname) in
# desktop
wpcarro.lon.corp.google.com)
$DESKTOP)
(cd "$configs/desktop" && stow --target="$HOME" .);;
# laptop
wpcarro2)
$LAPTOP)
(cd "$configs/work_laptop" && stow --target="$HOME" .);;
# cloudtop
wpcarro.c.googlers.com)
$CLOUDTOP)
(cd "$configs/cloudtop" && stow --target="$HOME" .);;
# Acer Manjaro laptop
acer-manjaro)

View file

@ -14,8 +14,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconst device/hostname->device
'(("wpcarro2" . work-laptop)
("wpcarro.lon.corp.google.com" . work-desktop))
'(("zeno.lon.corp.google.com" . work-desktop)
("seneca" . work-laptop))
"Mapping hostname to a device symbol.")
;; TODO: Should I generate these predicates?

View file

@ -51,16 +51,10 @@ export XSECURELOCK_NO_COMPOSITE=1
LOCALE_ARCHIVE=$(readlink ~/.nix-profile/lib/locale)/locale-archive
export LOCALE_ARCHIVE
# Set environment variables for Nix
# Don't run this for systems running NixOS
# Set environment variables for Nix. Don't run this for systems running NixOS.
# TODO: Learn why I can't use the variables from ~/dotfiles/.envrc.
case $(hostname) in
# desktop
wpcarro.lon.corp.google.com)
. ~/.nix-profile/etc/profile.d/nix.sh;;
# cloudtop
wpcarro.c.googlers.com)
. ~/.nix-profile/etc/profile.d/nix.sh;;
# work_laptop
wpcarro2)
. ~/.nix-profile/etc/profile.d/nix.sh;;
zeno.lon.corp.google.com) . ~/.nix-profile/etc/profile.d/nix.sh;;
seneca) . ~/.nix-profile/etc/profile.d/nix.sh;;
wpcarro.c.googlers.com) . ~/.nix-profile/etc/profile.d/nix.sh;;
esac

View file

@ -1,6 +1,6 @@
# Google work station
Host desktop
Hostname wpcarro.lon.corp.google.com
Hostname zeno.lon.corp.google.com
# Google cloud instance
Host cloudtop

View file

@ -34,18 +34,10 @@ antigen bundle zsh-users/zsh-syntax-highlighting
# Theming
case $(hostname) in
# desktop
wpcarro.lon.corp.google.com)
antigen theme frisk;;
# cloudtop
wpcarro.c.googlers.com)
antigen theme cloud;;
# laptop
wpcarro2)
antigen theme refined;;
# acer NixOS laptop
acer-manjaro)
antigen theme frisk;;
$DESKTOP) antigen theme frisk;;
$LAPTOP) antigen theme refined;;
$CLOUDTOP) antigen theme cloud;;
acer-manjaro) antigen theme frisk;;
esac
# Leave this last

View file

@ -3,14 +3,11 @@
configs="$DOTFILES/configs"
case $(hostname) in
# desktop
wpcarro.lon.corp.google.com)
$DESKTOP)
(cd "$configs/desktop" && stow --delete --target="$HOME" .);;
# laptop
wpcarro2)
$LAPTOP)
(cd "$configs/laptop" && stow --delete --target="$HOME" .);;
# cloudtop
wpcarro.c.googlers.com)
$CLOUDTOP)
(cd "$configs/cloudtop" && stow --delete --target="$HOME" .);;
esac