Migrate to Linuxbrew, prefer script to Makefile

This commit is contained in:
Andrew Tomaka 2022-09-13 23:08:01 -04:00
parent 7fd1eb3033
commit a77f02c7bf
Signed by: atomaka
GPG key ID: 61209BF70A5B18BE
3 changed files with 155 additions and 55 deletions

View file

@ -1,55 +0,0 @@
STOWED = alacritty bin git ruby tmux vim zsh
UNAME = `uname`
all:
-@make $(UNAME) install vim alacritty rust
install:
stow $(STOWED)
Linux: linux_applications
Darwin: mac_applications
/bin/bash -c "$$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
sudo mv /etc/{zprofile,zprofile.old}
source ./zsh/.zshenv
alacritty:
curl -fLo /tmp/alacritty.info https://raw.githubusercontent.com/alacritty/alacritty/master/extra/alacritty.info
sudo tic -xe alacritty,alacritty-direct /tmp/alacritty.info
toggle-color-bin
rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path
vim:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
mac_applications:
softwareupdate --install-rosetta
brew install coreutils gnu-sed direnv fzf git stow the_silver_searcher tmux \
vim zsh rbenv ruby-build tfenv nodenv node-build tig libpq gnupg llvm \
awscli cmake session-manager-plugin jq gnu-tar sccache watch gh
brew install --cask docker rectangle slack google-chrome alacritty telegram \
discord element
linux_applications:
sudo apt-get install direnv fzf silversearcher-ag stow tmux vim zsh
if test ! -d ~/.rbenv ; then \
git clone https://github.com/rbenv/rbenv.git ~/.rbenv ; \
fi
if test ! -d ~/.rbenv/plugins/ruby-build ; then \
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build ; \
fi
if test ! -d ~/.nodenv ; then \
git clone https://github.com/nodenv/nodenv.git ~/.nodenv ; \
fi
if test ! -d ~/.nodenv/plugins/node-build ; then \
git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build ; \
fi
if test ! -d ~/.tfenv ; then \
git clone https://github.com/tfutils/tfenv.git ~/.tfenv ; \
fi

23
README.md Normal file
View file

@ -0,0 +1,23 @@
# dotfiles
Personal dotfiles managed via GNU stow.
## Installation
```bash
cd $HOME
git clone https://github.com/atomaka/dotfiles.git
cd dotfiles
./install.sh
```
## Notes
* Some homebrew packages (ie. vim) might be missing desired features
```
brew uninstall PACKAGE
brew edit PACKAGE # where there is no local directory named PACKAGE
# add compile options
brew install -s PACKAGE
```

132
install.sh Executable file
View file

@ -0,0 +1,132 @@
#!/usr/bin/env bash
install_homebrew() {
if ! command -v brew > /dev/null; then
NONINTERACTIVE=1 /bin/bash -c "$(
curl \
--fail \
--location \
--show-error \
--silent \
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
)"
fi
}
install_shared_applications() {
brew install direnv fzf git stow the_silver_searcher tmux \
vim zsh rbenv ruby-build tfenv nodenv node-build tig libpq gnupg llvm \
awscli cmake jq watch gh
install_alacritty_terminfo
install_rust
install_vim
}
install_alacritty() {
if ! command -v alacritty > /dev/null; then
cargo install alacritty
curl \
--fail \
--location \
--output /tmp/Alacritty.svg \
https://raw.githubusercontent.com/alacritty/alacritty/master/extra/logo/alacritty-term.svg
curl \
--fail \
--location \
--output /tmp/Alacritty.desktop \
https://raw.githubusercontent.com/alacritty/alacritty/master/extra/linux/Alacritty.desktop
sudo mv /tmp/Alacritty.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install /tmp/Alacritty.desktop
sudo update-desktop-database
fi
}
install_alacritty_terminfo() {
if ! infocmp alacritty > /dev/null; then
curl \
--fail \
--location \
--output /tmp/alacritty.info \
https://raw.githubusercontent.com/alacritty/alacritty/master/extra/alacritty.info
sudo tic -xe alacritty,alacritty-direct /tmp/alacritty.info
$HOME/dotfiles/bin/bin/toggle-color-mode
fi
}
install_rust() {
if ! command -v rustup > /dev/null; then
curl \
--fail \
--proto '=https' \
--show-error \
--silent \
--tlsv1.2 \
https://sh.rustup.rs \
| sh -s -- -y --no-modify-path
fi
}
install_vim() {
if ! test -f ~/.vim/autoload/plug.vim > /dev/null; then
curl \
--create-dirs \
--fail \
--location \
--output ~/.vim/autoload/plug.vim \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
fi
}
install_linux() {
if ! command -v apt-get > /dev/null; then
echo apt-get is not required, but not available
exit 1
fi
DEBIAN_FRONTEND=noninteractive sudo apt-get install --assume-yes \
build-essential procps curl file git cmake pkg-config libfreetype6-dev \
libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3
install_homebrew
source ~/dotfiles/zsh/.zshenv
install_shared_applications
# gui
install_alacritty
}
install_darwin() {
install_homebrew
sudo mv /etc/{zprofile,zprofile.old}
source ~/dotfiles/zsh/.zshenv
install_shared_applications
softwareupdate --install-rosetta
brew install coreutils gnu-sed session-manager-plugin
# gui
brew install --cask docker rectangle slack google-chrome alacritty telegram \
discord element
}
main() {
os=$(uname | tr '[:upper:]' '[:lower:]')
case $os in
linux | darwin)
install_$os
;;
*)
echo $os not supported
exit 1
;;
esac
stow alacritty bin git ruby tmux vim zsh
}
main