overhaul of some dotfiles
This commit is contained in:
@@ -7,22 +7,31 @@ echo "--- Starting Development Tools Setup ---"
|
||||
|
||||
# Setup NVIM
|
||||
echo "Setting up Neovim..."
|
||||
if command -v nvim &>/dev/null && [[ "$(nvim --version | head -n 1)" == "NVIM"* ]]; then
|
||||
echo "Neovim appears to be installed. Checking version/source or skipping."
|
||||
# Add logic here if you want to ensure it's your /opt/nvim version
|
||||
_nvim_asset_name() {
|
||||
case "$(uname -m)" in
|
||||
x86_64) echo "nvim-linux-x86_64" ;;
|
||||
aarch64) echo "nvim-linux-arm64" ;;
|
||||
*) echo "Unsupported arch for Neovim: $(uname -m)" >&2; exit 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
NVIM_LATEST="$(curl -fsSL https://api.github.com/repos/neovim/neovim/releases/latest | grep '"tag_name"' | cut -d'"' -f4)"
|
||||
NVIM_INSTALLED="$(nvim --version 2>/dev/null | head -n1 | awk '{print $2}')"
|
||||
|
||||
if [ "$NVIM_INSTALLED" = "$NVIM_LATEST" ]; then
|
||||
echo "Neovim ${NVIM_LATEST} already up-to-date."
|
||||
else
|
||||
echo "Downloading and installing Neovim to /opt/nvim..."
|
||||
NVIM_ASSET="$(_nvim_asset_name)"
|
||||
echo "Installing Neovim ${NVIM_LATEST} (${NVIM_ASSET})..."
|
||||
TEMP_NVIM_DIR=$(mktemp -d)
|
||||
curl -Lo "${TEMP_NVIM_DIR}/nvim-linux64.tar.gz" https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
|
||||
curl -fsSLo "${TEMP_NVIM_DIR}/${NVIM_ASSET}.tar.gz" \
|
||||
"https://github.com/neovim/neovim/releases/latest/download/${NVIM_ASSET}.tar.gz"
|
||||
sudo rm -rf /opt/nvim
|
||||
sudo tar -C /opt -xzf "${TEMP_NVIM_DIR}/nvim-linux64.tar.gz"
|
||||
rm -rf "${TEMP_NVIM_DIR}" # Clean up
|
||||
echo "Neovim installed to /opt/nvim. Add /opt/nvim-linux64/bin to your PATH."
|
||||
# Consider adding to PATH via a profile script if not handled by zshrc/bashrc symlinks
|
||||
if [ ! -f /usr/local/bin/nvim ] && [ -d /opt/nvim-linux64/bin ]; then
|
||||
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/nvim
|
||||
echo "Symlinked nvim to /usr/local/bin/nvim"
|
||||
fi
|
||||
sudo tar -C /opt -xzf "${TEMP_NVIM_DIR}/${NVIM_ASSET}.tar.gz"
|
||||
sudo mv "/opt/${NVIM_ASSET}" /opt/nvim 2>/dev/null || true
|
||||
rm -rf "${TEMP_NVIM_DIR}"
|
||||
sudo ln -sf /opt/nvim/bin/nvim /usr/local/bin/nvim
|
||||
echo "Neovim ${NVIM_LATEST} installed to /opt/nvim, symlinked to /usr/local/bin/nvim"
|
||||
fi
|
||||
|
||||
# pynvim
|
||||
@@ -116,17 +125,16 @@ if ! command -v oh-my-posh &>/dev/null; then
|
||||
echo "➤ Installing Oh-My-Posh latest release..."
|
||||
# GitHub /releases/latest/download will 302 redirect to actual asset
|
||||
BIN_URL="https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-${OS}-${ARCH}"
|
||||
THEME_URL="https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/jandedobbeleer.omp.json"
|
||||
|
||||
mkdir -p "${HOME}/.local/bin"
|
||||
TMPBIN="$(mktemp)"
|
||||
curl -fsSL -L "${BIN_URL}" -o "${TMPBIN}"
|
||||
sudo install -m755 "${TMPBIN}" /usr/local/bin/oh-my-posh
|
||||
install -m755 "${TMPBIN}" "${HOME}/.local/bin/oh-my-posh"
|
||||
rm -f "${TMPBIN}"
|
||||
echo "Installed oh-my-posh to /usr/local/bin/oh-my-posh"
|
||||
echo "Installed oh-my-posh to ~/.local/bin/oh-my-posh"
|
||||
|
||||
mkdir -p "${HOME}/.poshthemes"
|
||||
curl -fsSL -L "${THEME_URL}" -o "${HOME}/.poshthemes/jandedobbeleer.omp.json"
|
||||
echo "Downloaded default theme to ~/.poshthemes/"
|
||||
echo "Theme is managed via dotfiles repo at terminal/posh-theme.omp.json"
|
||||
echo "Run 04-config-symlinks.sh to link it to ~/.config/oh-my-posh/theme.omp.json"
|
||||
|
||||
else
|
||||
echo "✔ Oh-My-Posh already installed: $(oh-my-posh --version | head -n1)"
|
||||
@@ -144,18 +152,5 @@ else
|
||||
echo "For the current session, you can run: source \"\$HOME/.cargo/env\""
|
||||
fi
|
||||
|
||||
# Setup Starship
|
||||
echo "Installing Starship prompt..."
|
||||
if command -v starship &>/dev/null; then
|
||||
echo "Starship already installed."
|
||||
else
|
||||
# The -y flag attempts a non-interactive install
|
||||
if curl -sS https://starship.rs/install.sh | sh -s -- -y; then
|
||||
echo "Starship installed. Add 'eval \"\$(starship init zsh)\"' (or bash/fish) to your shell config."
|
||||
else
|
||||
echo "ERROR: Starship installation failed."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "--- Development Tools Setup Finished ---"
|
||||
|
||||
|
||||
@@ -11,19 +11,19 @@ if [ -z "$SCRIPT_ROOT_DIR" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Starship Config File
|
||||
STARSHIP_CONFIG_SOURCE="${SCRIPT_ROOT_DIR}/terminal/starship.toml"
|
||||
STARSHIP_CONFIG_DEST_DIR="$HOME/.config"
|
||||
STARSHIP_CONFIG_DEST_FILE="${STARSHIP_CONFIG_DEST_DIR}/starship.toml"
|
||||
|
||||
# Oh My Posh theme
|
||||
echo ""
|
||||
echo "Setting up Starship configuration..."
|
||||
if [ -f "$STARSHIP_CONFIG_SOURCE" ]; then
|
||||
mkdir -p "$STARSHIP_CONFIG_DEST_DIR"
|
||||
cp "$STARSHIP_CONFIG_SOURCE" "$STARSHIP_CONFIG_DEST_FILE"
|
||||
echo "Copied starship.toml to $STARSHIP_CONFIG_DEST_FILE"
|
||||
echo "Setting up Oh My Posh theme..."
|
||||
POSH_THEME_SOURCE="${SCRIPT_ROOT_DIR}/terminal/posh-theme.omp.json"
|
||||
POSH_THEME_DEST_DIR="$HOME/.config/oh-my-posh"
|
||||
POSH_THEME_DEST="${POSH_THEME_DEST_DIR}/theme.omp.json"
|
||||
|
||||
if [ -f "$POSH_THEME_SOURCE" ]; then
|
||||
mkdir -p "$POSH_THEME_DEST_DIR"
|
||||
ln -sf "$POSH_THEME_SOURCE" "$POSH_THEME_DEST"
|
||||
echo "${POSH_THEME_SOURCE} ~> ${POSH_THEME_DEST}"
|
||||
else
|
||||
echo "WARNING: Starship config source not found: $STARSHIP_CONFIG_SOURCE. Skipping copy."
|
||||
echo "WARNING: Oh My Posh theme not found: ${POSH_THEME_SOURCE}. Skipping."
|
||||
fi
|
||||
|
||||
# Teams for Linux Configuration
|
||||
@@ -58,7 +58,7 @@ fi
|
||||
|
||||
echo ""
|
||||
echo "Symlinking dotfiles..."
|
||||
FILES=('vimrc' 'vim' 'bashrc' 'zsh' 'agignore' 'gitconfig' 'gitignore' 'commit-conventions.txt' 'aliases.zsh')
|
||||
FILES=('bashrc' 'zshrc' 'aliases.bash' 'aliases.zsh' 'agignore' 'gitconfig' 'gitignore' 'commit-conventions.txt')
|
||||
|
||||
for file in "${FILES[@]}"; do
|
||||
echo ""
|
||||
@@ -78,5 +78,31 @@ for file in "${FILES[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Nushell config (~/.config/nushell)
|
||||
echo ""
|
||||
echo "Symlinking nushell config to ~/.config/nushell..."
|
||||
NUSHELL_SRC="${SCRIPT_ROOT_DIR}/terminal/nushell"
|
||||
NUSHELL_DEST="$HOME/.config/nushell"
|
||||
if [ -d "$NUSHELL_SRC" ]; then
|
||||
mkdir -p "$HOME/.config"
|
||||
ln -sf "$NUSHELL_SRC" "$NUSHELL_DEST"
|
||||
echo "${NUSHELL_SRC} ~> ${NUSHELL_DEST}"
|
||||
else
|
||||
echo "WARNING: nushell config source not found: ${NUSHELL_SRC}. Skipping."
|
||||
fi
|
||||
|
||||
# Neovim config (~/.config/nvim)
|
||||
echo ""
|
||||
echo "Symlinking nvim config to ~/.config/nvim..."
|
||||
NVIM_SRC="${SCRIPT_ROOT_DIR}/nvim"
|
||||
NVIM_DEST="$HOME/.config/nvim"
|
||||
if [ -e "$NVIM_SRC" ]; then
|
||||
mkdir -p "$HOME/.config"
|
||||
ln -sf "$NVIM_SRC" "$NVIM_DEST"
|
||||
echo "${NVIM_SRC} ~> ${NVIM_DEST}"
|
||||
else
|
||||
echo "WARNING: nvim config source not found: ${NVIM_SRC}. Skipping."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "--- Configuration and Symlinking Finished ---"
|
||||
Reference in New Issue
Block a user