50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/ksh
 | 
						|
. $HOME/.bin/_config
 | 
						|
 | 
						|
_rdir=$1
 | 
						|
 | 
						|
list() {
 | 
						|
    _dir="$1"
 | 
						|
    _sel="$(ssh $USER@$DOMAIN "cd \"$_dir\" && ( printf 'GO BACK\nNEW FILE\n'; ls -lt .; )" \
 | 
						|
           | egrep -v ^total | fzf)"
 | 
						|
 | 
						|
    [ $? -ne 0 ] && exit;
 | 
						|
 | 
						|
    case "$_sel" in
 | 
						|
        "NEW FILE") newfile "$_dir" ;;
 | 
						|
        "GO BACK") list "$_dir/.." ;;
 | 
						|
        *) dofile "$_dir" "$_sel" ;;
 | 
						|
    esac
 | 
						|
    list "$_dir"
 | 
						|
}
 | 
						|
 | 
						|
dofile() {
 | 
						|
    _dir="$1"
 | 
						|
    _sel="$2"
 | 
						|
    _do="$(printf 'EDIT\nDELETE\nDOWNLOAD\n' | fzf)";
 | 
						|
    [ $? -ne 0 ] && exit;
 | 
						|
 | 
						|
    _entry=$(printf '%s' "$_sel" | tr -s ' ' | cut -d" " -f9-)
 | 
						|
 | 
						|
    if printf '%s' "$_sel" | egrep ^d;
 | 
						|
    then
 | 
						|
        list "$_dir/$_entry"
 | 
						|
    else
 | 
						|
        case "$_do" in
 | 
						|
            "EDIT") vim "sftp://$USER@$DOMAIN/$_dir/$_entry" ;;
 | 
						|
            "DELETE") ssh $USER@$DOMAIN "rm /$_dir/$_entry" ;;
 | 
						|
            "DOWNLOAD") scp "$USER@$DOMAIN:/$_dir/$_entry" . ;;
 | 
						|
            "GO BACK") list "$_dir" ;;
 | 
						|
        esac
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
newfile() {
 | 
						|
    _dir="$1"
 | 
						|
    printf 'Filename (%s)? ' "$(date +%Y-%m-%d-)"
 | 
						|
    read name;
 | 
						|
    vim "sftp://$USER@$DOMAIN/$_dir/$name"
 | 
						|
}
 | 
						|
 | 
						|
list "${_rdir:=$RPATH}"
 |