$i~SSKrSSKrSSKrSSKrSSKrSSKrSSKrSqSq Sr SSjr Sr Sr SrSSjrSrS rS rS rS rS rSrSrSrSrg)Nc,[RRSS5nSUS3/nUHFn[RR [RR U55(dMF g [ S5 [R"S5 g)NXDG_CONFIG_HOMEz ~/.configz~/.oscrcz /osc/oscrczJERROR: oscrc does not exist, please create one as explained in the README.) osenvirongetpathexists expanduserprintsysexit) configdirpathsr s /obs/lib/osc.py check_oscrcrsq 0+>I I;j1 2E 77>>"'',,T2 3 3   HHQKcfUb,SU;a$[SU35 [R"S5 UqUqg)N:z3ERROR: this doesn't look like a valid OBS project: r)r r rprojapiurl)urlobs_projs r set_apiurlrs7 h  GzR S HHQK Frc[U[5(a2[(a!S[R"[5SU3nO$SU3nO[(a SS[/U-nOS/U-n[ R "U/UQ70UD6$)Nzosc -A  zosc oscz-A) isinstancestrrshlexquotelibrun_cmd)cmdargskwargss rrun_oscr'*sw #s 6EKK/0#7C,C 6$'#-C'C-C ;;s ,T ,V ,,rc[S[35 [S[/5nURR 5R S5$)NzOBS: getting packages in list )r rr'outputrstripsplit)rets rget_remote_pkgsr/=s> %dV ,- 64. !C ::    $ $T **rc[RRn[US35 [ S[ [ RRU5/5nURS:XagURRS5HnUR5nUS:Xa^US:waXURS5(a@URS5(a(URS 5S RS 5S s $MuMwURS 5(dMURS 5SSSs $ [US35 [US35 g)Nz: getting OBS versionr)r*0masterzosmocom-mastercommit_z.txt_r.rz.dscz1: WARNING: failed to find package version on OBS!z": assuming the package is outdated)r"r%feedr r'rrr basenamer+r-r, startswithendswith)packager8r.lines rget_package_versionr>Cs 88==D WI* +, 64!1!1'!:; zz z z rBz-XPUTz-T) r rr r9r"config path_tempropenwriter'unlink)r< path_meta path_meta_obsfs rcreate_packager[zs WI/ 01ggw'G::''(/IdV1WIV4M i  /'+dV4@A ''*-. /0    UD%y @AIIi  s $AC'' C5cl[R"SS[RRS3/5 g)Nrmz-rf/osc)r"r#rSrTrrremove_temp_oscr`s'KKu!5!5 6d;<=rc8[US35 [RRU5n[R "U5n[R RS3nUS[SU3n[5 [R"U5 [S[U/US9 [R"US35(a [SSUS 9 [R"S [R"U53SUS 9 [S SUS 9 [S S SU3/US9 [5 g)Nz: updating OBS packager^rAcheckout)cwdz/*zdel *T)shellrczmv * zadd *commit-mz upgrade to )r rr r9r"get_output_pathrSrTrr`makedirsr'globr#r r!)r<version path_output path_temp_oscpath_temp_osc_pkgs rupdate_packagerns WI+ ,-ggw'G%%g.Kzz++,D1M(/4&';KK  Zw ']; yy%&b)**t):;KK% $5678! G4%67 Xt{7)4 5;LMrc [USUS35 [SSU[[RR U5/5 g)Nz: removing from OBS ()rdeleterf)r r'rrr r9)r< commit_msgs rdelete_packagerss: WI*:,a 89 Yj$0@0@0I JKrc[[S35 [RR SS[/5R n[ US5nURU5 SSS5 g!,(df  g=f)Nz: getting prjconfmetaprjconfrQr rr"rr'r+rUrV) output_filervhs r get_prjconfrzsU TF# $%ggoovy$78??G k3 1    A** A8c |[[S35 [RR SSSUSU[/5 g)Nz: updating prjconfrurv-Frfr rr"rr') prjconf_filerrs rupdate_prjconfrs9 TF$ %&GGOOV<: rc[[S35 [RR SS[/5R n[ US5nURU5 SSS5 g!,(df  g=f)Nz: getting metaruprjrQrw)rxrurys rget_metarsS TF. !" 77??FE40 1 8 8D k3 1    r{c |[[S35 [RR SSSUSU[/5 g)Nz: updating metarurr}rfr~) meta_filerrs r update_metars8 TF/ "#GGOOV9: rc[S[S35 [RR S/5R R 5RS5$)NzOBS: getting list of projects (rplsr*)r rr"rr'r+r,r-r_rr get_projectsrsC +F81 56 77??D6 " ) ) 0 0 2 8 8 >>rcF[S[SU35 S[S[RR U53n[ SU/5n[ RRRUR5nURS5nU(a [U5$g)Nz OBS: getting latest revision of rr@rArBrLr) r rrr r9r'rGrHrIrJr+rint)r<rrMrNrLs r get_last_revrs ,TF!G9 => TF!BGG,,W56 7Cucl#G 99 + +GNN ;D ((5/C 3x r)N)rirr r r" lib.configxml.etree.ElementTreerGrrrrr'r/r>rOr[r`rnrsrzrrrrrr_rrrsw      -&+ 68(>6L ?  r