#!/usr/bin/env nu # # ~~~ dotfiles installer # # # ~~~ variables # get device let DEVICE_ID = match (uname | get nodename) { "glados" => "010", "wheatley" => "020", "localhost" => { if ((uname | get operating-system) == "Android") { "030" } else { error make -u { msg: "unsupported device" } } }, "HX7124.local" => "040", "caroline" => "110", "cavejohnson" => "120", _ => { error make -u { msg: "invalid device" } } } # get locations let DOTFILES_DIR = match ($DEVICE_ID) { "010" | "020" => $"($env.HOME)/src/dotfiles/src", "030" | "110" | "120" => $"($env.HOME)/dotfiles/src", "040" => $"($env.HOME)/Code/Dotfiles", _ => { error make -u { msg: "unsupported device" } } } # # ~~~ dotfiles # bash cp $"($DOTFILES_DIR)/bash/bash_profile" $"($env.HOME)/.bash_profile" if ($DEVICE_ID == "040") { cp $"($DOTFILES_DIR)/bash/mac_bashrc" $"($env.HOME)/.bashrc" } else { cp $"($DOTFILES_DIR)/bash/linux_bashrc" $"($env.HOME)/.bashrc" } # gammastep if ($DEVICE_ID == "010" or $DEVICE_ID == "020") { mkdir $"($env.HOME)/.config/gammastep" cp $"($DOTFILES_DIR)/gammastep/($DEVICE_ID)_config.ini" $"($env.HOME)/.config/gammastep/config.ini" } # kitty if ($DEVICE_ID == "010" or $DEVICE_ID == "020" or $DEVICE_ID == "040") { mkdir $"($env.HOME)/.config/kitty" cp $"($DOTFILES_DIR)/kitty/($DEVICE_ID)_kitty.conf" $"($env.HOME)/.config/kitty/kitty.conf" } # mako if ($DEVICE_ID == "010" or $DEVICE_ID == "020") { mkdir $"($env.HOME)/.config/mako" cp $"($DOTFILES_DIR)/mako/config.ini" $"($env.HOME)/.config/mako/config" } # neovim mkdir $"($env.HOME)/.config/nvim" cp $"($DOTFILES_DIR)/nvim/init.lua" $"($env.HOME)/.config/nvim/init.lua" # nushell let nushell_dir = match ($DEVICE_ID) { "040" => $"($env.HOME)/Library/Application Support/nushell", _ => $"($env.HOME)/.config/nushell" } mkdir $nushell_dir cp $"($DOTFILES_DIR)/nushell/($DEVICE_ID)_config.nu" $"($nushell_dir)/config.nu" cp $"($DOTFILES_DIR)/nushell/($DEVICE_ID)_environment.nu" $"($nushell_dir)/environment.nu" if ($DEVICE_ID == "010" or $DEVICE_ID == "020" or $DEVICE_ID == "040") { mkdir $"($nushell_dir)/scripts" cp $"($DOTFILES_DIR)/nushell/scripts/youtube.nu" $"($nushell_dir)/scripts/youtube.nu" } # yt-dlp if ($DEVICE_ID == "010" or $DEVICE_ID == "020" or $DEVICE_ID == "040") { mkdir $"($env.HOME)/.config/yt-dlp" cp $"($DOTFILES_DIR)/yt-dlp/video.conf" $"($env.HOME)/.config/yt-dlp/video.conf" }