diff options
-rwxr-xr-x | SelectiveWholeGenomeAmplification | 3 | ||||
-rw-r--r-- | src/lock | 28 |
2 files changed, 30 insertions, 1 deletions
diff --git a/SelectiveWholeGenomeAmplification b/SelectiveWholeGenomeAmplification index e778cbd..f6269d5 100755 --- a/SelectiveWholeGenomeAmplification +++ b/SelectiveWholeGenomeAmplification @@ -27,6 +27,7 @@ check_mers() { fi # check each mer size and process if not already run + lock $tmp_directory/counts-lock for (( mer = min_mer_range; mer <= max_mer_range; mer++)) ; do if [[ ! -e "$counts"-counts-"$mer" ]]; then echo " checking $mer mers for $fasta_file" @@ -39,7 +40,7 @@ check_mers() { cat "$counts"-counts-"$mer" >> "$counts"-counts done - + rmdir $tmp_directory/counts-lock } all=run diff --git a/src/lock b/src/lock new file mode 100644 index 0000000..22191fe --- /dev/null +++ b/src/lock @@ -0,0 +1,28 @@ +lock() { + + if [[ -f "$1" ]]; then + echo "$1 is not a lock directory." + exit 1 + fi + + if mkdir "$1" &>/dev/null; then + echo "lock $1 created" >&2 + else + echo "lock $1 found, waiting for unlock" >&2 + while true; do + sleep 2; + if [[ ! -d "$1" ]]; then + return + fi + done + fi; + +} + +if [[ "$#" -eq "1" ]]; then + lock "$1" +else + echo "please supply one argument: the lock directory." + exit 1 +fi + |