From 42f5af538981981a626764cd8934129e2d755cb5 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Thu, 22 Sep 2022 11:35:34 -0400 Subject: [PATCH 1/8] roll own gvm due to annoyances with gvm using a separate GOPATH for each version --- nvim/init.vim | 3 +- zsh/.oh-my-zsh | 1 - zsh/config.d/go.zsh | 3 +- zsh/config.d/solo.zsh | 42 +++++++++++------------ zsh/mygvm | 80 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 104 insertions(+), 25 deletions(-) delete mode 160000 zsh/.oh-my-zsh create mode 100755 zsh/mygvm diff --git a/nvim/init.vim b/nvim/init.vim index 268358b..149c1e7 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -95,7 +95,7 @@ nnoremap fh lua require('harpoon.ui').toggle_quick_menu() nnoremap err oif err != nil {return nil, err}kkI nnoremap :GoReferrers -nnoremap q :bd +nnoremap q :bp\|bd # nnoremap w :w nnoremap n :bn nnoremap b :bp @@ -116,6 +116,7 @@ tnoremap tnoremap tnoremap tnoremap +tnoremap nnoremap ee :NvimTreeFindFileToggle nnoremap h lua require("harpoon.mark").add_file() diff --git a/zsh/.oh-my-zsh b/zsh/.oh-my-zsh deleted file mode 160000 index ed411d3..0000000 --- a/zsh/.oh-my-zsh +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ed411d3ff196e32844409ebe0f8b3e21b0b1c9f6 diff --git a/zsh/config.d/go.zsh b/zsh/config.d/go.zsh index 5bfad0e..21e9496 100644 --- a/zsh/config.d/go.zsh +++ b/zsh/config.d/go.zsh @@ -1,7 +1,6 @@ # GO stuff export GOPATH="${HOME}/go" -#export GOROOT="$(brew --prefix golang)/libexec" -export GOROOT="/usr/local/go" +export GOROOT="${HOME}/.go/go" export PATH=${GOPATH}/bin:${GOROOT}/bin:$PATH export GOPRIVATE="github.com/solo-io" export ACK_GINKGO_DEPRECATIONS=1.16.5 diff --git a/zsh/config.d/solo.zsh b/zsh/config.d/solo.zsh index c1a319a..02dcaf3 100644 --- a/zsh/config.d/solo.zsh +++ b/zsh/config.d/solo.zsh @@ -1,23 +1,23 @@ # Aliases to reach different repos -alias cdsi='cd $GOPATH/src/github.com/solo-io' -alias cdg='cd $GOPATH/src/github.com/solo-io/gloo' -alias nvg='nvim $GOPATH/src/github.com/solo-io/gloo/README.md' -alias cdgf='cd $GOPATH/src/github.com/solo-io/gloo-fed' -alias nvgf='nvim $GOPATH/src/github.com/solo-io/gloo-fed/README.md' -alias cdsp='cd $GOPATH/src/github.com/solo-io/solo-projects' -alias nvsp='nvim $GOPATH/src/github.com/solo-io/solo-projects/README.md' -alias cdsa='cd $GOPATH/src/github.com/solo-io/solo-apis' -alias nvsa='nvim $GOPATH/src/github.com/solo-io/solo-apis/README.md' -alias cddp='cd $GOPATH/src/github.com/solo-io/dev-portal' -alias nvdp='nvim $GOPATH/src/github.com/solo-io/dev-portal/README.md' -alias cdgm='cd $GOPATH/src/github.com/solo-io/gloo-mesh' -alias nvgm='nvim $GOPATH/src/github.com/solo-io/gloo-mesh/README.md' -alias cdgmui='cd $GOPATH/src/github.com/solo-io/gloo-mesh-ui' -alias nvgmui='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-ui/README.md' -alias cdgme='cd $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise' -alias nvgme='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise/README.md' -alias cdea='cd $GOPATH/src/github.com/solo-io/ext-auth-service' -alias nvea='nvim $GOPATH/src/github.com/solo-io/ext-auth-service/README.md' -alias cdrl='cd $GOPATH/src/github.com/solo-io/rate-limiter' -alias nvrl='nvim $GOPATH/src/github.com/solo-io/rate-limiter/README.md' +alias cdsi='cd $HOME/src/github.com/solo-io' +alias cdg='cd $HOME/src/github.com/solo-io/gloo' +alias nvg='nvim $HOME/src/github.com/solo-io/gloo/README.md' +alias cdgf='cd $HOME/src/github.com/solo-io/gloo-fed' +alias nvgf='nvim $HOME/src/github.com/solo-io/gloo-fed/README.md' +alias cdsp='cd $HOME/src/github.com/solo-io/solo-projects' +alias nvsp='nvim $HOME/src/github.com/solo-io/solo-projects/README.md' +alias cdsa='cd $HOME/src/github.com/solo-io/solo-apis' +alias nvsa='nvim $HOME/src/github.com/solo-io/solo-apis/README.md' +alias cddp='cd $HOME/src/github.com/solo-io/dev-portal' +alias nvdp='nvim $HOME/src/github.com/solo-io/dev-portal/README.md' +alias cdgm='cd $HOME/src/github.com/solo-io/gloo-mesh' +alias nvgm='nvim $HOME/src/github.com/solo-io/gloo-mesh/README.md' +alias cdgmui='cd $HOME/src/github.com/solo-io/gloo-mesh-ui' +alias nvgmui='nvim $HOME/src/github.com/solo-io/gloo-mesh-ui/README.md' +alias cdgme='cd $HOME/src/github.com/solo-io/gloo-mesh-enterprise' +alias nvgme='nvim $HOME/src/github.com/solo-io/gloo-mesh-enterprise/README.md' +alias cdea='cd $HOME/src/github.com/solo-io/ext-auth-service' +alias nvea='nvim $HOME/src/github.com/solo-io/ext-auth-service/README.md' +alias cdrl='cd $HOME/src/github.com/solo-io/rate-limiter' +alias nvrl='nvim $HOME/src/github.com/solo-io/rate-limiter/README.md' diff --git a/zsh/mygvm b/zsh/mygvm new file mode 100755 index 0000000..cfee1dc --- /dev/null +++ b/zsh/mygvm @@ -0,0 +1,80 @@ +#!/bin/bash + +valid='false' +exists='false' +list_versions() { + echo "valid options:" + for i in "$HOME"/.go/go1*; do basename "$i"; done + echo "" +} + +install_version() { + check_valid $1 + if [[ $valid != 'true' ]]; then + echo "invalid version $1" + echo "using" + go version + exit 1 + fi + + fname="$HOME/.go/downloads/$1.darwin-arm64.tar.gz" + + if [[ ! -f $fname ]]; then + curl -Lo $fname https://dl.google.com/go/$1.darwin-arm64.tar.gz + fi + cd $HOME/.go/downloads + tar -zxf $1.darwin-arm64.tar.gz + mv go/ ../$1 + check_exists $1 + link_version $1 +} + +link_version() { + if [[ $exists == 'true' ]]; then + ln -sfn $HOME/.go/$1 $HOME/.go/go + fi +} + +check_valid() { + if [[ $1 =~ go1\.[0-9]{1,2}\.[0-9]{1,2} ]]; then + valid='true' + fi +} +check_exists() { + if [[ -d $HOME/.go/$1 ]]; then + exists='true' + fi +} + +check_exists $1 +if [[ $1 == '' ]]; then + list_versions + echo "using" + go version + exit 1 +elif [[ $1 == 'install' ]]; then + install_version $2 +elif [[ $exists == 'true' ]]; then + link_version $1 +else + echo "$1 not found in $HOME/.go" + list_versions + check_valid $1 + + if [[ $valid == 'true' ]]; then + echo "attempt to download and install? [y/n]" + read input + if [[ $input == 'y' ]]; then + install_version $1 + fi + else + echo "invalid version $1" + echo "using" + go version + exit 1 + fi +fi + +echo "using" +go version + From c66e0e5723bd9858d50505215515f857780bb222 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Thu, 22 Sep 2022 20:39:01 -0400 Subject: [PATCH 2/8] add vim-plug and proper neovim --- init.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 init.sh diff --git a/init.sh b/init.sh new file mode 100644 index 0000000..351507d --- /dev/null +++ b/init.sh @@ -0,0 +1,32 @@ +#Install zsh +#Install neovim +#Install ripgrep +#Install fd +sudo add-apt-repository ppa:neovim-ppa/stable +sudo apt update && sudo apt install -y zsh neovim ripgrep fd-find +#Install oh-my-zsh +sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +#Install oh-my-zsh plugins +git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting +#install vim-plug +sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' +#Clone dotfiles +cd ~ && git clone https://github.com/jbohanon/.dotfiles +#Make directories & symlinks +mkdir $HOME/.config +ln -s $HOME/.dotfiles/zsh $HOME/.config/zsh +ln -s $HOME/.dotfiles/nvim $HOME/.config/nvim +ln -s $HOME/.config/nvim/.vimrc $HOME/.vimrc +ln -s $HOME/.config/zsh/.zshrc $HOME/.zshrc +#Install powerline-fonts +sudo apt install fonts-powerline +#Install starship +curl -sS https://starship.rs/install.sh | sh +#Install mygvm +mkdir $HOME/go +mkdir -p $HOME/.go/downloads +ln -s $HOME/.dotfiles/zsh/mygvm /usr/local/bin/mygvm + +#Install Go +mygvm go1.18.6 From 5633ac0dd1c6d04aec9ab0ebd787f674232f5482 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Thu, 22 Sep 2022 20:45:35 -0400 Subject: [PATCH 3/8] generalize mygvm --- zsh/mygvm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/zsh/mygvm b/zsh/mygvm index cfee1dc..e6f36b9 100755 --- a/zsh/mygvm +++ b/zsh/mygvm @@ -1,5 +1,14 @@ #!/bin/bash +uname_m=$(uname -m) +goarch='amd64' +if [[ $uname_m == 'arm64' || $uname_m == 'aarch64' ]]; then + goarch='arm64' +fi +goos='linux' +if [[ $(uname) == 'Darwin' ]]; then + goos='darwin' +fi valid='false' exists='false' list_versions() { @@ -17,13 +26,13 @@ install_version() { exit 1 fi - fname="$HOME/.go/downloads/$1.darwin-arm64.tar.gz" + fname="$HOME/.go/downloads/$1.$goos-$goarch.tar.gz" if [[ ! -f $fname ]]; then - curl -Lo $fname https://dl.google.com/go/$1.darwin-arm64.tar.gz + curl -Lo $fname https://dl.google.com/go/$1.$goos-$goarch.tar.gz fi cd $HOME/.go/downloads - tar -zxf $1.darwin-arm64.tar.gz + tar -zxf $1.$goos-$goarch.tar.gz mv go/ ../$1 check_exists $1 link_version $1 From 2eda10d3e47c41e974115850b0123f9cb3984c05 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Fri, 23 Sep 2022 09:33:20 -0400 Subject: [PATCH 4/8] mygvm: echo using on one line; restructure --- zsh/mygvm | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/zsh/mygvm b/zsh/mygvm index e6f36b9..0177b49 100755 --- a/zsh/mygvm +++ b/zsh/mygvm @@ -1,16 +1,4 @@ #!/bin/bash - -uname_m=$(uname -m) -goarch='amd64' -if [[ $uname_m == 'arm64' || $uname_m == 'aarch64' ]]; then - goarch='arm64' -fi -goos='linux' -if [[ $(uname) == 'Darwin' ]]; then - goos='darwin' -fi -valid='false' -exists='false' list_versions() { echo "valid options:" for i in "$HOME"/.go/go1*; do basename "$i"; done @@ -21,8 +9,7 @@ install_version() { check_valid $1 if [[ $valid != 'true' ]]; then echo "invalid version $1" - echo "using" - go version + echo "using $(go version)" exit 1 fi @@ -55,11 +42,22 @@ check_exists() { fi } +uname_m=$(uname -m) +goarch='amd64' +if [[ $uname_m == 'arm64' || $uname_m == 'aarch64' ]]; then + goarch='arm64' +fi +goos='linux' +if [[ $(uname) == 'Darwin' ]]; then + goos='darwin' +fi +valid='false' +exists='false' + check_exists $1 if [[ $1 == '' ]]; then list_versions - echo "using" - go version + echo "using $(go version)" exit 1 elif [[ $1 == 'install' ]]; then install_version $2 @@ -78,12 +76,10 @@ else fi else echo "invalid version $1" - echo "using" - go version + echo "using $(go version)" exit 1 fi fi -echo "using" -go version +echo "using $(go version)" From 574e865ff60b8de420fe95d276ee90184e669d29 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Fri, 23 Sep 2022 09:59:15 -0400 Subject: [PATCH 5/8] mygvm: add some utility --- zsh/mygvm | 76 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/zsh/mygvm b/zsh/mygvm index 0177b49..364be4e 100755 --- a/zsh/mygvm +++ b/zsh/mygvm @@ -1,6 +1,6 @@ #!/bin/bash list_versions() { - echo "valid options:" + echo "installed versions:" for i in "$HOME"/.go/go1*; do basename "$i"; done echo "" } @@ -36,34 +36,28 @@ check_valid() { valid='true' fi } + check_exists() { if [[ -d $HOME/.go/$1 ]]; then exists='true' fi } -uname_m=$(uname -m) -goarch='amd64' -if [[ $uname_m == 'arm64' || $uname_m == 'aarch64' ]]; then - goarch='arm64' -fi -goos='linux' -if [[ $(uname) == 'Darwin' ]]; then - goos='darwin' -fi -valid='false' -exists='false' +remove_version() { + check_exists $1 + if [[ $exists == 'true' ]]; then + if [[ $current_link == $1 ]]; then + echo "cannot remove version $1 because it is currently in use" + else + rm -rf $HOME/.go/$1 + echo "removed version $1" + fi + else + echo "version $1 not installed" + fi +} -check_exists $1 -if [[ $1 == '' ]]; then - list_versions - echo "using $(go version)" - exit 1 -elif [[ $1 == 'install' ]]; then - install_version $2 -elif [[ $exists == 'true' ]]; then - link_version $1 -else +prompt_install() { echo "$1 not found in $HOME/.go" list_versions check_valid $1 @@ -79,6 +73,44 @@ else echo "using $(go version)" exit 1 fi +} + +mkdir -p "$HOME/.go/downloads" +current_link=$(basename $(readlink $HOME/.go/go)) +uname_m=$(uname -m) +goarch='amd64' +if [[ $uname_m == 'arm64' || $uname_m == 'aarch64' ]]; then + goarch='arm64' +fi +goos='linux' +if [[ $(uname) == 'Darwin' ]]; then + goos='darwin' +fi +valid='false' +exists='false' + +check_exists $1 +if [[ $1 == '' ]]; then + list_versions +elif [[ $1 == 'list' ]]; then + list_versions +elif [[ $1 == 'remove' ]]; then + remove_version $2 +elif [[ $1 == 'uninstall' ]]; then + remove_version $2 +elif [[ $1 == 'install' ]]; then + install_version $2 +elif [[ $1 == 'use' ]]; then + check_exists $2 + if [[ $exists == true ]]; then + link_version $2 + else + prompt_install $2 + fi +elif [[ $exists == 'true' ]]; then + link_version $1 +else + prompt_install $1 fi echo "using $(go version)" From fc60535945618e9c1f2dbef24fe0ddd683ba7b61 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Mon, 26 Sep 2022 06:38:36 -0400 Subject: [PATCH 6/8] add fzf --- init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sh b/init.sh index 351507d..9d03bc9 100644 --- a/init.sh +++ b/init.sh @@ -3,7 +3,7 @@ #Install ripgrep #Install fd sudo add-apt-repository ppa:neovim-ppa/stable -sudo apt update && sudo apt install -y zsh neovim ripgrep fd-find +sudo apt update && sudo apt install -y zsh neovim ripgrep fd-find fzf #Install oh-my-zsh sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" #Install oh-my-zsh plugins From 8200939e20f6b5616d8a7c101321df1c65594f47 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Tue, 27 Sep 2022 08:15:34 -0400 Subject: [PATCH 7/8] add gitconfig --- init.sh | 3 +++ nvim/init.vim | 5 +++++ zsh/config.d/go.zsh | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/init.sh b/init.sh index 351507d..7822bde 100644 --- a/init.sh +++ b/init.sh @@ -30,3 +30,6 @@ ln -s $HOME/.dotfiles/zsh/mygvm /usr/local/bin/mygvm #Install Go mygvm go1.18.6 + +#link gitconfig +ln -s $HOME/.dotfiles/.gitconfig $HOME/.gitconfig diff --git a/nvim/init.vim b/nvim/init.vim index 149c1e7..acb482f 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -119,6 +119,7 @@ tnoremap tnoremap nnoremap ee :NvimTreeFindFileToggle nnoremap h lua require("harpoon.mark").add_file() +nnoremap :Commentary vnoremap J :m '>+1gv=gv vnoremap K :m '<-2gv=gv @@ -281,3 +282,7 @@ lua < Date: Tue, 27 Sep 2022 08:17:23 -0400 Subject: [PATCH 8/8] add gitconfig --- .gitconfig | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .gitconfig diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..0e5dca2 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,9 @@ +[user] + name = Jacob Bohanon + email = jacobbohanon@gmail.com +[url "ssh://git@github.com/"] + insteadOf = https://github.com/ +[tag] + sort = version:refname +[init] + defaultBranch = master