Migrate to Linuxbrew, prefer script to Makefile
This commit is contained in:
parent
7fd1eb3033
commit
a77f02c7bf
3 changed files with 155 additions and 55 deletions
55
Makefile
55
Makefile
|
@ -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
23
README.md
Normal 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
132
install.sh
Executable 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
|
Loading…
Reference in a new issue