slitaz-tools annotate boxes/scp-box @ rev 818
Improved po/slitaz-tools/fr.po
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Jan 02 19:11:16 2014 +0100 (2014-01-02) |
parents | 75e873df3022 |
children | c79e656b37a5 |
rev | line source |
---|---|
pankso@759 | 1 #!/bin/sh |
pankso@759 | 2 # |
pankso@759 | 3 # SCP Box - Small front end to the secure file copy utility. |
pankso@759 | 4 # |
al@813 | 5 # Copyright (C) 2008-2013 SliTaz GNU/Linux - BSD License |
pankso@759 | 6 # |
pankso@759 | 7 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@759 | 8 # |
pankso@759 | 9 . /lib/libtaz.sh |
al@813 | 10 export TEXTDOMAIN='slitaz-boxes' # i18n |
pankso@759 | 11 |
pankso@759 | 12 [ "$file" ] || file="$HOME" |
pankso@759 | 13 [ "$dir" ] || dir="$HOME" |
pankso@759 | 14 |
pankso@759 | 15 # Internal variables (we need a space before options). |
pankso@759 | 16 config=$HOME/.config/scpbox |
al@813 | 17 term="terminal -geometry 80x16" |
pankso@759 | 18 scpopts=" -r -P 22" |
pankso@759 | 19 |
paul@763 | 20 # Make sure we have config files. |
pankso@759 | 21 if [ ! -d "$config" ] || [ -f "$config/hosts" ]; then |
pankso@759 | 22 mkdir -p $config |
pankso@759 | 23 touch $config/hosts && chmod 0600 $config/hosts |
pankso@759 | 24 fi |
pankso@759 | 25 |
pankso@759 | 26 # |
pankso@759 | 27 # Functions |
pankso@759 | 28 # |
pankso@759 | 29 |
pankso@759 | 30 # Help and usage |
pankso@759 | 31 usage() { |
pankso@759 | 32 cat << EOT |
pankso@759 | 33 |
al@813 | 34 $(_ 'SCP Box - Small front end to the secure file copy utility.') |
pankso@759 | 35 |
al@813 | 36 $(boldify "$(_ 'Usage:')") |
al@813 | 37 $(basename $0) [$(_n 'command')|$(_n 'option')] |
pankso@759 | 38 |
al@813 | 39 $(boldify "$(_ 'Commands:')") |
al@813 | 40 list-hosts $(_n 'List all known hosts') |
pankso@759 | 41 |
al@813 | 42 $(boldify "$(_ 'Options:')") |
al@813 | 43 --file=$(_n '/path/to/file') |
al@813 | 44 --dir=$(_n '/path/to/directory') |
al@813 | 45 |
al@813 | 46 $(boldify "$(_ 'Examples:')") |
al@813 | 47 $(basename $0) --file=$(_n '/path/to/file') |
pankso@759 | 48 |
pankso@759 | 49 EOT |
pankso@759 | 50 } |
pankso@759 | 51 |
pankso@759 | 52 # List last used hosts. |
pankso@759 | 53 list_hosts() { |
al@813 | 54 for h in $(cat $config/hosts); do |
pankso@759 | 55 echo -n "!$h" |
pankso@759 | 56 done |
pankso@759 | 57 } |
pankso@759 | 58 |
pankso@759 | 59 # Main GUI box function with pure Yad spec |
pankso@759 | 60 scpbox_main() { |
al@813 | 61 icon=folder-remote |
al@813 | 62 yad --title="$(_n 'SCP Box')" --window-icon=$icon \ |
al@813 | 63 --width=400 \ |
al@813 | 64 --image=$icon --image-on-top \ |
al@813 | 65 --text="$(_n '<b>Secure copy</b> - Copy files remotely with scp')" \ |
al@813 | 66 --form \ |
al@813 | 67 --field="$(_n 'User name:')" "$USER" \ |
al@813 | 68 --field="$(_n 'Hostname:')" "" \ |
al@813 | 69 --field="$(_n 'Known hosts:'):CB" "$(list_hosts)" \ |
al@813 | 70 --field="$(_n 'Options:')" "$scpopts" \ |
al@813 | 71 --field="$(_n 'Local file:'):FL" "$file" \ |
al@813 | 72 --field="$(_n 'Local directory:'):DIR" "$dir" \ |
al@813 | 73 --field="$(_n 'Remote path:')" "" \ |
al@813 | 74 --button="$(_n 'Download'):2" \ |
al@813 | 75 --button="$(_n 'Upload'):0" \ |
al@813 | 76 --button="gtk-close:1" |
pankso@759 | 77 } |
pankso@759 | 78 |
pankso@759 | 79 # Main function |
pankso@759 | 80 scpbox() { |
pankso@759 | 81 # Store box results |
pankso@759 | 82 main=$(scpbox_main) |
pankso@759 | 83 ret=$? |
pankso@759 | 84 [ "$debug" ] && echo "DEBUG: main=$main" |
pankso@759 | 85 |
pankso@759 | 86 user=$(echo $main | cut -d "|" -f 1) |
pankso@759 | 87 hostname=$(echo $main | cut -d "|" -f 2) |
pankso@759 | 88 options=$(echo $main | cut -d "|" -f 4) |
pankso@759 | 89 remote=$(echo $main | cut -d "|" -f 7) |
pankso@759 | 90 |
pankso@759 | 91 # Use and store new hostname. |
pankso@759 | 92 if [ "$hostname" ]; then |
pankso@759 | 93 echo "$hostname" >> $config/hosts |
pankso@759 | 94 host="$hostname" |
pankso@759 | 95 else |
pankso@759 | 96 host=$(echo $main | cut -d "|" -f 3) |
pankso@759 | 97 fi |
pankso@759 | 98 if [ "$host" == "(null)" ] || [ ! "$host" ]; then |
al@813 | 99 echo "No host, exit"; exit 0 |
pankso@759 | 100 fi |
pankso@759 | 101 |
pankso@759 | 102 # Deal with --button values |
pankso@759 | 103 case $ret in |
pankso@759 | 104 0) |
pankso@759 | 105 # Upload: do we have a single file or a directory (skip $HOME) |
pankso@759 | 106 file=$(echo $main | cut -d "|" -f 5) |
pankso@759 | 107 dir=$(echo $main | cut -d "|" -f 6) |
pankso@759 | 108 if [ -f "$file" ]; then |
pankso@759 | 109 local="$file" |
pankso@759 | 110 elif [ "$dir" != "$HOME" ]; then |
pankso@759 | 111 local="$dir" |
pankso@759 | 112 else |
al@813 | 113 echo "No file, exit"; exit 0 |
pankso@759 | 114 fi |
pankso@759 | 115 cmd="scp $options $local $user@$host:$remote" |
pankso@759 | 116 [ "$debug" ] && echo "DEBUG: $cmd" |
pankso@759 | 117 $term -e "$cmd" ;; |
pankso@759 | 118 2) |
paul@763 | 119 # Download: we need a remote file. |
pankso@759 | 120 local=$(echo $main | cut -d "|" -f 6) |
pankso@759 | 121 if [ ! "$remote" ]; then |
al@813 | 122 echo "No remote file, exit"; exit 0 |
pankso@759 | 123 fi |
pankso@759 | 124 cmd="scp $options $user@$host:$remote $local" |
pankso@759 | 125 [ "$debug" ] && echo "DEBUG: $cmd" |
pankso@759 | 126 $term -e "$cmd" ;; |
pankso@759 | 127 *) |
pankso@759 | 128 exit 0 ;; |
pankso@759 | 129 esac |
pankso@759 | 130 } |
pankso@759 | 131 |
pankso@759 | 132 # |
pankso@759 | 133 # Commands |
pankso@759 | 134 # |
pankso@759 | 135 |
pankso@759 | 136 case "$1" in |
al@813 | 137 -h|--help) usage ;; |
al@813 | 138 list-hosts) list_hosts ;; |
al@813 | 139 ""|--*) scpbox ;; |
al@813 | 140 *) usage ;; |
pankso@759 | 141 esac |
pankso@759 | 142 |
pankso@759 | 143 exit 0 |