summaryrefslogtreecommitdiff
path: root/automv.sh
diff options
context:
space:
mode:
Diffstat (limited to 'automv.sh')
-rwxr-xr-xautomv.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/automv.sh b/automv.sh
new file mode 100755
index 0000000..16d7683
--- /dev/null
+++ b/automv.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+set -e
+
+if [[ -n "$AUTOMV_DIR" ]]; then
+ automvdir=$AUTOMV_DIR
+else
+ automvdir=$(dirname "$0")/automv.d
+fi
+
+function extract {
+ local file=$1
+ local prop=$2
+ grep "^${prop}=.*$" $file | cut -d '=' -f2
+}
+
+function automv {
+ local query=$1
+ local source=$2
+ local target=$3
+ echo "Moving files in $source that match '$query' to $target"
+ find $source -type f \( -regex "${query}" ! -iname ".*" \) | xargs -I '{}' mv {} $target/
+}
+
+echo "Executing automv functions from $automvdir"
+for file in $automvdir/*.conf
+do
+ echo "found $file"
+ if [[ -f $file ]]; then
+ # Extract file configs
+ query=$(extract $file "query")
+ sourced=$(extract $file "source")
+ target=$(extract $file "target")
+
+ automv $query $sourced $target
+ fi
+done