prettier output for cclip
This commit is contained in:
66
files/cclip
66
files/cclip
@@ -5,7 +5,7 @@ _help() {
|
|||||||
SELF=$( basename "$0" )
|
SELF=$( basename "$0" )
|
||||||
echo "Console Clipboard manager
|
echo "Console Clipboard manager
|
||||||
|
|
||||||
Usage: $SELF [command] [name] [filename]
|
Usage: $SELF [command] [clipboard name] [filename]
|
||||||
|
|
||||||
Short Command Description
|
Short Command Description
|
||||||
p paste Display on screen / copies to file
|
p paste Display on screen / copies to file
|
||||||
@@ -18,8 +18,9 @@ _help() {
|
|||||||
pmenu pastemenu Paste a file/folder using a simple menu (ex. for MC)
|
pmenu pastemenu Paste a file/folder using a simple menu (ex. for MC)
|
||||||
autocomplete Get Bash autocompletion script
|
autocomplete Get Bash autocompletion script
|
||||||
|
|
||||||
Name: Any string for the clipboard name. default: 0
|
Clipboard Name: Any string for the clipboard name. default: 0
|
||||||
Filename:
|
Filename:
|
||||||
|
If not given, defaults to clipboard name
|
||||||
When reading from clipboard:
|
When reading from clipboard:
|
||||||
File or folder to write the clipboard contents. If omitted: stdout
|
File or folder to write the clipboard contents. If omitted: stdout
|
||||||
When writing to clipboard:
|
When writing to clipboard:
|
||||||
@@ -52,21 +53,33 @@ _list() {
|
|||||||
_msg "No clipboard entries"
|
_msg "No clipboard entries"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
printf " %30s %8s %-19s %s\n" Type Size Date Name
|
hl=$( _qCol W 2>/dev/null || true )
|
||||||
for n in *; do
|
he=$( _qCol y U 2>/dev/null || true )
|
||||||
|
no=$( _qCol z 2>/dev/null || true )
|
||||||
|
now=$( date -Idate )
|
||||||
|
printf "%s%1s %5s %10s %s%s\n" "$he" T Size Added Name "$no"
|
||||||
|
IFS=$'\n'
|
||||||
|
while read n; do
|
||||||
size=$( du -k -h -s --apparent-size "$n" | awk '{ print $1 }' )
|
size=$( du -k -h -s --apparent-size "$n" | awk '{ print $1 }' )
|
||||||
type=$( file -b "$n" )
|
type=f
|
||||||
|
if [[ -d "$n" ]]; then type=d; fi
|
||||||
date=$( date -r "$n" -Iseconds )
|
date=$( date -r "$n" -Iseconds )
|
||||||
printf " %30s %8s %-19s %s\n" \
|
date="${date::-6}"
|
||||||
"${type:0:30}" \
|
if [[ "$date" = "$now"* ]]; then
|
||||||
|
date=${date#*T}
|
||||||
|
else
|
||||||
|
date=${date%T*}
|
||||||
|
fi
|
||||||
|
printf "%1s %5s %10s %s%s%s\n" \
|
||||||
|
"${type}" \
|
||||||
"$size" \
|
"$size" \
|
||||||
"${date::-6}" \
|
"${date}" \
|
||||||
"$n"
|
"$hl" "$n" "$no"
|
||||||
done
|
done < <( ls -t )
|
||||||
}
|
}
|
||||||
|
|
||||||
_simple_list() {
|
_simple_list() {
|
||||||
ls "$STORAGE"
|
ls -1 "$STORAGE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -102,11 +115,16 @@ _write() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_write_files() { # name, file
|
_write_files() { # name, file
|
||||||
|
if [[ "$1" = "$2" ]]; then
|
||||||
|
to=""
|
||||||
|
else
|
||||||
|
to=" to $1"
|
||||||
|
fi
|
||||||
if [[ $MOVE = true ]]; then
|
if [[ $MOVE = true ]]; then
|
||||||
echo Cutting "$2" to "$1"
|
echo Cutting "${2}$to"
|
||||||
mv "$2" "$STORAGE/$1"
|
mv "$2" "$STORAGE/$1"
|
||||||
else
|
else
|
||||||
echo Copying "$2" to "$1"
|
echo Copying "${2}$to"
|
||||||
cp -aT "$2" "$STORAGE/$1"
|
cp -aT "$2" "$STORAGE/$1"
|
||||||
fi
|
fi
|
||||||
touch "$STORAGE/$1"
|
touch "$STORAGE/$1"
|
||||||
@@ -122,9 +140,15 @@ _read_menu() {
|
|||||||
ls
|
ls
|
||||||
read -e NAME
|
read -e NAME
|
||||||
popd &>/dev/null
|
popd &>/dev/null
|
||||||
|
NAME=${NAME#\'}
|
||||||
|
NAME=${NAME#\"}
|
||||||
|
NAME=${NAME%\'}
|
||||||
|
NAME=${NAME%\"}
|
||||||
if [[ -e "$STORAGE/$NAME" ]]; then
|
if [[ -e "$STORAGE/$NAME" ]]; then
|
||||||
NAME=$( basename $NAME )
|
NAME=$( basename "$NAME" )
|
||||||
_read
|
_read
|
||||||
|
else
|
||||||
|
echo "Could not find '$NAME'"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,7 +179,12 @@ _read() {
|
|||||||
|
|
||||||
|
|
||||||
_read_files() { # name, file
|
_read_files() { # name, file
|
||||||
echo Pasting "$1" to "$2"
|
if [[ "$1" = "$2" ]]; then
|
||||||
|
to=""
|
||||||
|
else
|
||||||
|
to=" to $2"
|
||||||
|
fi
|
||||||
|
echo Pasting "${1}$to"
|
||||||
cp -aT "$STORAGE/$1" "$2"
|
cp -aT "$STORAGE/$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,8 +259,9 @@ fi
|
|||||||
if [[ $COMP_CWORD -eq 2 ]]; then
|
if [[ $COMP_CWORD -eq 2 ]]; then
|
||||||
case ${COMP_WORDS[$(( $COMP_CWORD - 1 ))]} in
|
case ${COMP_WORDS[$(( $COMP_CWORD - 1 ))]} in
|
||||||
p|paste|d*)
|
p|paste|d*)
|
||||||
local remotelist=$( eval CCLIP_EXEC simplelist )
|
local IFS=$'"'"'\n'"'"'
|
||||||
COMPREPLY=( $(compgen -W "$remotelist" -- $curr_arg ) );
|
local remotelist=( $( eval CCLIP_EXEC simplelist ) )
|
||||||
|
COMPREPLY=( $(compgen -W "${remotelist[*]}" -- $curr_arg ) );
|
||||||
;;
|
;;
|
||||||
x|c*)
|
x|c*)
|
||||||
COMPREPLY=( $(compgen -f -d -- $curr_arg ) );
|
COMPREPLY=( $(compgen -f -d -- $curr_arg ) );
|
||||||
@@ -249,12 +279,12 @@ complete -F _CCLIP_EXEC_complete CCLIP_EXEC
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (( i=1; i<=$#; i++ )); do
|
for (( i=1; i<=$#; i++ )); do
|
||||||
[[ "${!i}" = "-h" ]] && _help
|
[[ "${!i}" = "-h" ]] && _help
|
||||||
[[ "${!i}" = "--help" ]] && _help
|
[[ "${!i}" = "--help" ]] && _help
|
||||||
done
|
done
|
||||||
_load_config
|
_load_config
|
||||||
|
source qolop &>/dev/null || true
|
||||||
ARG1="$1"
|
ARG1="$1"
|
||||||
ARG2="$2"
|
ARG2="$2"
|
||||||
ARG3="$3"
|
ARG3="$3"
|
||||||
|
|||||||
Reference in New Issue
Block a user