Make dotfiles compatible with gitpod style dotfiles

Add an install.sh that attempts to determine the OS, install stow and
then call my apply-dotfiles script to use stow.

The old installation process that was based on nix, has been moved to
nix-install.
This commit is contained in:
Andrew R. M 2023-10-06 17:44:28 +00:00
parent 0a90400806
commit cca0ddefd1
4 changed files with 63 additions and 11 deletions

View File

@ -1,13 +1,26 @@
#!/usr/bin/env nix-shell
#! nix-shell -p stow -i bash
#!/usr/bin/env bash
stow bash
stow sh
stow readline
apply_dotfile() {
directory_to_stow="${1}"
stow --adopt -S -t "${HOME}" "${directory_to_stow}"
}
stow vim
# Adopt will change the files in stow to match existing files.
# We don't want this, we just want to handle existing files gracefully.
# We simply adopt all the files and then at the end restore our git repo to undo changes
restore_from_adoption() {
git restore .
}
stow ruby
stow python
apply_dotfile bash
apply_dotfile sh
apply_dotfile readline
stow ssh
apply_dotfile vim
apply_dotfile ruby
apply_dotfile python
apply_dotfile ssh
restore_from_adoption

View File

@ -1,5 +1,4 @@
#!/usr/bin/env nix-shell
#! nix-shell -p stow envsubst -i bash
#!/usr/bin/env bash
envsubst -i taskwarrior/.taskrc.envsubst.template -o taskwarrior/.taskrc
stow taskwarrior

33
install.sh Executable file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
echo "CURRENT LOCATION: $PWD"
echo "Installing dotfiles..."
if [ -f /etc/os-release ]; then
echo "Idenitfying OS to install GNU stow..."
if grep -q -i debian /etc/os-release; then
echo "You've got Debian!";
sudo apt update;
sudo apt install -y stow;
elif grep -q -i rhel /etc/os-release || grep -q -i fedora /etc/os-release; then
echo "You've got RedHat (or maybe Fedora)! Which is unsupported right now sorry!";
# sudo yum install -y stow;
# sudo yum clean all;
exit 1
elif grep -q -i alpine /etc/os-release; then
echo "You've got Alpine! Which is unsupported right now sorry!";
exit 1;
# apk add --no-cache jq curl;
else
echo "ERROR: Unable to identify OS!" 1>&2;
exit 1;
fi;
else
echo "ERROR: Unable to find '/etc/os-release' information!" 1>&2;
exit 1;
fi
# Apply the dotfiles with stow
echo "RUNNING APPLY DOTFILES"
./apply-dotfiles
echo "RAN APPLY DOTFILES"

7
nix-install Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env nix-shell
#! nix-shell -p stow envsubst -i bash
# Uses nix shell to setup the dotfiles
./apply-dotfiles
# Secret dotfiles need interactivity anyways, not worrying about this for now
# ./apply-secret-dotfiles