mirror of
https://github.com/G2-Games/clipboard.sh.git
synced 2025-04-19 14:22:54 -05:00
Initial clipboard implementation
This commit is contained in:
parent
cd77d590c9
commit
9e7fcbd967
1 changed files with 98 additions and 0 deletions
98
clipboard.sh
Executable file
98
clipboard.sh
Executable file
|
@ -0,0 +1,98 @@
|
||||||
|
#!/bin/sh
|
||||||
|
ver=0.0.1
|
||||||
|
clipboarddir=/tmp/clipboardsh
|
||||||
|
clipboardfile=/tmp/clipboardsh/clipboard
|
||||||
|
op=$1
|
||||||
|
target=$2
|
||||||
|
number=0
|
||||||
|
|
||||||
|
# Colors:
|
||||||
|
empty="[\033[35m?\033[0m]"
|
||||||
|
success="[\033[32m✓\033[0m]"
|
||||||
|
fail="[\033[31m✗\033[0m]"
|
||||||
|
|
||||||
|
|
||||||
|
copy () {
|
||||||
|
# Find the absolute path of the requested file or folder...
|
||||||
|
path="$(cd "$(dirname -- "$target")" >/dev/null; pwd -P)/$(basename -- "$target")"
|
||||||
|
|
||||||
|
if grep -sq "$path" $clipboardfile; then
|
||||||
|
echo "$fail \033[32m$target\033[0m already in clipboard"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the clipboard directory if it doesn't already exist
|
||||||
|
mkdir -p $clipboarddir
|
||||||
|
# Create the clipboard file if it doesn't already exist, if it does, assign a number to the file
|
||||||
|
if [ -f $clipboardfile ]; then
|
||||||
|
number=$(tail -n 1 $clipboardfile | cut -d ':' -f2)
|
||||||
|
number=$((number + 1))
|
||||||
|
else
|
||||||
|
touch $clipboardfile
|
||||||
|
number=0
|
||||||
|
fi
|
||||||
|
# Store the file location in the clipboard with the operation
|
||||||
|
cp $path "$clipboarddir/$number.tmp"
|
||||||
|
echo "copy:$number:$path" >> $clipboardfile
|
||||||
|
echo "Copied \033[33;1m$target\033[0m to clipboard"
|
||||||
|
}
|
||||||
|
|
||||||
|
ct () { # Cut
|
||||||
|
echo cut
|
||||||
|
}
|
||||||
|
|
||||||
|
cl () { # Clear
|
||||||
|
if [ -d "$clipboarddir" ]; then
|
||||||
|
rm -r $clipboarddir
|
||||||
|
echo "$success Clipboard cleared"
|
||||||
|
else
|
||||||
|
echo "$empty Clipboard already empty"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pt () {
|
||||||
|
if [ -f $clipboardfile ]; then
|
||||||
|
file=$(tail -n 1 $clipboardfile | cut -d ':' -f3)
|
||||||
|
name=$(tail -n 1 $clipboardfile | rev | cut -d '/' -f1 | rev)
|
||||||
|
operation=$(tail -n 1 $clipboardfile | cut -d ':' -f1)
|
||||||
|
number=$(tail -n 1 $clipboardfile | cut -d ':' -f2)
|
||||||
|
if [ -f $name ]; then
|
||||||
|
tput sc
|
||||||
|
echo -n "\033[33;1m$name\033[0m already exists in this folder, do you want to overwrite?"
|
||||||
|
read -p " y/N " yn
|
||||||
|
case $yn in
|
||||||
|
[Yy]* ) echo cp -rf "$clipboarddir/$number.tmp" $name && tput rc;tput el; echo "$success Pasted \033[33;1m$name\033[0m";;
|
||||||
|
[Nn]* ) exit;;
|
||||||
|
* ) exit;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
cp "$clipboarddir/$number.tmp" $name
|
||||||
|
echo "$success Pasted \033[33;1m$name\033[0m"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$empty Nothing to paste"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
show () {
|
||||||
|
if [ -f $clipboardfile ]; then
|
||||||
|
cat $clipboardfile | rev | cut -d '/' -f1 | rev
|
||||||
|
else
|
||||||
|
echo "$empty Clipboard empty"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$op" = "copy" ]; then
|
||||||
|
copy
|
||||||
|
elif [ "$op" = "cut" ]; then
|
||||||
|
ct
|
||||||
|
elif [ "$op" = "paste" ]; then
|
||||||
|
pt
|
||||||
|
elif [ "$op" = "clear" ]; then
|
||||||
|
cl
|
||||||
|
elif [ "$op" = "show" ]; then
|
||||||
|
show
|
||||||
|
else
|
||||||
|
show
|
||||||
|
fi
|
Loading…
Reference in a new issue