From b5cdce5aced0f77c6759858390752a354bfaa2c9 Mon Sep 17 00:00:00 2001 From: Michael Yockey Date: Sat, 25 Jan 2020 17:33:36 -0500 Subject: [PATCH] Lets start with a green field --- .gitignore | 1 + dependencies/homebrew.txt | 2 ++ dependencies/zsh.txt | 1 + install.zsh | 68 +++++++++++++++++++++++++++++++++++++++ zshrc | 7 ++++ 5 files changed, 79 insertions(+) create mode 100644 .gitignore create mode 100644 dependencies/homebrew.txt create mode 100644 dependencies/zsh.txt create mode 100755 install.zsh create mode 100644 zshrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f9ced93 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +packages diff --git a/dependencies/homebrew.txt b/dependencies/homebrew.txt new file mode 100644 index 0000000..3c9893f --- /dev/null +++ b/dependencies/homebrew.txt @@ -0,0 +1,2 @@ +rbenv +nodenv diff --git a/dependencies/zsh.txt b/dependencies/zsh.txt new file mode 100644 index 0000000..038d313 --- /dev/null +++ b/dependencies/zsh.txt @@ -0,0 +1 @@ +git@github.com:geometry-zsh/geometry.git diff --git a/install.zsh b/install.zsh new file mode 100755 index 0000000..98dbba2 --- /dev/null +++ b/install.zsh @@ -0,0 +1,68 @@ +#!/bin/zsh + +function zsh_check_installed() { + ls . | grep $1 > /dev/null + result=$? + return $result +} + +function brew_check_installed() { + brew info $1 | grep "Not installed" > /dev/null + result=$? + ((result ^= 1)) + return $result +} + +INSTALL_DIR=$HOME/.files + +mkdir -p packages +pushd packages + +# Install ZSH packages +which git > /dev/null +if (( $? == 0 )); then + while IFS= read -r line; do + directory=${${line%.git}#*/} + zsh_check_installed $directory + + if [[ $? != 0 ]]; then + echo "Cloning $line into packages..." + git clone -q $line + else + echo "$directory already installed" + fi + done < ../dependencies/zsh.txt +else + echo "Install git before continuing" + exit 1 +fi + +which brew > /dev/null +if (( $? == 0 )); then + # Install Homebrew packages + while IFS= read -r line; do + brew_check_installed $line + if [[ $? != 0 ]]; then + echo "Installing $line with Homebrew" + brew install $line + else + echo "$line already installed" + fi + done < ../dependencies/homebrew.txt +else + echo "Install homebrew before continuing" + exit 1 +fi + +popd + +mkdir -p $INSTALL_DIR +cp -rf packages $INSTALL_DIR/packages +cp -f zshrc $INSTALL_DIR/zshrc + +# Insert the INSTALL_DIR variable into the installed run control file +sed -i -e "1 i\\ +INSTALL_DIR=$INSTALL_DIR\\ +" $INSTALL_DIR/zshrc + +ln -sf $INSTALL_DIR/zshrc ~/.zshrc diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..a429208 --- /dev/null +++ b/zshrc @@ -0,0 +1,7 @@ +eval "$(rbenv init -)" +eval "$(nodenv init -)" + +source $INSTALL_DIR/packages/geometry/geometry.zsh + +setopt auto_cd +cdpath=($HOME/Projects)