]> git.treefish.org Git - fex.git/blobdiff - bin/fexget
Original release 20160919
[fex.git] / bin / fexget
index b0616a16fe5653e4d7830bb24116f34b6d2e30c6..3ac605f51f571676dad713d63bb88a2b7d74751e 100755 (executable)
@@ -13,6 +13,7 @@ use strict qw'vars subs';
 use Config;
 use POSIX;
 use Encode;
+use Cwd 'abs_path';
 use Getopt::Std;
 use File::Basename;
 use Socket;
@@ -30,7 +31,7 @@ our $SH;
 our ($fexhome,$idf,$tmpdir,$windoof,$useragent);
 our ($xv,%autoview);
 our $bs = 2**16; # blocksize for tcp-reading and writing file
-our $version = 20160328;
+our $version = 20160919;
 our $CTYPE = 'ISO-8859-1';
 our $fexsend = $ENV{FEXSEND} || 'fexsend';
 our $DEBUG = $ENV{DEBUG};
@@ -89,6 +90,7 @@ usage: $0 [-v] [-m limit] [-s filename] [-o] [-k] [-X] [-P proxy:port] F*EX-URL(
    or: $0 [-v] -a
    or: $0 -l [-i tag]
    or: $0 -H
+   or: $0 -V
 options: -v verbose mode
          -m limit kB/s
          -s save to filename (-s- means: write to STDOUT/pipe)
@@ -102,6 +104,7 @@ options: -v verbose mode
          -i tag alternate server/account, see: $fexsend -h
          -P use Proxy for connection to the F*EX server
          -H show hints and examples
+         -V show version and ask for upgrade
 argument: F*EX-URL may be file number (see: $0 -l)
 EOD
 
@@ -167,10 +170,15 @@ if ($opt_V) {
     $_ = <STDIN>||'';
     if (/^y/i) {
       my $new = `wget -nv -O- http://fex.belwue.de/download/fexget`;
-      if ($new !~ /upgrade fexget/) {
+      my $newversion = $1 if $new =~ /version = (\d+)/;
+      if ($new !~ /upgrade fexget/ or not $newversion) {
         die "$0: bad update\n";
       }
-      system qw'cp -a',$_0,$_0.'_old';
+      if ($newversion <= $version) {
+        die "$0: no newer version\n";
+      }
+      $_0 = abs_path($_0);
+      system qw'rsync -a',$_0,$_0.'_old';
       exit $? if $?;
       open $_0,'>',$_0 or die "$0: cannot write $_0. - $!\n";
       print {$_0} $new;
@@ -178,6 +186,7 @@ if ($opt_V) {
       exec $_0,qw'-V .';
     }
   }
+  exit;
   exit if "@ARGV" eq '.';
 }
 
@@ -328,7 +337,7 @@ URL: foreach my $url (@ARGV) {
       ($file) = grep { $_ = $1 if /^X-File:\s+(.+)/ } @r;
       $file = $url unless $file;
       $file =~ s:.*/::;
-      printf "%s deleted\n",urldecode($file);
+      printf "%s deleted\n",locale(decode_utf8(urldecode($file)));
     } else {
       s:HTTP/[\d\. ]+::;
       die "$0: server response: $_";