aboutsummaryrefslogtreecommitdiffstats
path: root/setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup.sh')
-rwxr-xr-xsetup.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/setup.sh b/setup.sh
new file mode 100755
index 0000000..5ffe5dc
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+# Fedora Workstation - Setup
+# Author: Alex Schofield (@ajschofield)
+#
+# This script sets up dotfiles and configuration files on a new system.
+
+set -e # Exit immediately if something fails
+
+# Get sudo privileges before continuing...
+sudo -v
+echo "We should be good to go!"
+
+# Update everything before continuing
+echo "Fetching new updates and installing..."
+sudo dnf update -y
+
+# Install the bare essentials
+sudo dnf install -y rust cargo neovim sway kitty curl git zsh
+
+# Install lvim (taken from lunarvim.org/docs/installation)
+
+if [ ! -f ~/.local/bin/lvim ]; then
+ LV_BRANCH='release-1.4/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.4/neovim-0.9/utils/installer/install.sh)
+fi
+
+# Install oh-my-posh
+
+if [ ! -f ~/.local/bin/oh-my-posh ]; then
+ curl -s https://ohmyposh.dev/install.sh | bash -s -- -d ~/.local/bin
+fi
+
+# Clone the dotfiles repository
+DOT_DIR="$HOME/.dotfiles"
+if [ -d "$DOT_DIR" ]; then
+ echo "Dotfiles directory already exists. Pulling latest changes..."
+ git -C "$DOT_DIR" pull
+else
+ echo "Dotfiles directory doesn't exist. Cloning..."
+ git clone https://github.com/ajschofield/dotfiles "$DOT_DIR"
+fi
+
+# Apply the configurations using symlinks
+echo "Applying configurations..."
+
+# nvim/lvim configuration
+LVIM_SRC="$DOT_DIR/lvim"
+LVIM_DEST="$HOME/.config/lvim"
+if [ -d "$LVIM_SRC" ]; then
+ echo "Linking lvim configuration..."
+ rm -rf "$LVIM_DEST" # Remove the existing directory/file if present
+ ln -sf "$LVIM_SRC" "$LVIM_DEST"
+else
+ echo "Warning: $LVIM_SRC does not exist. Skipping lvim configuration."
+fi
+
+# Kitty configuration
+KITTY_SRC="$DOT_DIR/kitty"
+KITTY_DEST="$HOME/.config/kitty"
+if [ -d "$KITTY_SRC" ]; then
+ echo "Linking kitty configuration..."
+ rm -rf "$KITTY_DEST"
+ ln -sf "$KITTY_SRC" "$KITTY_DEST"
+else
+ echo "Warning: $KITTY_SRC does not exist. Skipping kitty configuration."
+fi
+
+# zsh configuration
+ZSH_SRC="$DOT_DIR/zsh/.zshrc"
+ZSH_DEST="$HOME/.zshrc"
+if [ -f "$ZSH_SRC" ]; then
+ echo "Linking zsh configuration..."
+ rm -f "$ZSH_DEST"
+ ln -sf "$ZSH_SRC" "$ZSH_DEST"
+else
+ echo "Warning: $ZSH_SRC does not exist. Skipping zsh configuration."
+fi
+
+echo "Configurations have been installed."
git.ajschof.me — hosted by ajschofield — powered by cgit