diff --git a/ufwd b/ufwd index 7cc3ff3..76997f4 100755 --- a/ufwd +++ b/ufwd @@ -21,6 +21,28 @@ usage() { printf ' -D [sec] # Set the check interval.\n' } +upload() { + declare file=$1 + + upload_output=$( ufw "$@" -R "$file" ) + upload_return=$? + + if (( flag_enable_notifications )); then + if (( $upload_return )); then + notify-send 'ufwd' "File upload failed: $upload_output" + else + notify-send 'ufwd' "File uploaded: $upload_output" + fi + fi + + if (( flag_enable_clipboard )); then + read -r fl <<< "$upload_output" + xclip <<< "$fl" + fi + + printf '%s\n' "$upload_output" +} + main() { while (( $# )); do case "$1" in @@ -58,23 +80,7 @@ main() { cd "$cfg_workdir" || return 1 while read -r dir action path; do - upload_output=$( ufw "$@" -R "$dir$path" ) - upload_return=$? - - if (( flag_enable_notifications )); then - if (( $upload_return )); then - notify-send 'ufwd' "File upload failed: $upload_output" - else - notify-send 'ufwd' "File uploaded: $upload_output" - fi - fi - - if (( flag_enable_clipboard )); then - read -r fl <<< "$upload_output" - xclip <<< "$fl" - fi - - printf '%s\n' "$upload_output" + upload "$dir$path" & done < <( inotifywait -m -e create "$cfg_workdir" ) }