finally updating cclip
This commit is contained in:
83
files/cclip
83
files/cclip
@@ -11,8 +11,10 @@ _help() {
|
|||||||
(r)ead Display on screen / copies to file
|
(r)ead Display on screen / copies to file
|
||||||
(w)rite Save from stdin / from file
|
(w)rite Save from stdin / from file
|
||||||
(d)elete Delete an entry
|
(d)elete Delete an entry
|
||||||
|
(D)elete Clear the whole clibboard
|
||||||
(e)dit Edit contents, with \$EDITOR
|
(e)dit Edit contents, with \$EDITOR
|
||||||
(l)ist [default] List names of clipboards
|
(l)ist [default] List names of clipboards
|
||||||
|
rmenu/readmenu Read a file/folder using a simple menu (for MC ex.)
|
||||||
|
|
||||||
Name: Any string for the clipboard name. default: 0
|
Name: Any string for the clipboard name. default: 0
|
||||||
Filename:
|
Filename:
|
||||||
@@ -64,10 +66,20 @@ _list() {
|
|||||||
_write() {
|
_write() {
|
||||||
# no file mentioned, use stdin
|
# no file mentioned, use stdin
|
||||||
[[ -z "$FILE" ]] && stream_in=1
|
[[ -z "$FILE" ]] && stream_in=1
|
||||||
# stdin is open, use stdin
|
# no file mentioned, use the name as file
|
||||||
[ -t 0 ] || stream_in=1
|
[[ -z "$FILE" ]] && {
|
||||||
|
[[ -e "$NAME" ]] && {
|
||||||
|
# NAME is actually the file, reverse roles
|
||||||
|
FILE="$NAME"
|
||||||
|
NAME=$( basename "$NAME" )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[[ -e "$FILE" ]] && {
|
||||||
|
# Input file exists, dont use stream
|
||||||
|
stream_in=0
|
||||||
|
}
|
||||||
|
|
||||||
[ -t 0 ] && [[ -z "$FILE" ]] && {
|
[[ $stream_in -ne 1 ]] && [[ -z "$FILE" ]] && {
|
||||||
_msg File to read needed, or use stdin
|
_msg File to read needed, or use stdin
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@@ -83,34 +95,57 @@ _write() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_write_files() { # name, file
|
_write_files() { # name, file
|
||||||
cp -av "$2" "$STORAGE/$1"
|
echo Storing "$2" to "$1"
|
||||||
|
cp -aT "$2" "$STORAGE/$1"
|
||||||
|
touch "$STORAGE/$1"
|
||||||
}
|
}
|
||||||
_write_stdin() { # name
|
_write_stdin() { # name
|
||||||
cat - > "$STORAGE/$1"
|
cat - > "$STORAGE/$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_read_menu() {
|
||||||
|
pushd "$STORAGE" &>/dev/null
|
||||||
|
echo "Select clipboard from menu"
|
||||||
|
ls
|
||||||
|
read -e NAME
|
||||||
|
popd &>/dev/null
|
||||||
|
if [[ -e "$STORAGE/$NAME" ]]; then
|
||||||
|
NAME=$( basename $NAME )
|
||||||
|
_read
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
_read() {
|
_read() {
|
||||||
[[ -e "$STORAGE/$NAME" ]] || {
|
[[ -e "$STORAGE/$NAME" ]] || {
|
||||||
_msg "No such clipboard"
|
_msg "No such clipboard"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
[[ -z "$FILE" ]] && stream_out=1
|
[[ "$FILE" = "-" ]] && stream_out=1
|
||||||
[ -t 1 ] || stream_out=1
|
[ -t 1 ] || stream_out=1
|
||||||
|
|
||||||
[[ "$stream_out" -eq 1 ]] && {
|
[[ "$stream_out" -eq 1 ]] && {
|
||||||
[[ -d "$STORAGE/$NAME" ]] && {
|
_read_stdout "$NAME"
|
||||||
_msg "$NAME is a directory, needs target [file]"
|
return
|
||||||
|
}
|
||||||
|
# no file mentioned, use the name as file
|
||||||
|
[[ -z "$FILE" ]] && {
|
||||||
|
[[ -n "$NAME" ]] && {
|
||||||
|
FILE=$( basename "$NAME" )
|
||||||
|
}
|
||||||
|
[[ -e "$FILE" ]] && {
|
||||||
|
echo "'$FILE' already exists, not overwriting"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
_read_stdout "$NAME"
|
|
||||||
} || {
|
|
||||||
_read_files "$NAME" "$FILE"
|
|
||||||
}
|
}
|
||||||
|
_read_files "$NAME" "$FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_read_files() { # name, file
|
_read_files() { # name, file
|
||||||
cp -av "$STORAGE/$1" "$2"
|
echo Reading "$1" to "$2"
|
||||||
|
cp -aT "$STORAGE/$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
_read_stdout() { # name
|
_read_stdout() { # name
|
||||||
cat "$STORAGE/$1"
|
cat "$STORAGE/$1"
|
||||||
}
|
}
|
||||||
@@ -123,7 +158,19 @@ _delete() { # name
|
|||||||
[[ "$FORCE" -ne 1 ]] && {
|
[[ "$FORCE" -ne 1 ]] && {
|
||||||
read -p "Really delete $1 ? Break to cancel. " foo
|
read -p "Really delete $1 ? Break to cancel. " foo
|
||||||
}
|
}
|
||||||
rm -vrf "$STORAGE/$1"
|
echo Deleting "$1"
|
||||||
|
rm -rf "$STORAGE/$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
_delete_all() {
|
||||||
|
[[ -e "$STORAGE" ]] || {
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
[[ "$FORCE" -ne 1 ]] && {
|
||||||
|
read -p "Really delete $STORAGE ? Break to cancel. " foo
|
||||||
|
}
|
||||||
|
rm -vrf "$STORAGE/"
|
||||||
|
mkdir "$STORAGE"
|
||||||
}
|
}
|
||||||
|
|
||||||
_msg() {
|
_msg() {
|
||||||
@@ -168,8 +215,10 @@ ARG2="$2"
|
|||||||
ARG3="$3"
|
ARG3="$3"
|
||||||
CMD=list
|
CMD=list
|
||||||
[[ "$1" = "r" || "$1" = "read" ]] && { CMD=read; ARG1=$CMD; }
|
[[ "$1" = "r" || "$1" = "read" ]] && { CMD=read; ARG1=$CMD; }
|
||||||
|
[[ "$1" = "rmenu" || "$1" = "readmenu" ]] && { CMD=read_menu; ARG1=$CMD; }
|
||||||
[[ "$1" = "w" || "$1" = "write" ]] && { CMD=write; ARG1=$CMD; }
|
[[ "$1" = "w" || "$1" = "write" ]] && { CMD=write; ARG1=$CMD; }
|
||||||
[[ "$1" = "d" || "$1" = "delete" || "$1" = "del" ]] && { CMD=delete; ARG1=$CMD; }
|
[[ "$1" = "d" || "$1" = "delete" || "$1" = "del" ]] && { CMD=delete; ARG1=$CMD; }
|
||||||
|
[[ "$1" = "D" || "$1" = "Delete" || "$1" = "Del" ]] && { CMD=delete_all; ARG1=$CMD; }
|
||||||
[[ "$1" = "l" || "$1" = "list" ]] && { CMD=list; ARG1=$CMD; }
|
[[ "$1" = "l" || "$1" = "list" ]] && { CMD=list; ARG1=$CMD; }
|
||||||
[[ "$1" = "e" || "$1" = "edit" ]] && { CMD=edit; ARG1=$CMD; }
|
[[ "$1" = "e" || "$1" = "edit" ]] && { CMD=edit; ARG1=$CMD; }
|
||||||
[[ "$1" = "h" || "$1" = "help" ]] && _help
|
[[ "$1" = "h" || "$1" = "help" ]] && _help
|
||||||
@@ -183,12 +232,20 @@ CMD=list
|
|||||||
_list
|
_list
|
||||||
exit $?
|
exit $?
|
||||||
}
|
}
|
||||||
|
[[ "$CMD" = delete_all ]] && {
|
||||||
|
_delete_all
|
||||||
|
exit $?
|
||||||
|
}
|
||||||
_get_name
|
_get_name
|
||||||
_get_file
|
_get_file
|
||||||
[[ "$CMD" = read ]] && {
|
[[ "$CMD" = read ]] && {
|
||||||
_read
|
_read
|
||||||
exit $?
|
exit $?
|
||||||
}
|
}
|
||||||
|
[[ "$CMD" = read_menu ]] && {
|
||||||
|
_read_menu
|
||||||
|
exit $?
|
||||||
|
}
|
||||||
[[ "$CMD" = delete ]] && {
|
[[ "$CMD" = delete ]] && {
|
||||||
_delete "$NAME"
|
_delete "$NAME"
|
||||||
exit $?
|
exit $?
|
||||||
|
|||||||
Reference in New Issue
Block a user