Do2 Commandline Utility - Do2.py
![](https://secure.gravatar.com/avatar/02de5c8546537c68757d750ff2ae2c35.jpg?s=120&d=mm&r=g)
This is an extension to the Do.py program. It adds several features. Documentation is included in the source. begin 644 Do2.py M#0HC("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2T-"B,@3F%M93H@1&\R#0HC($1E<V-R:7!T:6]N.B!%>'!A;F0@86YD M(&5X96-U=&4@8V]M;6%N9`T*(R,@1#(P2"TS-2!%>'!A;F0@86YD(&5X96-U M=&4@8V]M;6%N9`T*(PT*(R!!=71H;W(Z(%!H:6QI<"!3+B!2:7-T#0HC($1A M=&4Z(#$P+S(T+S(P,3`-"B,@0V]P>7)I9VAT(#(P,3`@8GD@4W0N(%1H;VUA M<R!3;V9T=V%R90T*(R`M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM#0HC(%1H:7,@<')O9W)A;2!I<R!F<F5E=V%R92X@ M($ET(&UA>2!B92!U<V5D#0HC(&9O<B!A;GD@;6]R86P@<'5R<&]S92X@(%EO M=2!U<V4@:70@870@>6]U<@T*(R!O=VX@<FES:RX@(%-T+B!4:&]M87,@4V]F M='=A<F4@;6%K97,@;F\-"B,@9W5A<F%N=&5E<R!T;R!I=',@9FET;F5S<R!T M;R!D;R!A;GET:&EN9RX-"B,-"B,@268@>6]U(&9E96P@>6]U(&UU<W0@<&%Y M(&9O<B!I="X@4&QE87-E#0HC('-E;F0@;VYE(&UI;&QI;VX@9&]L;&%R<R!T M;PT*(PT*(R`@("`@5&AE($EN=&5R;F%T:6]N86P@4F5S8W5E($-O;6UI='1E M90T*(R`@("`@,3(R($5A<W0@-#)N9"!3=')E970-"B,@("`@($YE=R!9;W)K M+"!.+EDN("`@,3`Q-C@M,3(X.0T*(PT*(R!/:RP@=V4@87)E(&EN(&$@<F5C M97-S:6]N+B`@4V\L(&UA:V4@:70@82!H86QF#0HC(&UI;&QI;VXN#0H-"B,@ M57-A9V4@97AA;7!L97,Z#0HC#0HC6TA+15E?0TQ!4U-%4U]23T]47"I<4VAE M;&Q<1&\R0FMU<%T-"B-`/2)"86-K=7`@*$1O,BDB#0HC(D5D:71&;&%G<R(] M:&5X.C`Q+#`P+#`P+#`P#0HC6TA+15E?0TQ!4U-%4U]23T]47"I<4VAE;&Q< M1&\R0FMU<%Q#;VUM86YD70T*(T`](F,Z7%QS>7-<7'!Y=&AO;C(U7%QP>71H M;VYW+F5X92!C.EQ<8FEN7%QD;S(N<'D@7"(E,5PB(&,Z7%Q7:6YD;W=S7%QS M>7-T96TS,EQ<8VUD+F5X92`O2R!C;W!Y(%PB>V%]7"(@7")[=7U<7'LR?5Q< M>V9]7"(@("`@("`B#0HC#0HC6TA+15E?0TQ!4U-%4U]23T]47"I<4VAE;&Q< M1&\R161I=%T-"B-`/2)%9&ET("A$;S(I(@T*(R)%9&ET1FQA9W,B/6AE>#HP M,2PP,"PP,"PP,`T*(UM(2T597T-,05-315-?4D]/5%PJ7%-H96QL7$1O,D5D M:71<0V]M;6%N9%T-"B-`/2)C.EQ<<WES7%QP>71H;VXR-5Q<<'ET:&]N=RYE M>&4@8SI<7&)I;EQ<9&\R+G!Y(%PB)3%<(B!C.EQ<4V]U<F-E7%Q[,GU<7'%E M9&ET;W(N97AE("!<(GMA?5PB("`@("`B#0HC#0HC(%1H:7,@<')O9W)A;2!B M=6EL9',@;VX@=&]P(&]F('1H92!$;R!P<F]G<F%M+B`@26YS=&5A9"!O9B!E M>'!A;F1I;F<@86X@96YT:7)E(&-O;6UA;F0@;&EN92!I;B!O;F4@8V%L;`T* M(R!I="!E>'!A;F1S(&5A8V@@87)G=6UE;G0@<V5P87)A=&5L>2X@($ET(&%D M9',@=&AE('L\+7T@;6%C<F\@=VAI8V@@=VEL;"!S96%R8V@@=7`@82!P871H M(&QO;VMI;F<@9F]R(&$-"B,@9FEL92X@($EF('1H92!P87-S960@9FEL92!I M<R!C.EQS;W5R8V5<<'ET:&]N7&YE=R!T:&4@=&5M<&QA=&4@>SPM?61I<F5C M=&]R>2YI;FD@=VEL;"!S96%R8V@@9F]R(&$-"B,@9&ER96-T;W)Y+FEN:2!F M:6QE(&EN('1H92!F;VQL;W=I;F<@9F]L9&5R<R!C.EQS;W5R8V5<<'ET:&]N M7&YE=RP@8SI<<V]U<F-E7'!Y=&AO;BP@8SI<<V]U<F-E(&%N9"!C.EPN#0HC M($EF('1H92!F:6QE(&ES(&YO="!F;W5N9"!A(&1E9F%U;'0@8V%N(&)E('5S M960N#0HC#0HC($UU;'1I<&QE(&9I;&5S(&-A;B!B92!S=7!P;&EE9"!S97!A M<F%T960@8GD@)SLG+B`@5&AE('1E;7!L871E('L\+7UD:7)E8W1O<GDN:6YI M.V,Z7'1E<W1<9&ER96-T;W)Y+FEN:3MC.EQB:6Y<9&ER96-T;W)Y+FEN:0T* M(R!W:6QL(&-A=7-E('1H92!S96%R8V@@9&5S8W)I8F5D(&%B;W9E('1O(&)E M('!E<F9O<FUE9"!F;VQL;W=E9"!B>2!A(&-H96-K(&]F(&,Z7'1E<W0@86YD M(&9I;F%L;'D@8SI<8FEN(&9O<B!T:&4-"B,@9&ER96-T;W)Y+FEN:2!F:6QE M+B`@22!U<V4@=&AI<R!I;B!M>2!$:7)E8W1O<GD@8V]N=&5X="!M96YU('=I M=&@@=VET:"!A;B!E>&5C=71I;VX@;V8@;7D@0G5T=&]N0F%R('!R;V=R86T- M"B,@<V\@=&AA="!)(&-A;B!P<F]D=6-E(&)U='1O;B!B87)S(&1E<&5N9&5N M="!O;B!T:&4@<V5L96-T960@9&ER96-T;W)Y+@T*(PT*#0HC(%M(2T597T-, M05-315-?4D]/5%Q$:7)E8W1O<GE<4VAE;&Q<5&]O;'-=#0HC($`](E1O;VQS M("XN+B(-"B,@(D5D:71&;&%G<R(]:&5X.C`Q+#`P+#`P+#`P#0HC(%M(2T59 M7T-,05-315-?4D]/5%Q$:7)E8W1O<GE<4VAE;&Q<5&]O;'-<0V]M;6%N9%T- M"B,@0#TB8SI<7'-Y<UQ<;&%N9W5A9V5<7%!Y=&AO;EQ<4'ET:&]N=RYE>&4@ M(&,Z7%QB:6Y<7$)U='1O;D)A<BYP>2`@(%PB)3%<(B`@(%PB>SPM?41I<F5C M=&]R>2YI;FE<(B`@('1O;VQS("(-"@T*#0II;7!O<G0@<WES+"!G971O<'0L M(&]S#0II;7!O<G0@1&\-"FEM<&]R="!S=6)P<F]C97-S#0H-"F1E9B!087)E M;G1396%R8V@H<%-E87)C:%!A=&@L('!&:6QE4&%T:"P@<$IO:6X])UQ<)RP@ M<$1E9F%U;'10871H/2)C.EQ<8FEN(BDZ#0H@("`@)R<G#0H@("`@4V-A;B!P M87)E;G0@;&ES="!F;W(@9FEL92!S96QE8W1I;F<@;&]W97-T(&QE=F5L(&UA M=&-H:6YG(&9I;&4-"B`@("`G)R<-"B`@("`-"B`@("!L4&]S(#T@<%-E87)C M:%!A=&@N<F9I;F0H<$IO:6XI#0H@("`@:68@;%!O<R`^(#`Z#0H@("`@("`@ M(&Q&:6QE4&%T:"`]('!396%R8VA0871H6VQ0;W,Z70T*("`@(&5L<V4Z#0H@ M("`@("`@(&Q&:6QE4&%T:"`]('!396%R8VA0871H#0H-"B`@("!I9B!P1FEL M95!A=&A;+3%=(#T]("=<7"<Z#0H@("`@("`@(&Q3<&QI=%!A=&@@/2!P1FEL M95!A=&A;,#HM,5T-"B`@("!E;'-E.@T*("`@("`@("!L4W!L:710871H(#T@ M<$9I;&50871H#0H@("`@("`@(`T*("`@(&Q087)T<R`](&Q3<&QI=%!A=&@N M<W!L:70H<$IO:6XI#0H@("`@:68@;W,N<&%T:"YI<V1I<BAL4W!L:710871H M*3H-"B`@("`@("`@;$-O=6YT(#T@;&5N*&Q087)T<RD@#0H@("`@96QS93H- M"B`@("`@("`@;$-O=6YT(#T@;&5N*&Q087)T<RD@+2`Q#0H@("`@("`@(`T* M("`@(&Q0871H(#T@)R<-"B`@("!W:&EL92!L0V]U;G0@/B`P.@T*("`@("`@ M("!L4&%T:"`]('!*;VEN+FIO:6XH;%!A<G1S6S`Z;$-O=6YT72D@*R!L1FEL M95!A=&@-"B`@("`@("`@:68@;W,N<&%T:"YE>&ES=',H;%!A=&@I.@T*("`@ M("`@("`@("`@<')I;G0@)T9O=6YD)PT*("`@("`@("`@("`@8G)E86L-"B`@ M("`@("`@;$-O=6YT("T](#$-"B`@("!E;'-E.@T*("`@("`@("!L4&%T:"`] M('!$969A=6QT4&%T:"`K(&Q&:6QE4&%T:`T*("`@(')E='5R;B!L4&%T:`T* M#0ID968@17AP86YD07)G*'!!<F<L('!&:6QE4&%T:"P@<$1E9F%U;'10871H M+"!P3&5F=#TG>R<L('!397`])SLG+"!P475O=&4])R(G+"`-"B`@("`@("`@ M("`@("`@("`@("`@("`@("`@("`@('!0<F5F/2=[/"U])RP@<$IO:6X])UQ< M)RDZ#0H@("`@)R<G#0H@("`@17AP86YD('-I;F=L92!C;VUM86YD(&QI;F4@ M87)G=6UE;G0-"B`@("`G)R<-"B,@("`@("`@("`@("`@("`@("`@($5X<&%N M9"!A<F=U;65N="`@(`T*("`@(&EF('!!<F<N9FEN9"AP3&5F="D@/CT@,#H- M"B`@("`@("`@;$%R9R`]($1O+D5X<&%N9"AP07)G+"!P1FEL95!A=&@I#0H@ M("`@96QS93H-"B`@("`@("`@;$%R9R`]('!!<F<-"@T*(R`@("`@("`@("`@ M("`@("`@("`@268@<W1A<G1S('=I=&@@>SPM?2!A;F0@<VEN9VQE('!A=&@@ M<V-A;B!P87)E;G0@9F]L9&5R<R!F;W(-"B,@("`@("`@("`@("`@("`@("`@ M(&9I<G-T(&UA=&-H:6YG(&9I;&4N("!%86-H(&9O;&1E<B!A8F]V92!S<&5C M:69I960@<&%T:"!W:6QL#0HC("`@("`@("`@("`@("`@("`@("!B92!C:&5C M:V5D('5N=&EL(&9I;&4@:7,@9F]U;F0N#0H@("`@:68@;$%R9RYS=&%R='-W M:71H*'!0<F5F*2!A;F0@;$%R9RYF:6YD*'!397`I(#P@,#H-"B`@("`@("`@ M;$%R9R`](&]S+G!A=&@N86)S<&%T:"AL07)G6S0Z72D-"B`@("`@("`@;$%R M9R`](%!A<F5N=%-E87)C:"AL07)G+"!P1FEL95!A=&@L('!*;VEN/7!*;VEN M*0T*#0HC("`@("`@("`@("`@("`@("`@("!)9B!M=6QT:7!L92!P871H<R!S M97!A<F%T960@8GD@<%-E<"@G.R<I('-E;&5C="!F:7)S="!V86QI9"!P871H M#0H@("`@;$9O=6YD(#T@)R<-"B`@("!I9B!L07)G+F9I;F0H<%-E<"D@/CT@ M,#H-"B`@("`@("`@;%!A=&AS(#T@;$%R9RYS<&QI="AP4V5P*0T*("`@("`@ M("!F;W(@;%!A=&@@:6X@;%!A=&AS.@T*("`@("`@("`@("`@:68@;%!A=&@N M<W1A<G1S=VET:"AP4')E9BDZ#0H@("`@("`@("`@("`@("`@;%!A=&@@/2!O M<RYP871H+F%B<W!A=&@H;%!A=&A;-#I=*0T*("`@("`@("`@("`@("`@('1R M>3H-"B`@("`@("`@("`@("`@("`@("`@;%!A=&@@/2!087)E;G1396%R8V@H M;%!A=&@L('!&:6QE4&%T:"P@<$IO:6X]<$IO:6XI#0H@("`@("`@("`@("`@ M("`@97AC97!T($5X8V5P=&EO;B!A<R!E.@T*("`@("`@("`@("`@("`@("`@ M("!P<FEN="!E#0H@("`@("`@("`@("`@("`@("`@(&-O;G1I;G5E#0H@("`@ M("`@("`@("!E;'-E.@T*("`@("`@("`@("`@("`@(&Q0871H(#T@;W,N<&%T M:"YA8G-P871H*&Q0871H*0T*("`@("`@("`@("`@:68@;W,N<&%T:"YE>&ES M=',H;%!A=&@I.@T*("`@("`@("`@("`@("`@(&Q&;W5N9"`](&Q0871H#0H@ M("`@("`@("`@("`@("`@8G)E86L-"B`@("`@("`@96QS93H-"B`@("`@("`@ M("`@(&Q&;W5N9"`](&]S+G!A=&@N86)S<&%T:"AP1&5F875L=%!A=&@I#0H@ M("`@96QS93H-"B`@("`@("`@;$9O=6YD(#T@;$%R9PT*("`@(`T*(R`@("`@ M("`@("`@("`@("`@("`@268@87)G=6UE;G0@8V]N=&%I;G,@<W!A8V4@96YC M;&]S92!I="!W:71H:6X@<75O=&5S#0H@("`@;$9O=6YD(#T@;$9O=6YD+G-T M<FEP*"D-"B`@("!I9B!L1F]U;F0N9FEN9"@G("<I(#X@,"!A;F0@;$9O=6YD M6S!=("$]('!1=6]T93H-"B`@("`@("`@;$9O=6YD(#T@<%%U;W1E("L@;$9O M=6YD("L@<%%U;W1E#0H@("`@<F5T=7)N(&Q&;W5N9`T*#0ID968@<W5B;6ET M;F]W*'!#;VUM86YD*3H-"B`@("`G)R<-"B`@("!3=6)M:70@8V]M;6%N9`T* M("`@("<G)PT*("`@("-P<FEN="`G7&Y<;E-U8FUI='1I;F<Z)RP@<$-O;6UA M;F0-"B`@("!S=6)P<F]C97-S+E!O<&5N*'!#;VUM86YD+"!S:&5L;#U4<G5E M*0T*#0H-"@T*(W-Y<RYA<F=V+F5X=&5N9"@@6R`G+60G+"`G>W!])RP@)V,Z M7%QS;W5R8V5<7'!Y=&AO;EQ<;F5W7%QD;RYP>2<L("=C.EQ<8FEN7%QE8VAO M<"YB870G+"`-"B,@("`@("`@)WMA?2<L("=[<'U<7'1E<W1<7'MF?2<L("=[ M/"U];65N=7,N:6YI)RP@)WMT?5Q<>WAX?2YB:W`G+`T*(R`@("`@("`G>VE] M7%Q[+3%])RP@)R`@('MU?5Q<>RTR?2<L("=[+GU<7'LM,WT@("`G+"`G(GMG M?5Q<>S)]7%QT97-T+GME?2(G+"`-"B,@("`@("`@)WLP?5Q<>S-]7%Q[;GTN M>V5]+G1X="<@("`@72D-"@T*:68@7U]N86UE7U\@/3T@)U]?;6%I;E]?)SH- M"B`@("`H;4]P=&EO;G,L(&U!<F=S*2`](&=E=&]P="YG971O<'0H<WES+F%R M9W9;,3I=+"`G9#IE.B<I#0H@("`@#0H@("`@;49I;&50871H(#T@;4%R9W-; M,%T-"@T*("`@(&U$969A=6QT4&%T:"`]("<G#0H@("`@9F]R("AM2V5Y+"!M M5F%L=64I(&EN(&U/<'1I;VYS.@T*("`@("`@("!I9B!M2V5Y(#T]("<M9"<Z M#0H@("`@("`@("`@("!I9B!M5F%L=64N9FEN9"@G?2<I.@T*("`@("`@("`@ M("`@("`@(&U686QU92`]($5X<&%N9$%R9RAM5F%L=64L(&U&:6QE4&%T:"P@ M)R<I#0H@("`@("`@("`@("!I9B!M5F%L=64@(3T@)R<Z#0H@("`@("`@("`@ M("`@("`@;W,N8VAD:7(H;59A;'5E*0T*("`@("`@("`@("`@#0H@("`@("`@ M(&5L:68@;4ME>2`]/2`G+64G.@T*("`@("`@("`@("`@<V5T96YV:7)O;BAM M5F%L=64L(&U&:6QE4&%T:"D-"@T*("`@("`@("!E;&EF(&U+97D@/3T@)RUP M)SH-"B`@("`@("`@("`@(&U686QU92`]($5X<&%N9$%R9RAM5F%L=64L(&U& M:6QE4&%T:"P@)R<I#0H@("`@("`@("`@("!I9B!M5F%L=64@(3T@)R<Z#0H@ M("`@("`@("`@("`@("`@;41E9F%U;'10871H(#T@;59A;'5E#0H-"B`@("!M M0V]M;6%N9"`]("<G#0H@("`@;4-O=6YT(#T@,`T*("`@(&9O<B!M07)G(&EN M(&U!<F=S6S$Z73H-"B`@("`@("`@;51E>'0@/2!%>'!A;F1!<F<H;4%R9RP@ M;49I;&50871H+"!M1&5F875L=%!A=&@I("L@)R`G#0H@("`@("`@("-P<FEN M="`G)35D.B`E+3(T<R`J("4M,S!S("TM+3X@)7,G("4@*&U#;W5N="P@;4%R M9W-;;4-O=6YT*S%=+"!M1FEL95!A=&@L(&U497AT*0T*("`@("`@("!M0V]M M;6%N9"`K/2!M5&5X=`T*("`@("`@("!M0V]U;G0@*ST@,0T*#0H@("`@:68@ M;&5N*&U#;VUM86YD*2`^(#`Z("`@("`@("`@("`@("`@(`T*("`@("`@("!S M=6)M:71N;W<H;4-O;6UA;F0I#0H@("`@#0H-"B`@("`-"@T*#0H-"@T*#0H- !"@`` ` end
participants (1)
-
philristï¼ comcast.net