52 lines
1.6 KiB
Bash
Executable File
52 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install my dotfiles on a variety of systems
|
|
|
|
set -ex
|
|
|
|
echo "PWD: $PWD"
|
|
# Coder dotfiles (and most other ways of doing this) will not do a recursive clone, so do that in install script.
|
|
git submodule init && git submodule update
|
|
# Match case insensitively to make things easier for this part
|
|
shopt -s nocasematch
|
|
|
|
echo "Installing dotfiles..."
|
|
|
|
if [ "${CODER_TEMPLATE_TYPE}" == "Devcontainer" ]; then
|
|
installers/install-nix.sh
|
|
installers/install-nix-packages-flake.sh
|
|
elif [ "${CODER_OS_FAMILY:-}" == "Ubuntu" ]; then
|
|
echo "Detected OS as Ubuntu, using apt";
|
|
sudo apt-get update;
|
|
sudo apt-get install -y stow;
|
|
installers/install-nix.sh
|
|
elif [ -f /etc/os-release ]; then
|
|
echo "Idenitfying OS to install GNU stow..."
|
|
if grep -q -i debian /etc/os-release; then
|
|
echo "Detected OS as Ubuntu, using apt";
|
|
sudo apt-get update;
|
|
sudo apt-get 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
|
|
|
|
shopt -u nocasematch
|
|
|
|
# Apply the dotfiles with stow
|
|
echo "Running apply dotfiles"
|
|
./apply-dotfiles
|
|
echo "Dotfiles applied successfully"
|