34 lines
1000 B
Bash
Executable File
34 lines
1000 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Dump the package descriptions of all conda environments
|
|
DATE=$(date +%Y%m%d-%H%M%S)
|
|
MYDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
INSTALLDIR=$(dirname $MYDIR)
|
|
TOPLOGDIR="$INSTALLDIR/envlogs"
|
|
|
|
command -v conda &>/dev/null
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "conda command is not defined. Load the module" >&2
|
|
exit 1
|
|
fi
|
|
|
|
CONDAPREFIX=$(expr "$(conda config --show root_prefix)" : '.*: *\(.*\)')
|
|
|
|
if [[ "$INSTALLDIR" != "$(dirname $CONDAPREFIX)" ]]; then
|
|
printf "WARNING: you may be running the wrong conda command!!!\n" >&2
|
|
printf " PREFIX from conda root_prefix : %s\n" "$(dirname $CONDAPREFIX)" >&2
|
|
printf " this script's associated prefix : %s\n" "$INSTALLDIR" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$TOPLOGDIR"
|
|
LOGDIR=$TOPLOGDIR/envdef-$DATE
|
|
mkdir $LOGDIR
|
|
for n in $(conda info --json | jq -r '.envs[]'|grep envs); do
|
|
env=$(basename $n)
|
|
echo ==== "$LOGDIR/${env}.txt ..." =====
|
|
conda list -n $env -e > "$LOGDIR/${env}.txt"
|
|
done
|
|
|
|
|