aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCalvin Morrison <mutantturkey@gmail.com>2014-04-08 12:30:43 -0400
committerCalvin Morrison <mutantturkey@gmail.com>2014-04-08 12:30:43 -0400
commit927b681691b293afbb798a65d4340446e7f6fb6c (patch)
tree117cb3401670f028e9fa427581b3f9b3c3964603
parent85ba6e83f0f7cb0856b3667b10655ad2d0b90761 (diff)
add lock
-rwxr-xr-xSelectiveWholeGenomeAmplification3
-rw-r--r--src/lock28
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
+