69 lines
1.8 KiB
Bash
69 lines
1.8 KiB
Bash
#!/bin/bash
|
|
##
|
|
## Generate PyMOL Session Files (.pse) with different PyMOL versions
|
|
## and different "pse_export_version"s, and load them into previous
|
|
## program versions.
|
|
##
|
|
|
|
# exit on error
|
|
set -e
|
|
|
|
# where to find PyMOL installations
|
|
installprefix="/opt/pymol-"
|
|
installsuffix="*/pymol"
|
|
|
|
# temporary directory
|
|
tmpdir=.
|
|
|
|
# pse_binary_dump=0/1
|
|
bin_dump=1
|
|
|
|
gen() {
|
|
testversions_outer=""
|
|
while [[ $# > 0 ]]; do
|
|
v_in=$1
|
|
|
|
# pse_export_version new in PyMOL 1.7.6
|
|
if [[ $v_in < 1.76 ]]; then
|
|
return
|
|
fi
|
|
|
|
# for all installations of "v_in" version
|
|
for pymol in $installprefix${v_in}${installsuffix}; do
|
|
echo $pymol
|
|
build=$(basename $(dirname $pymol))
|
|
testversions="$testversions_outer"
|
|
|
|
# for all applicable "pse_export_version"s
|
|
for v_out in $*; do
|
|
filename="$tmpdir/$build-ev$v_out.pse"
|
|
|
|
# generate session file
|
|
$pymol -ckq makesession.pml \
|
|
-d "set pse_binary_dump, $bin_dump" \
|
|
-d "set pse_export_version, $v_out" \
|
|
-d "save $filename"
|
|
|
|
testversions="$v_out $testversions"
|
|
|
|
# load session file with older installations
|
|
for v_test in $testversions; do
|
|
for pymoltest in $installprefix${v_test}${installsuffix}; do
|
|
echo "TESTING $pymoltest $filename"
|
|
$pymoltest -ckq $filename verify.py
|
|
done
|
|
done
|
|
done
|
|
done
|
|
|
|
shift
|
|
testversions_outer="$v_in $testversions_outer"
|
|
done
|
|
}
|
|
|
|
# run on these versions
|
|
# (must be floats, and must match the installation directories)
|
|
gen 2.0 1.86 1.74 1.2
|
|
|
|
echo DONE
|