(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('sftp commands'))} spids:[17])] spids: [17] ) (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(cd)} {(/bin)}) terminator: <Op_Semi ';'> ) (C {(echo)} {(l) (Lit_Other '*')}) ] ) spids: [33 42] ) ] ) left_token: <Left_Backtick '`'> spids: [32 43] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {($ VSub_Name '$i')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GLOBFILES) op: Equal rhs: {(DQ ($ VSub_Name '$GLOBFILES') (' ') ($ VSub_Name '$i'))} spids: [62] ) ] spids: [62] ) ] spids: [-1 59] ) ] spids: [-1 70] ) ] spids: [45 72] ) spids: [31 -1] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUOTECOPY) op: Equal rhs: {(${ VSub_Name COPY) (DQ (.) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (blah) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } spids: [78] ) ] spids: [78] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUOTECOPY_ARG) op: Equal rhs: {(${ VSub_Name COPY) (SQ <'.\\"blah\\"'>)} spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SPACECOPY) op: Equal rhs: {(DQ (${ VSub_Name COPY) (' this has spaces.txt'))} spids: [100] ) ] spids: [100] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SPACECOPY_ARG) op: Equal rhs: { (DQ (${ VSub_Name COPY) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (this) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (has) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (spaces.txt) ) } spids: [108] ) ] spids: [108] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GLOBMETACOPY) op: Equal rhs: {(DQ (${ VSub_Name COPY) (' [metachar].txt'))} spids: [124] ) ] spids: [124] ) (C {(rm)} {(-rf)} {(${ VSub_Name COPY)} {(${ VSub_Name COPY) (.1)} {(${ VSub_Name COPY) (.2)} {(${ VSub_Name COPY) (.dd)} {(${ VSub_Name COPY) (.dd2)} ) (C {(mkdir)} {(${ VSub_Name COPY) (.dd)}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': lls'))}) (AndOr children: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ('lcd ') (${ VSub_Name OBJ))}) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ (lls))}) ] ) spids: [176 193] ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[207])] ) (SimpleCommand words: [{(grep)} {(copy.dd)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[218]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[221]) ] ) ] negated: False ) (C {(fail)} {(DQ ('lls failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': lls w/path'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('lls ') (${ VSub_Name OBJ))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[261])] ) (SimpleCommand words: [{(grep)} {(copy.dd)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[272]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[275]) ] ) ] negated: False ) (C {(fail)} {(DQ ('lls w/path failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': ls'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('ls ') (${ VSub_Name OBJ))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[315]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[318]) ] ) ] negated: False ) (C {(fail)} {(DQ ('ls failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': shell'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('!echo hi there'))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[360]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[363]) ] ) ] negated: False ) (C {(fail)} {(DQ ('shell failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': pwd'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ (pwd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[405]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[408]) ] ) ] negated: False ) (C {(fail)} {(DQ ('pwd failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': lpwd'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ (lpwd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[450]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[453]) ] ) ] negated: False ) (C {(fail)} {(DQ ('lpwd failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': quit'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ (quit))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[495]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[498]) ] ) ] negated: False ) (C {(fail)} {(DQ ('quit failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': help'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ (help))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[540]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[543]) ] ) ] negated: False ) (C {(fail)} {(DQ ('help failed'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY)}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('get ') ($ VSub_Name '$DATA') (' ') ($ VSub_Name '$COPY'))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[596]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[599]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY)}) (C {(fail)} {(DQ ('corrupted copy after get'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY)}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get quoted'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} { (DQ ('get ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$DATA') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$COPY') ) } ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[667]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[670]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY)}) (C {(fail)} {(DQ ('corrupted copy after get'))}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$os'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (cygwin))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(${ VSub_Name QUOTECOPY)}) (C {(cp)} {($ VSub_Name '$DATA')} {(${ VSub_Name QUOTECOPY)}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get filename with quotes'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} { (DQ ('get ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$QUOTECOPY_ARG') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') (${ VSub_Name COPY) ) } ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [768] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [771] ) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {(${ VSub_Name COPY)} {(${ VSub_Name QUOTECOPY)}) (C {(fail)} {(DQ ('corrupted copy after get with quotes'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name QUOTECOPY)} {(${ VSub_Name COPY)}) ] spids: [-1 718] ) ] spids: [-1 814] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$SPACECOPY'))} {(${ VSub_Name COPY)}) (C {(cp)} {($ VSub_Name '$DATA')} {(DQ ($ VSub_Name '$SPACECOPY'))}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get filename with spaces'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('get ') (${ VSub_Name SPACECOPY_ARG) (' ') (${ VSub_Name COPY))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[869]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[872]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {(${ VSub_Name COPY)} {(DQ ($ VSub_Name '$SPACECOPY'))}) (C {(fail)} {(DQ ('corrupted copy after get with spaces'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$GLOBMETACOPY'))} {(${ VSub_Name COPY)}) (C {(cp)} {($ VSub_Name '$DATA')} {(DQ ($ VSub_Name '$GLOBMETACOPY'))}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get filename with glob metacharacters'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} { (DQ ('get ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name GLOBMETACOPY) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') (${ VSub_Name COPY) ) } ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[960]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[963]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {(${ VSub_Name COPY)} {(DQ ($ VSub_Name '$GLOBMETACOPY'))}) (C {(fail)} {(DQ ('corrupted copy after get with glob metacharacters'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get to directory'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('get ') ($ VSub_Name '$DATA') (' ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1036]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1039]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$DATANAME')}) (C {(fail)} {(DQ ('corrupted copy after get'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': glob get to directory'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('get /bin/l* ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1110]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1113]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (ForEach iter_name: x iter_words: [{($ VSub_Name '$GLOBFILES')}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(cmp)} {(/bin/) ($ VSub_Name '$x')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$x')}) (C {(fail)} {(DQ ('corrupted copy after get'))}) ] op_id: Op_DPipe ) ] spids: [1135 1157] ) spids: [1131 1133] ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': get to local dir'))}) (AndOr children: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ('lcd ') (${ VSub_Name COPY) (.dd))}) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ('get ') ($ VSub_Name '$DATA'))}) ] ) spids: [1177 1196] ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1210]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1213]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$DATANAME')}) (C {(fail)} {(DQ ('corrupted copy after get'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': glob get to local dir'))}) (AndOr children: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ('lcd ') (${ VSub_Name COPY) (.dd))}) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ('get /bin/l*'))}) ] ) spids: [1262 1279] ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1293]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1296]) ] ) ] negated: False ) (C {(fail)} {(DQ ('get failed'))}) ] op_id: Op_DPipe ) (ForEach iter_name: x iter_words: [{($ VSub_Name '$GLOBFILES')}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(cmp)} {(/bin/) ($ VSub_Name '$x')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$x')}) (C {(fail)} {(DQ ('corrupted copy after get'))}) ] op_id: Op_DPipe ) ] spids: [1318 1340] ) spids: [1314 1316] ) (C {(rm)} {(-f)} {(${ VSub_Name COPY)}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': put'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('put ') ($ VSub_Name '$DATA') (' ') ($ VSub_Name '$COPY'))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1381]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1384]) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY)}) (C {(fail)} {(DQ ('corrupted copy after put'))}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$os'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (cygwin))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(${ VSub_Name QUOTECOPY)}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': put filename with quotes'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} { (DQ ('put ') ($ VSub_Name '$DATA') (' ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$QUOTECOPY_ARG') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1472] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1475] ) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name QUOTECOPY)}) (C {(fail)} {(DQ ('corrupted copy after put with quotes'))}) ] op_id: Op_DPipe ) ] spids: [-1 1430] ) ] spids: [-1 1502] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$SPACECOPY'))}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': put filename with spaces'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('put ') ($ VSub_Name '$DATA') (' ') (${ VSub_Name SPACECOPY_ARG))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1545]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1548]) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(DQ ($ VSub_Name '$SPACECOPY'))}) (C {(fail)} {(DQ ('corrupted copy after put with spaces'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': put to directory'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('put ') ($ VSub_Name '$DATA') (' ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1617]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1620]) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$DATANAME')}) (C {(fail)} {(DQ ('corrupted copy after put'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': glob put to directory'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('put /bin/l? ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1691]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1694]) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (ForEach iter_name: x iter_words: [{($ VSub_Name '$GLOBFILES')}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(cmp)} {(/bin/) ($ VSub_Name '$x')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$x')}) (C {(fail)} {(DQ ('corrupted copy after put'))}) ] op_id: Op_DPipe ) ] spids: [1716 1738] ) spids: [1712 1714] ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': put to local dir'))}) (AndOr children: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ('cd ') (${ VSub_Name COPY) (.dd))}) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ('put ') ($ VSub_Name '$DATA'))}) ] ) spids: [1758 1776] ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1790]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1793]) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$DATANAME')}) (C {(fail)} {(DQ ('corrupted copy after put'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.dd/) (Lit_Other '*')}) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': glob put to local dir'))}) (AndOr children: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ('cd ') (${ VSub_Name COPY) (.dd))}) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ('put /bin/l?'))}) ] ) spids: [1842 1859] ) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1873]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1876]) ] ) ] negated: False ) (C {(fail)} {(DQ ('put failed'))}) ] op_id: Op_DPipe ) (ForEach iter_name: x iter_words: [{($ VSub_Name '$GLOBFILES')}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(cmp)} {(/bin/) ($ VSub_Name '$x')} {(${ VSub_Name COPY) (.dd/) ($ VSub_Name '$x')}) (C {(fail)} {(DQ ('corrupted copy after put'))}) ] op_id: Op_DPipe ) ] spids: [1898 1920] ) spids: [1894 1896] ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': rename'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('rename ') ($ VSub_Name '$COPY') (' ') (${ VSub_Name COPY) (.1))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1954]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1957]) ] ) ] negated: False ) (C {(fail)} {(DQ ('rename failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-f)} {(${ VSub_Name COPY) (.1)}) (C {(fail)} {(DQ ('missing file after rename'))}) ] op_id: Op_DPipe ) (AndOr children: [ (SimpleCommand words: [{(cmp)} {($ VSub_Name '$DATA')} {(${ VSub_Name COPY) (.1)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1996]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1999]) ] ) (C {(fail)} {(DQ ('corrupted copy after rename'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': rename directory'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('rename ') (${ VSub_Name COPY) ('.dd ') (${ VSub_Name COPY) (.dd2))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2046]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2049]) ] ) ] negated: False ) (C {(fail)} {(DQ ('rename directory failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-d)} {(${ VSub_Name COPY) (.dd)}) (C {(fail)} {(DQ ('oldname exists after rename directory'))}) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(-d)} {(${ VSub_Name COPY) (.dd2)}) (C {(fail)} {(DQ ('missing newname after rename directory'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': ln'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('ln ') (${ VSub_Name COPY) ('.1 ') (${ VSub_Name COPY) (.2))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2130]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2133]) ] ) ] negated: False ) (C {(fail)} {(DQ ('ln failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-f)} {(${ VSub_Name COPY) (.2)}) (C {(fail)} {(DQ ('missing file after ln'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {(${ VSub_Name COPY) (.1)} {(${ VSub_Name COPY) (.2)}) (C {(fail)} {(DQ ('created file is not equal after ln'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': ln -s'))}) (C {(rm)} {(-f)} {(${ VSub_Name COPY) (.2)}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('ln -s ') (${ VSub_Name COPY) ('.1 ') (${ VSub_Name COPY) (.2))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2224]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2227]) ] ) ] negated: False ) (C {(fail)} {(DQ ('ln -s failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-h)} {(${ VSub_Name COPY) (.2)}) (C {(fail)} {(DQ ('missing file after ln -s'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': mkdir'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('mkdir ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2285]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2288]) ] ) ] negated: False ) (C {(fail)} {(DQ ('mkdir failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-d)} {(${ VSub_Name COPY) (.dd)}) (C {(fail)} {(DQ ('missing directory after mkdir'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': chdir'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('chdir ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2351]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2354]) ] ) ] negated: False ) (C {(fail)} {(DQ ('chdir failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': rmdir'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('rmdir ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2397]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2400]) ] ) ] negated: False ) (C {(fail)} {(DQ ('rmdir failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-d)} {(${ VSub_Name COPY) (.1)}) (C {(fail)} {(DQ ('present directory after rmdir'))}) ] op_id: Op_DAmp ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': lmkdir'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('lmkdir ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2460]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2463]) ] ) ] negated: False ) (C {(fail)} {(DQ ('lmkdir failed'))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-d)} {(${ VSub_Name COPY) (.dd)}) (C {(fail)} {(DQ ('missing directory after lmkdir'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': lchdir'))}) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ('lchdir ') (${ VSub_Name COPY) (.dd))}) (SimpleCommand words: [{(${ VSub_Name SFTP)} {(-D)} {(${ VSub_Name SFTPSERVER)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2526]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2529]) ] ) ] negated: False ) (C {(fail)} {(DQ ('lchdir failed'))}) ] op_id: Op_DPipe ) (C {(rm)} {(-rf)} {(${ VSub_Name COPY)} {(${ VSub_Name COPY) (.1)} {(${ VSub_Name COPY) (.2)} {(${ VSub_Name COPY) (.dd)} {(${ VSub_Name COPY) (.dd2)} ) (C {(rm)} {(-rf)} {(${ VSub_Name QUOTECOPY)} {(DQ ($ VSub_Name '$SPACECOPY'))} {(DQ ($ VSub_Name '$GLOBMETACOPY'))} ) ] )