summaryrefslogtreecommitdiff
path: root/automv.sh
diff options
context:
space:
mode:
authorSteph Enders <smenders@gmail.com>2023-02-26 22:06:40 -0500
committerSteph Enders <smenders@gmail.com>2023-02-26 22:06:40 -0500
commit9c137d4a179b38f7187e296ae3b0303f5e479c60 (patch)
treee06f5db7e99863d3a56c324b384f0819c34449af /automv.sh
parent0791c354995775becf558f4b0031daf55477f88f (diff)
Support splitting files with --- / added tests
Added some tests to verify that you can now split your files with --- to join multiple queries into a single file. This could be for if you have two separate regexes to run or even two sources you want to run the same query against. Example file: ```example.conf query=.*example.conf$ source=/path/to/example/ target=/path/to/dest/ --- query=.*different.csv$ soruce=/path/to/different/ target=/path/to/dest/ ```
Diffstat (limited to 'automv.sh')
-rwxr-xr-xautomv.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/automv.sh b/automv.sh
index c5d496a..2c71375 100755
--- a/automv.sh
+++ b/automv.sh
@@ -1,5 +1,8 @@
#!/usr/bin/env bash
+TMPDIR=$(mktemp -d)
+CSPLIT_PREFIX=$TMPDIR/split
+
if [[ -n "$AUTOMV_DIR" ]]; then
automvdir=$AUTOMV_DIR
else
@@ -28,9 +31,25 @@ function automv {
| xargs -I '{}' mv -v {} $target/
}
+function split {
+ file=$1
+ filename=$(basename --suffix=.conf $file)
+ csplit $1 \
+ --prefix="${CSPLIT_PREFIX}-${filename}" \
+ --suffix-format='_%04d.conf' \
+ --elide-empty-files \
+ --suppress-matched \
+ --keep-files \
+ /---/ '{*}'
+}
+
echo "Executing automv functions from $automvdir"
for file in $automvdir/*.conf
do
+ split $file
+done
+for file in $TMPDIR/*.conf
+do
echo "found $file"
if [[ -f $file ]]; then
# Extract file configs
@@ -41,3 +60,7 @@ do
automv $query $sourced $target
fi
done
+echo "Automoved files"
+echo "Removing tmp dir: $TMPDIR"
+rm -r $TMPDIR
+echo "Done"