* Added capability to parse & create scratch dirs.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#
|
||||
# Usage: g09slurm INPUT_FILE.com [OUTPUT_FILE.out] [START_TIME]
|
||||
|
||||
set -e
|
||||
|
||||
usage () {
|
||||
echo "Usage: g09slurm INPUT_FILE.com [OUTPUT_FILE.out] [START_TIME]"
|
||||
@@ -53,6 +54,63 @@ if [ -z "$ncpus" ]; then
|
||||
fi
|
||||
|
||||
|
||||
# Detect & support custom directories
|
||||
|
||||
collect_scratch_objects () {
|
||||
# Usage: cat $FILE | collect_scratch_objects LINK0_KEYWORD
|
||||
# Parses line like this:
|
||||
# %RWF=/dalton/s0/
|
||||
# %RWF=/dalton/s0/,4GB,/scratch/,3GB,/temp/s0/my_job,-1
|
||||
# and prints the scratch dirs/files there
|
||||
#
|
||||
# The first argument is the keyword to look for, and it must
|
||||
# be must be in lowercase
|
||||
local KWD="$1"
|
||||
awk 'tolower($0) ~ /^ *% *'$KWD' *=/ {
|
||||
A = $0
|
||||
# Erase keyword
|
||||
sub(/^[^=]*= */, "", A)
|
||||
# Erase comment, if any
|
||||
sub(/ *\!.*$/, "", A)
|
||||
Args_count = split(A, Args, ",")
|
||||
# print out the directory/file parts
|
||||
for (i = 1; i <= Args_count; ++i)
|
||||
print(Args[i])
|
||||
}'
|
||||
}
|
||||
|
||||
create_scratch_dirs () {
|
||||
# Usage: create_scratch_dir "$scratch_dir_lines" LINK0_KEYWORD
|
||||
local SCR_DIRS="$1"
|
||||
local KWD="$2"
|
||||
if [ -n "$SCR_DIRS" ]; then
|
||||
echo "Found scratch dirs for $KWD:"
|
||||
local IFS=$'\n'
|
||||
for D in $SCR_DIRS; do
|
||||
echo " $D"
|
||||
case "$D" in
|
||||
*/)
|
||||
mkdir -p -v "$D"
|
||||
;;
|
||||
*)
|
||||
mkdir -p -v "$(dirname "$D")"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
rwf_scratch_dirs=$(cat "$input_file" | collect_scratch_objects rwf)
|
||||
create_scratch_dirs "$rwf_scratch_dirs" "RWF files"
|
||||
|
||||
int_scratch_dirs=$(cat "$input_file" | collect_scratch_objects int)
|
||||
create_scratch_dirs "$int_scratch_dirs" "INT files"
|
||||
|
||||
d2e_scratch_dirs=$(cat "$input_file" | collect_scratch_objects d2e)
|
||||
create_scratch_dirs "$d2e_scratch_dirs" "D2E files"
|
||||
|
||||
|
||||
# Allow delayed start
|
||||
|
||||
if [ -z "$begin_date" ]; then
|
||||
|
||||
Reference in New Issue
Block a user