nixos/install.sh

70 lines
1.7 KiB
Bash
Executable file

#! /usr/bin/env sh
# Install various dotfiles into their proper places
create_symlink () {
FILENAME="$(basename $2)"
if [ ! -e "$1/$FILENAME" ]
then
ln -s $(readlink -f "$2") "$1/$FILENAME"
echo "$(readlink -f $2) -> $1/$FILENAME"
else
echo "$1/$FILENAME already exists"
fi
}
git_clone_if_missing () {
if [ ! -d $2 ]
then
git clone --depth 1 $1 $2
else
echo "$1 already checked out -> $2"
fi
}
# .config files
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
mkdir -p "$CONFIG_DIR"
for FILE in config/*
do
create_symlink $CONFIG_DIR $FILE
done
mkdir -p "$CONFIG_DIR/systemd/user"
for FILE in systemd/*
do
create_symlink $CONFIG_DIR/systemd/user $FILE
done
# SSH agent
ssh_agent_export="export SSH_AUTH_SOCK=\"\$XDG_RUNTIME_DIR/ssh-agent.socket\""
if [ -e "$HOME/.profile" ]
then
grep "$ssh_agent_export" "$HOME/.profile" > /dev/null || echo "$ssh_agent_export" >> "$HOME/.profile"
fi
systemctl --user enable ssh-agent.service
# SSH sockets
mkdir -p "$HOME/.ssh/sockets"
# Install arch packages
sudo pacman --needed -S $(awk '{print $1}' pacman.txt) || echo "Issue installing pacman packages"
# nvim setup - install Packer
PACKER_REPO="https://github.com/wbthomason/packer.nvim"
PACKER_DIR="$HOME/.local/share/nvim/site/pack/packer/start/packer.nvim"
git_clone_if_missing $PACKER_REPO $PACKER_DIR
# oh-my-zsh links (if available)
OHMYZSH_DIR="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}"
if [ -d $OHMYZSH_DIR ]
then
# Powerlevel10k theme
POWERLEVEL_REPO="https://github.com/romkatv/powerlevel10k.git"
POWERLEVEL_DIR="$OHMYZSH_DIR/themes/powerlevel10k"
git_clone_if_missing $POWERLEVEL_REPO $POWERLEVEL_DIR
# aliases
create_symlink $OHMYZSH_DIR "./aliases.zsh"
fi