(List (= scope= flags=0 words=[] bindings=[('source', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('dest', {[VarSub 2]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS copying]} {[VarSub source]} {[LIT_CHARS to]} {[VarSub dest]}) (FunctionDef delete_extra [] (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -L]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub source][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]}) ) (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (For f [{[DQ [VarSub 1]] [LIT_CHARS /] [LIT_OTHER "*"]}]) (Com {[LIT_CHARS delete_extra]} {[DQ [VarSub f]]}) ) ) ) ) (FunctionDef copy_if_older [] (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[DQ [VarSub 1]]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[DQ [VarSub 1]]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]}) ) (ElseTrue) (For f [{[DQ [VarSub 1]] [LIT_CHARS /] [LIT_OTHER "*"]}]) (Com {[LIT_CHARS copy_if_older]} {[DQ [VarSub f]]}) ) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub 1]]} {[LIT_CHARS -ot]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[DQ [VarSub 1]]} {[LIT_CHARS -nt]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) ) ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[DQ [VarSub 1]]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[DQ [VarSub 1]]} {[DQ [VarSub dest][LIT_CHARS /][VarSub 1]]}) ) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub dest]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS cd]} {[DQ [VarSub dest]]}) (Com {[LIT_CHARS cd]} {[DQ [VarSub dest]]}) (For f [{[LIT_CHARS ./] [LIT_OTHER "*"]}]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub f]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS delete_extra]} {[DQ [VarSub f]]}) ) ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS mkdir]} {[DQ [VarSub dest]]}) (Com {[LIT_CHARS mkdir]} {[DQ [VarSub dest]]}) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS cd]} {[DQ [VarSub source]]}) (Com {[LIT_CHARS cd]} {[DQ [VarSub source]]}) (For f [{[LIT_CHARS ./] [LIT_OTHER "*"]}]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub f]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS copy_if_older]} {[DQ [VarSub f]]}) ) ) )