diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2024-08-20 20:42:26 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2024-08-20 20:42:26 -0300 |
commit | d1791e72e2e1442033cad2ad7ef1dd183562ddec (patch) | |
tree | 1a6f087ba2d77d6a7f69230da2ec8ba30c5b0f00 /copy-item-to-kobo | |
download | utils-doc-d1791e72e2e1442033cad2ad7ef1dd183562ddec.tar.gz utils-doc-d1791e72e2e1442033cad2ad7ef1dd183562ddec.tar.bz2 |
Initial import
Diffstat (limited to 'copy-item-to-kobo')
-rwxr-xr-x | copy-item-to-kobo | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/copy-item-to-kobo b/copy-item-to-kobo new file mode 100755 index 0000000..aa751fb --- /dev/null +++ b/copy-item-to-kobo @@ -0,0 +1,54 @@ +#!/bin/bash +# +# A mini-wrapper to copy a local item to kobo. +# + +# Parameters +BASENAME="`basename $0`" +BASEFOLDER="$HOME/data/doc" +REMOTE_BASE="/mnt/sd" +REMOTE="kobo" +PATTERN="$1" +TMPFILE="tmpwork" + +# Thanks https://serverfault.com/a/764403 +# https://serverfault.com/questions/36421/stop-ssh-login-from-printing-motd-from-the-client#38160 +function silentSsh { + local connectionString="$1" + shift + local commands="$*" + if [ -z "$commands" ]; then + commands=`cat` + fi + ssh -T $connectionString "$commands" +} + +# Check +if [ -z "$PATTERN" ]; then + echo "usage: $BASENAME <pattern>" + exit 1 +fi + +# Dispatch +show --search "$PATTERN" | while read item; do + dirname="`dirname "$item"`" + + # Check if item has unspported chars in it's file name + if echo "$item" | grep -q ':'; then + echo "$BASENAME: unsupported character ':' in file name '$item'" + echo "$BASENAME: please rename the file and try again" + exit 1 + fi + + echo "Copying $item..." + + silentSsh $REMOTE <<EOC + mkdir -p "$REMOTE_BASE/$dirname" + touch "$REMOTE_BASE/$item" +EOC + + scp "$BASEFOLDER/$item" "$REMOTE:$REMOTE_BASE/$TMPFILE" + silentSsh $REMOTE <<EOS + mv "$REMOTE_BASE/$TMPFILE" "$REMOTE_BASE/$item" +EOS +done |