@@ -521,7 +521,8 @@ def scp_callback(filename, size, sent):
521
521
files = []
522
522
523
523
ap = argparse .ArgumentParser ()
524
- ap .add_argument ('files' ,nargs = '*' , help = 'file or module name' )
524
+ ap .add_argument ('-p' , '--password' , help = 'login password' )
525
+ ap .add_argument ('files' , nargs = '*' , help = 'file or module name' )
525
526
args = ap .parse_args ()
526
527
527
528
#scp_mode 0 put 1 get
@@ -541,11 +542,15 @@ def scp_callback(filename, size, sent):
541
542
ssh .set_missing_host_key_policy (paramiko .AutoAddPolicy ())
542
543
543
544
key_filename = find_ssh_keys ()
544
- if len ( key_filename ) == 0 : # no key file found
545
- password = raw_input ( 'Enter passsword:' )
546
- ssh . connect ( host , username = user , password = password )
545
+ if args . password is not None :
546
+ ssh . connect ( host , username = user , password = args . password )
547
+
547
548
else :
548
- ssh .connect (host ,username = user ,key_filename = key_filename )
549
+ if len (key_filename ) == 0 : # no key file found
550
+ password = raw_input ('Enter passsword:' )
551
+ ssh .connect (host , username = user , password = password )
552
+ else :
553
+ ssh .connect (host ,username = user ,key_filename = key_filename )
549
554
550
555
# SCPCLient takes a paramiko transport as its only argument
551
556
scp = SCPClient (ssh .get_transport (),progress = scp_callback )
@@ -559,5 +564,7 @@ def scp_callback(filename, size, sent):
559
564
print 'Copying to server...'
560
565
scp .put (files , recursive = True , remote_path = host_path )
561
566
567
+ ssh .close ()
568
+
562
569
563
570
0 commit comments