-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.conda-rc
246 lines (232 loc) · 6.29 KB
/
.conda-rc
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
define_function() {
name="$1"
shift
if [ $# -eq 0 ]; then
echo "Usage: ${FUNCNAME[0]} <alias name> <aliased function> [args...]" >&2
return 1
fi
unalias "$name" &>/dev/null || true
eval "$name() { $@ \"\$@\"; }"
export -f "$name"
}
defn() {
define_function "$@"
}
install_conda() {
if [ $# -gt 0 ]; then
d="$1"
path_args=(-p "$@")
else
d="$HOME/miniconda3"
path_args=()
fi
os="$(uname -s)"
if [ "$os" == "Darwin" ]; then
os="MacOSX"
fi
arch="$(uname -m)"
base="https://repo.anaconda.com/miniconda"
name="$(curl "$base/" | grep "$os" | grep latest | grep -m1 "$arch" | grep -o 'Miniconda3.*sh">' | grep -o '.*.sh')"
if [ -z "$name" ]; then
echo "Failed to find Miniconda3 installer for $os $arch at $base" >&2
return 1
fi
sh_url="$base/$name"
echo "Downloading $sh_url" >&2
wget -Ominiconda.sh "$sh_url"
bash miniconda.sh -b "${path_args[@]}"
rm miniconda.sh
. $d/etc/profile.d/conda.sh
echo ". $d/etc/profile.d/conda.sh" >> ~/.bashrc
# conda="$d/bin/conda"
conda install -y -n base conda-libmamba-solver
conda config --set solver libmamba
# $conda config --set channel_priority flexible # https://github.com/rapidsai/cuml/issues/4016
conda activate base
}
export -f install_conda
defn icd install_conda
defn cdc conda config
defn cdcg conda config --get
defn cdcs conda config --set
defn ccgs conda config --get solver
defn ccss conda config --set solver
defn cdcgs conda config --get solver
defn cdcss conda config --set solver
defn cdcssm conda config --set solver libmamba
defn cim conda install -y -n base conda-libmamba-solver
defn cel conda env list
conda_env_update() {
case "$1" in
-h | --help)
echo "Usage: ${FUNCNAME[0]} [name=basename [env file]]" >&2
return 0
;;
esac
if [ $# -gt 0 ]; then
env="$1"; shift
else
env="$(basename "$PWD")"
fi
if [ $# -gt 0 ]; then
file_args=(-f "$1")
shift
else
file_args=()
fi
conda env update -n "$env" "${file_args[@]}"
}
export -f conda_env_update
defn ceu conda_env_update
conda_env_update_activate() {
conda_env_update "$@"
rv=$?
if [ $rv -ne 0 ]; then
return $rv
fi
if [ $# -gt 0 ]; then
env="$1"
else
env="$(basename "$PWD")"
fi
conda activate "$env"
}
export -f conda_env_update_activate
defn ceua conda_env_update_activate
conda_activate() {
if [ $# -eq 0 ]; then
if [ -f .conda-env ]; then
env="$(cat .conda-env)"
else
env="$(basename "$PWD")"
fi
cmd=(conda activate "$env")
echo "${cmd[*]}" >&2
"${cmd[@]}"
else
conda activate "$@"
fi
}
defn cac conda_activate
defn cab conda activate base
conda_list() {
# Call `conda list` on one or more packages
flags=()
pkgs=()
for arg in "$@"; do
if [[ "$arg" =~ "-*" ]]; then
flags+=("$arg")
else
pkgs+=("$arg")
fi
done
if which parallel &>/dev/null; then
for pkg in "${pkgs[@]}"; do
echo "$pkg"
done | parallel -j0 -k "conda list ${flags[*]}"
else
for pkg in "${pkgs[@]}"; do
conda list "${flags[@]}" "$pkg"
rv=$?
if [ $rv -ne 0 ]; then
return $rv
fi
done
fi | grep -v '^#'
}
export -f conda_list
defn ctl conda_list
defn cml conda_list # conda "multi-list"
defn cls conda list
conda_list_grep() {
grep_args=()
for arg in "$@"; do
grep_args+=(-e "$arg")
done
conda list | grep -i "${grep_args[@]}"
}
export -f conda_list_grep
defn clg conda_list_grep
defn cic conda install -c conda-forge
defn cicf conda install -c conda-forge
defn cfs conda search -c conda-forge
defn cscf conda search -c conda-forge
defn cfi conda search -c conda-forge --info
defn cscfi conda search -c conda-forge --info
defn csn conda search -c nvidia -c rapidsai
defn csncf conda search -c nvidia -c rapidsai -c conda-forge
defn cns conda search
defn cnsi conda search --info
defn cds conda search
defn cdsi conda search --info
defn cdsj conda search --json
defn ce conda env
defn cer conda env remove
defn cern conda env remove -n
defn ceryn conda env remove -y -n
conda_env_remove_current() {
env="$CONDA_DEFAULT_ENV"
conda activate base
conda env remove -n "$env" "$@"
}
export -f conda_env_remove_current
defn cerc conda_env_remove_current
defn cdu conda uninstall
defn cdui conda uninstall
defn cduy conda uninstall -y
defn cui conda uninstall
defn cuiy conda uninstall -y
conda_search_conda_forge() {
flags=()
args=()
for arg in "$@"; do
if [[ "$arg" == -* ]]; then
flags+=("$arg")
else
args+=("conda-forge::$arg")
fi
done
cmd=(conda search "${flags[@]}" "${args[@]}")
# echo "cmd: ${cmd[*]}" >&2
"${cmd[@]}"
}
export -f conda_search_conda_forge
defn cdscf conda_search_conda_forge
defn cdscfi conda_search_conda_forge --info
defn cdf conda_deps_filter.py -f
defn cdfh conda_deps_filter.py -h -f
defn ccn conda create -n
defn cdcn conda create -n
defn cdcdn conda create -d -n
defn cddd conda-docker-deps-diff.py
conda_setup() {
if [ -z "$CONDA_PREFIX" ]; then
conda_bin="$CONDA_PREFIX/bin"
conda_sh="$CONDA_PREFIX/etc/profile.d/conda.sh"
__conda_setup="$("$conda_bin/conda" shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
fi
fi
}
export -f conda_setup
defn csu conda_setup
maybe_init_conda() {
# Adapted from 'conda init' block / moved from ~/.bash_profile
if [ -n "$CONDA" ]; then
if [ -n "$CONDA_PREFIX" ]; then
conda_bin="$CONDA_PREFIX/bin"
conda_sh="$CONDA_PREFIX/etc/profile.d/conda.sh"
if [ -f "$conda_sh" ]; then
. "$conda_sh"
elif [ -d "$conda_bin" ]; then
export PATH="$conda_bin:$PATH"
fi
elif [ -n "$CONDA_ROOT" ]; then # e.g. export CONDA_ROOT=/opt/homebrew/Caskroom/mambaforge, on macOS/Homebrew
__conda_setup="$("$CONDA_ROOT/base/bin/conda" 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
fi
fi
fi
}