#!/usr/bin/env bash # # Clone or update alacritty to $HOME/dev/alacritty, build and install to $HOME/bin # Note: run from ZSH in a different terminal emulator. set -e if pgrep alacritty > /dev/null; then echo "Error: alacritty is running. Kill it and retry." exit 1 fi if ! [ -x "$(command -v cargo)" ]; then echo "Install Rust toolchain first" exit 1 fi mkdir -p "$HOME/dev" "$HOME/bin" destdir=$HOME/dev/alacritty if [ -d "$destdir" ]; then echo "Updating alacritty..." cd "$destdir" git pull --rebase else echo "Cloning alacritty..." cd "$HOME/dev" git clone -q https://github.com/alacritty/alacritty.git alacritty fi cd "$destdir" echo "Building alacritty..." if [ "$(uname -s)" = "Darwin" ]; then make app sudo cp -av "$destdir/target/release/osx/Alacritty.app" /Applications/ else cargo build --release echo "Installing alacritty..." cp "$destdir/target/release/alacritty" "$HOME/bin/alacritty" fi if [ -z "$ZDOTDIR" ]; then echo "WARNING: ZDOTDIR blank so not installing ZSH completions" exit 0 fi echo "Installing ZSH completions..." funcdir=$ZDOTDIR/functions mkdir -p "$funcdir" cp "$destdir/extra/completions/_alacritty" "$funcdir/_alacritty" if [ "$(uname -s)" = "Linux" ]; then # TODO: fix for Manjaro/xfce4: sudo cp "$destdir/extra/logo/alacritty-term.svg" /usr/share/pixmaps/Alacritty.svg sudo desktop-file-install "$destdir/extra/linux/Alacritty.desktop" sudo update-desktop-database fi echo "Done"