-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.env
84 lines (78 loc) · 3.26 KB
/
.env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
dotenv_file="$(find . -maxdepth 1 -type f -name '.env')"
project_dir="$(pwd)"
project_name="$(basename "$project_dir")"
ruby_version_file="$(find . -maxdepth 3 -type f -name '.ruby-version')"
gem_lock_file="$(find . -maxdepth 3 -type f -name 'Gemfile.lock')"
if [[ -n "$ruby_version_file" ]]; then
ruby_version="$(head -n 1 "$ruby_version_file")"
eval "$(rbenv init -)"
rbenv versions | grep "$ruby_version" || rbenv install "$ruby_version"
rbenv shell "$ruby_version"
rbenv local "$ruby_version"
rbenv rehash
gem env home
if [[ -n "$gem_lock_file" ]]; then
bundle install
fi
rbenv rehash
fi
python_version_file="$(find . -maxdepth 3 -type f -name '.python-version')"
pipenv_lock_file="$(find . -maxdepth 3 -type f -name 'Pipfile.lock')"
if [[ -n "$python_version_file" ]]; then
python_version="$(head -n 1 "$python_version_file")"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv versions | grep "$python_version" || pyenv install
pyenv local "$python_version"
pyenv rehash
if [[ -n "$pipenv_lock_file" ]]; then
pipenv --python "$HOME/.pyenv/versions/$python_version/bin/python"
pipenv --bare sync
else
pyenv virtualenvs | grep "$project_name-$python_version" || pyenv virtualenv $python_version $project_name-$python_version
pyenv activate $project_name-$python_version
fi
fi
nvmrc_file="$(find . -maxdepth 3 -type f -name '.nvmrc')"
if [[ -n "$nvmrc_file" ]]; then
node_version="$(head -n 1 "$nvmrc_file")"
export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix)/opt/nvm/nvm.sh" >/dev/null
nvm ls | grep -i "$node_version" >/dev/null 2>&1 || nvm install
nvm use >/dev/null
fi
golang_version_file="$(find . -maxdepth 3 -type f -name '.go-version')"
gopkg_lock_file="$(find . -maxdepth 3 -type f -name 'Gopkg.lock')"
if [[ -n "$golang_version_file" && -n "$gopkg_lock_file" ]]; then
golang_version="$(head -n 1 "$golang_version_file")"
goenv versions | grep -i "$golang_version" >/dev/null 2>&1 || goenv install
goenv rehash >/dev/null
mkdir -p $HOME/go/$golang_version/src
mkdir -p $HOME/go/$golang_version/pkg
mkdir -p $HOME/go/$golang_version/bin
fi
java_version_file="$(find . -maxdepth 3 -type f -name '.java-version')"
build_sbt_file="$(find . -maxdepth 3 -type f -name 'build.sbt')"
if [[ -n "$java_version_file" && -n "$build_sbt_file" ]]; then
jenv shell "$(head -n 1 "$java_version_file")"
jenv rehash
project_name="$(basename $PWD)"
ensime_pid_from_proc=$(ps -ef | grep jav[a] | grep ensim[e] | grep $project_name | awk '{print $2}')
ensime_pid_from_file=
if [[ -f .ensime_cache/server.pid ]]; then
ensime_pid_from_file=$(cat .ensime_cache/server.pid)
fi
if [[ -n $ensime_pid_from_proc ]]; then
if [[ -f .ensime_cache/server.pid && $ensime_pid_from_file -eq $ensime_pid_from_proc ]]; then
echo "ensime is already running as part of vim with pid - $(cat .ensime_cache/server.pid)"
elif [[ -f .ensime_cache/server.pid && ! $ensime_pid_from_file -eq $ensime_pid_from_proc ]]; then
echo "ensime is running but not controlled by vim any more with pid - $ensime_pid_from_proc" \
&& kill -9 $ensime_pid_from_proc
rm -rf .ensime_cache/server.pid .ensime_cache/http .ensime_cache/port
else
kill -9 $ensime_pid_from_proc
fi
else
echo "ensime-server is not running"
fi
fi