scripts

Various scripts for UNIX-like systems
git clone https://git.tronto.net/scripts
Download | Log | Files | Refs | README

commit 3ae50860f445752ba20751835b332d21ae2d2cb9
parent b88e387692f87ccb3a2b6c56d2f4aa4cbf9e9917
Author: Sebastiano Tronto <sebastiano.tronto@gmail.com>
Date:   Sat, 15 Jan 2022 09:57:11 +0100

Restyle and added error detection in number of files when copying or moving.

Diffstat:
Msel | 77+++++++++++++++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 45 insertions(+), 32 deletions(-)

diff --git a/sel b/sel @@ -23,6 +23,33 @@ menu=${MENU:-dmenu} editor=${EDITOR:-vi} rm=trashrm # replace with rm -r if you don't use trashrm +add() { + if [ -z "$2" ]; then + dmenu-filepicker >> "$file" + else + case "$2" in + files) + ls | while read f; do + [ -f "$f" ] && echo "$PWD/$f" >> "$file" + done + ;; + dirs) + ls | while read f; do + [ -d "$f" ] && echo "$PWD/$f" >> "$file" + done + ;; + all) + ls | while read f; do + echo "$PWD/$f" >> "$file" + done + ;; + *) + echo "$2: not a valid option" + ;; + esac + fi +} + clear() { cat /dev/null > "$file" } @@ -31,11 +58,22 @@ cphere() { file2=$(mktemp) sed 's/^.*\///' "$file" > "$file2" $editor "$file2" - paste "$file" "$file2" | while read f; do - fold=$(echo "$f" | sed 's/\t.*//') - fnew=$(echo "$f" | sed 's/.*\t//') - cp -R "$fold" ./"$fnew" - done + if [ "$(wc -l $file | awk '{print $1}')" != \ + "$(wc -l $file2 | awk '{print $1}')" ]; then + echo "Error reading new file names" + else + paste "$file" "$file2" | while read f; do + fold=$(echo "$f" | sed 's/\t.*//') + fnew=$(echo "$f" | sed 's/.*\t//') + cp -R "$fold" ./"$fnew" + done + fi +} + +open() { + while read f; do + open-file "$f" + done < "$file" } remove() { @@ -49,30 +87,7 @@ if [ -z "$1" ]; then else case "$1" in add) - if [ -z "$2" ]; then - dmenu-filepicker >> "$file" - else - case "$2" in - files) - ls | while read f; do - [ -f "$f" ] && echo "$PWD/$f" >> "$file" - done - ;; - dirs) - ls | while read f; do - [ -d "$f" ] && echo "$PWD/$f" >> "$file" - done - ;; - all) - ls | while read f; do - echo "$PWD/$f" >> "$file" - done - ;; - *) - echo "$2: not a valid option" - ;; - esac - fi + add $@ sort -u -o "$file" "$file" ;; clear) @@ -91,9 +106,7 @@ case "$1" in clear ;; open) - while read f; do - open-file "$f" - done < "$file" + open ;; rm) remove