dKddlZddlZddlZddlZddlZddlZddlmZmZm Z ddlm Z ddl m Z ddl mZGddeZdS)N)App Controllerex)shell) Wordpress)fetchc feZdZGddZdZeddgdddd fd gd dd d fg dZeddgdddd fdgdddd fdgdddd fdgdddd fdgdddd fg dZed d!gd"dd#d fd$gd%dd&d fd'gd(dd)d fd*gd+dd,d fd-gd.dd/d fg d0Zed1d2d3gd4dd5d fg d6Z ed78d9Z ed:8d;Z edfd?ge d=>fg@dAZ dBS)CInstallc:eZdZdZddgddddfdd gd dd dfgZd S) Install.Meta wordpressz-pz--pathzpath to wordpress installstorepathhelpactiondestz-cz--configzpath to dhwp wordpress config config_fileN)__name__ __module__ __qualname__label argumentsC/home/matt/dreamhost/git/dreamhost/dhwp/dhwp/controllers/install.pyMetar s\H 4"## $J 8"&** +  rrct}|jjjrJt |jjj5}t j|}dddn #1swxYwYt|jjD]#}t|jj|}|r|||<$|jj d|z|S)NzConfiguration %s) dictapppargsropenyaml safe_loadvarsgetattrlogdebug)selfdatafargvalues r load_configzInstall.load_configsvv 8> % )dhn011 )Q~a(( ) ) ) ) ) ) ) ) ) ) ) ) ) ) )'' " "CDHNC00E "!S   -4555 sAA#&A#zDownload and extract wordpressz--sourcez0wordpress source url, zip format only (optional)rdownload_sourcerz --packagez#wordpress package (created by dhwp)wordpress_package)rrc|}t|jjj}d|vr||ddSd|vr||ddS|ddS)Nr/r0z core download)r.rr r!rr/download_packagecli)r)configwps rdownloadzInstall.download)s!!## tx~* + +  & &   v&78 9 9 9 9 9 F * *   ': ; < < < < < FF? # # # # #rzcreate a new WP installz--urlzsite urlurlz--titlez site titletitlez --admin_userzadmin username admin_userz--admin_passwordzadmin passwordadmin_passwordz --admin_emailz admin email admin_emailc :t|jjj}|}|jjd|d|jjj|jjj |jjj |jjj |jjj d| d|vrH|ddD];}|jjd|z||:dSdS)Nzinstalling wordpressz core installT)r7r8r9r:r; skip__email post_installwpclizexec post install command %s)rr r!rr.r'infor3r7r8r9r:r;extras)r)r5r4 cli_commands rinstallzInstall.installBs 4tx~* + +!!##  0111 ~8>%X^)(.3"hn;8>5     V # #%n5g> $ $  !!"@;"NOOO{#### $ # $ $rzconfigure a WP installz--dbnamez database namedbnamez--dbuserzdatabase usernamedbuserz--dbpasszdatabase passworddbpassz--dbhostz database hostdbhostz --dbprefixzdatabase prefixdbprefixc t|jjj}|jjd|jjjsUddtj tj tj zdzdz|jj_| d|jjj|jjj|jjj|jjj|jjjdd dS) Nzconfiguring wordpress installwp_)k_z config createT)rDrErFrGrH skip__checkforce)rr r!rr'r@rHjoinrandomchoicesstringascii_lowercasedigitsr3rDrErFrG)r)r5s r configurezInstall.configurems6tx~* + +  9:::x~& y&+bggfnVE[^d^kEkop6q6q6q.r.r&rux&xDHN # hn+hn+hn+hn+/      rz!Package WP install for deploymentz-nz--package-namezname of pacakge package_namec|}t|jjj}t j}|d|jjjd}d|jz}|d|zd|jd|d}tj |\}}} | dkr;|jj d |d |tjd dSdS) N/z.tar.gzz %s/inital.sqlz db export zcd z && tar --exclude .git -zcvf z .rzerror creating pacakge z : )r.rr r!rosgetcwdrXr3rcmdr'fatalsysexit) r)r4r5cwdpkg_filesql_filer^outerrcodes rpackagezInstall.packages!!## tx~* + +ikk%(SS$(.*E*E*EF"RW, |h&'''':<'''888L3S$ !88 HL   333L M M M HQKKKKK 8rz%Install extras (plugins, themes, etc))rc|}t|jjj}|s3|jjdtj ddD]}||vr||D]}|||}|}d}d|vr|d}d|vrP| |d |d |vr!|d d urd || }n+|d |}d|vr |d|d}d |vr|d d urd|z}|jj d|d||r| |܌dS)Nz;WordPress is not fully installed yet, cannot install extrasr[)pluginthemerKlocationz no-verifyz/wp-content/{item_type}s) item_typeactivateTz {item_type} activate {item_name})rm item_namez install versionz --version=z %s --activatez installing  )r.rr r!r is_installedr'r_r`radownload_extraformatr@r3)r)r4r5rmitemoptions install_namecommands rrAzInstall.extrass!!## tx~* + +    HL  M O O O HQKKK, $ $I&&y) $ $ +D1# ((#*:#6L'))%%l4N4U4U`i4U4j4jkkk!W,,":.$66&H&O&OZcos&O&t&tG1:LLIG G++7>ww @R@R"S"W,,":.$66&5&?G !!! 44"HIII$FF7OOO5 $  $ $rzUpdate a WP installc$tddS)NzUpdating WordPress)print)r)s rupdatezInstall.updates "#####rz--foo store_true)rz --not-bar)rcd}|jjjr"|jjjrt d}nt d}|j|ddS)NrKznot-bar)foobarztest.m)r r!r~not_barrrender)r)r*s rcommand1zInstall.command1sa 8>  #$(."8 #I&&&DDE???D h'''''rN)rrrrr.rr6rCrWrhrAr{rrrrrr r s            R -\H!)-- .];!+// 0      $ $   $R &Y ! ["!!! " &!$&& '! !&!(** + #!%'' (# 2$$32$$R %\%! "" #\)! "" #\)! "" #\%! "" #^'!"$$ %# 454"R 0$ %'$&& '    R 4'$'$'$RR "$$$RY T & & & (] T & & & ( (((((rr )rRrTrer\r`r#cementrrrrdhwp.core.wordpressrdhwp.core.curlrr rrrrs &&&&&&&&&&)))))) a(a(a(a(a(ja(a(a(a(a(r