ó Ý\†Rc@sßddlZddlZddlZddlmZddlmZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ejdƒZejdƒZdejfd„ƒYZdS(iÿÿÿÿN(tcommand(t create_distros^[^a-z]*s [^a-z0-9_]tBazstartCommandc BseZdZejdƒjZejdƒjZdZdZej ƒdZ deZ dZ dDZdDZdDZdDZdDZdDZdDZdZeZeZdjd„ed ƒDƒƒZdZdDZdDZdDZd Z d Z!gZ"gZ#dgZ$dDZ%eZ&dDZ'e(j)j*d e+ƒZ,e-j.d dddeƒZ,e,j/ddddddƒe,j/dddddddddeƒe,j/dddd dd!ƒe,j/d"d#dd$dd%ƒe,j/d&d'dd(dd)ƒe,j/d*d+dd,dd-ƒe,j/d.dd/dd0ƒe,j/d1dd2dd3ƒe,j/d4dd5dd6ƒe,j/d7dd8d9d:dd;ƒe,j/d<d=dd>d9d:dd?ƒe,j/d@ddAd9d:ddBƒdC„Z(RS(EsƒCreate a new Bazki project. Create a new Bazki project with this command. Example usage:: $ paster bazstart yourproject tBazkit turbogears2iis tbazkitccs!|]}tjtjƒVqdS(N(trandomtchoicetstringt lowercase(t.0tx((sJ/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazstart/quickstart.pys ,sisObject/User/AdmintAdmintquiettusages)%prog quickstart [options] [project name]tversions%prog s-ps --packagethelpspackage name for the codetdesttpackages-rs--svn-repositorytmetavartREPOSs&create project in given SVN repositorytsvn_repositorytdefaults-ds--dburlsspecify URL for database usedtdburls-us --usernames'specify username for initial admin usertusernames-es --elmnames*specify element name for inital admin usertelmnames-Ps --passwords'specify password for initial admin usertpasswords --urlprefixs*specify the public urlprefix for this sitet urlprefixs --custom-dbsCspecify a tree of extra custom database yaml files (used for tests)t custom_dbs --remove-dbs;specify a path in the initial db to remove (used for tests)t remove_dbs --dry-runs$dry run (don't actually do anything)tactiont store_truetdry_runs-qs--quietssuppress outputtsuppress_outputs --noinputs"no input (don't ask any questions)tno_inputcCs³xD|jjD]6}|jj|dk r |jj||j|W|j)ry| j(d|j)ƒn|j*rŸ| j(dƒ| j(dƒn|j+r¸| j(dƒn| j(|jƒ| j(d|jƒ| j(d|j,ƒ| j(d|j-ƒ| j(d|j ƒ| j(d|jƒ| j(d|jƒ| j(d |jƒ| j(d!|j.ƒ| j(d"tjj/|jƒƒ| j(d#|j0ƒ| j(d$|j1ƒ| j(d%d&j|j2ƒƒ| j(d'd&j|j3ƒƒ| j(d(d&j|j4ƒƒ| j(d)|jƒddl5} t6| d*ƒrXt7j8d+I| j9IJ| j9}nd}| j(d,|ƒ| j:| ƒ|j*s¯tj;|jƒxXd-d.d/d0gD]D}tjj#|ƒr¨tj<|ƒj=}tj>||t<j?Bƒq¨q¨Wd1d2gt7_@ddl } | jAd3| j!d3d4gƒŒx\tjBd5ƒD]K\}}}x9|D]1}|d6krPtjCtjj||ƒƒqPqPWq:WtjDtjjd7|jd8ƒtjjd9d:ƒƒtjjEtjjEtjj/tFƒƒƒ}xB|j4D]7}tjDtjj||d;ƒtjjd9|ƒƒqñWd d<lGmH}|jH|j|j|j+|j|j|j|j0|jI|jJ|jKr“|jKj'd=ƒng|jL|j|jMƒ ndS(>sQuickstarts the new project.isEnter project name: RsEnter package name [%s]: s.mysql://sql.mit.edu/%s+%s?read_default_file=%ss ~/.my.cnfsZEnter database URL, of the form mysql://hostname/dbname?read_default_file=~/.my.cnf [%s]: s,Enter username for initial admin user [%s]: is0Enter element name for initial admin user [%s]: css!|]}tjtjƒVqdS(N(RRR R (R R ((sJ/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazstart/quickstart.pys ›sisLEnter password for initial admin user (visible to anyone with edit access): shttp://%s.scripts.mit.edu/%ssEnter public URL prefix [%s]: s"The name "%s" is already in use byNiÿÿÿÿs'The package name "%s" is already in uses0A directory called "%s" already exists. Exiting.tcreates --template=%ss--svn-repository=%ss --simulates-qs package=%ss bazversion=%ss tgversion=%ssdburl=%ss username=%ss elmname=%ss password=%ss secret=%ssprojectroot=%ss bazkitype=%ssadmin=%ssextra_imports=%st;sextra_controllers=%ss statics=%ss urlprefix=%st__paster_sitedir__sUsing sitedir:s sitedir=%ss precommit.pysclear-database.pysprod.pyswebroot/dispatch.fcgissetup.pytegg_infotsetupt.s./temptys..tpublictwebroott__publictstatic(t bootstrapt:(Ntoptionst__dict__tNonetargstnamet raw_inputRtlowertbeginning_lettertsubt valid_onlyR#tstripRtgetpasstgetusertostpatht expanduserRtpwdtgetpwuidtgetuidRtupperRtjointxrangeRt pkg_resourcest safe_namet Environmenttimpt find_modulet ImportErrortexistsRtCreateDistroCommandt templatestsplittappendRR!R"Rt tgversiontsecrettabspatht bazkitypetadmint extra_importstextra_controllerststaticst__main__thasattrtsyststderrR&truntchdirtstattst_modetchmodtS_IXUSRtargvt load_moduletwalktremovetsymlinktdirnamet__file__RR/textra_dbRRt admin_pathtrepo(tselftkRRRRRtenvtdistRJRtcmd_argsttemplateRZtsitedirR?toldmodetbasetfilestfiletbazlibtsR/((sJ/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazstart/quickstart.pyRfs     #   #   #   #        #                        ' N(0t__name__t __module__t__doc__RGtget_distributionRRRtmax_argstmin_argst splitlinestsummaryRt group_nameR3R5RRRRRRROtFalseR!R#RERFRSRURkRRRlRVRWRXRYRR"RmRtCommandtstandard_parsertTruetparsertoptparset OptionParsert add_option(((sJ/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazstart/quickstart.pyRs”           (RGtreR‰t paste.scriptRRR>RAR\R`R RtreadlineR<tcompileR8R:R…R(((sJ/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazstart/quickstart.pyts   $