um rename to handle piped input
This commit is contained in:
parent
230450b388
commit
7effa12c59
2 changed files with 35 additions and 5 deletions
|
|
@ -2,16 +2,31 @@
|
|||
|
||||
# Usage:
|
||||
|
||||
# > rename 100.md bar
|
||||
# > um rename 100.md foo
|
||||
# or
|
||||
# > rename 100.foo.md bar
|
||||
# > um rename 100.foo.md bar
|
||||
# or
|
||||
# > um last | um rename baz
|
||||
|
||||
# is equivalent to:
|
||||
# > mv 100.md 100.bar.md
|
||||
# > mv 100.md 100.foo.md
|
||||
# > mv 100.foo.md 100.bar.md
|
||||
# > mv 100.bar.md 100.baz.md
|
||||
|
||||
# accept piped input
|
||||
# https://unix.stackexchange.com/a/537581
|
||||
if [[ ! -t 0 ]]; then
|
||||
FROM=$(cat -)
|
||||
TO=$1
|
||||
else
|
||||
FROM=$1
|
||||
TO=$2
|
||||
fi
|
||||
|
||||
echo from: $FROM to: $TO
|
||||
|
||||
# split the args by a newline so that awk reads them as separate "records"
|
||||
mvcmd=`echo "$1
|
||||
$2" | awk -f $UMBASEPATH/rename.awk`
|
||||
mvcmd=`echo "$FROM
|
||||
$TO" | awk -f $UMBASEPATH/rename.awk`
|
||||
|
||||
mv $mvcmd
|
||||
|
|
|
|||
|
|
@ -89,6 +89,21 @@ um_next_awk() {
|
|||
+ foo'
|
||||
}
|
||||
|
||||
@test "um rename" {
|
||||
run um rename 001.md blah
|
||||
run ls 001*
|
||||
assert_output '001.blah.md'
|
||||
mv 001.blah.md 001.md
|
||||
}
|
||||
|
||||
# this doesn't work because bats doesn't handle stdin the way a tty does.
|
||||
# @test "um rename piped" {
|
||||
# run um last | um rename gloo
|
||||
# run ls 099*
|
||||
# assert_output '099.gloo.md'
|
||||
# mv 099.gloo.md 099.poo.md
|
||||
# }
|
||||
|
||||
um_rename_awk() {
|
||||
echo "$1
|
||||
$2" | awk -f $DIR/../rename.awk
|
||||
|
|
|
|||
Loading…
Reference in a new issue