Neonizer – interaktivni vyplnovani parametru z composeru
- Felix
- Nette Core | 1196
Zdravim!
Z Contributte dilny mame dalsi balicek, ktery bych vam rad ukazal. Zejmena pro ty co delaji se Symfony, tak jim bude pripadat povedomi.
O co jde
Vzali jsme myslenku z balicku Incenteev/ParameterHandler a napsali podporu pro NEON.
O co jde? Predstavme si, ze mame config.local.neon
, ktery ma
par parametru co musite vyplnit. A tedka vam dalsi vyvojar prida dalsi
parametr, ktery je potreba nastavit.
Bud si na to pamatujete nebo v horsim pripadne, vyskoci ladenka a upozorni vas to. Nebylo by skvele, kdybyste po tom, co zavolate composer install/update, mohli ty parametry rovnou vyplnit?
Presne tohle resi contributte/neonizer.
Instalace
Snadno ve 3 krocich:
composer require contributte/neonizer
.- Pridat post-install a post-update scripty pro composer.
"scripts": {
"post-install-cmd": [
"Contributte\\Neonizer\\NeonizerExtension::process"
],
"post-update-cmd": [
"Contributte\\Neonizer\\NeonizerExtension::process"
]
}
3. Nastavit extra sekci (neonizer
) v composeru.
"extra": {
"neonizer": {
"files": [{
"dist-file": "app/config/config.local.neon.dist"
}]
}
}
Usage
Nyni, kdyz date composer install
nebo
composer update
, tak vam neonizer projde vsechny parametry,
rekurzivne, ze souboru
app/config/config.local.neon.dist
a nabidne vam je k vyplneni.
Zaroven pokud uvedeme defaultni hodnotu, tak ji automaticky predvyplni.
Staci vam vyplnit pouze sablonu, rikejme ji dist-file a
neonizer automaticky odstrani koncovku .dist
.
app/config/config.local.neon.dist
→app/config/config.local.neon
Funguje i vice koncovek.
app/config/config.local.neon.tpl
→app/config/config.local.neon
app/config/config.local.neon.template
→app/config/config.local.neon
Feedback
Moc rad uvitame jakykoli feedback. Uz to pouzivame v produkci a zda se, ze vse funguje jak ma.
Editoval Felix (20. 10. 2017 18:25)
- jiri.pudil
- Nette Blogger | 1029
Paráda! Ještě by se mi tam líbila nějaká binárka, kterou bych mohl spustit na produkci v rámci deploy procesu a která by ten deploy zastavila, když zapomenu upravit produkční config.local.neon :)
- Pavel Kravčík
- Člen | 1195
Trochu strašidelná věta →
zdá se že to v produkci funguje
.:)
Jinak parádní práce! Zrovna nedávno jsme si to udělali selfmade, škoda. :(
- Felix
- Nette Core | 1196
jiri.pudil napsal(a):
Paráda! Ještě by se mi tam líbila nějaká binárka, kterou bych mohl spustit na produkci v rámci deploy procesu a která by ten deploy zastavila, když zapomenu upravit produkční config.local.neon :)
Muzeme nastavit, ze v ne-interaktivnim modu by jsi tam mohl mit neco jako autoexit. A proces by skoncil chybou, kdyz by neco chybelo. :-)
Je to to co jsi myslel?
Editoval Felix (20. 10. 2017 21:49)
- jiri.pudil
- Nette Blogger | 1029
Felix napsal(a):
Muzeme nastavit, ze v ne-interaktivnim modu by jsi tam mohl mit neco jako autoexit. A proces by skoncil chybou, kdyz by neco chybelo. :-)
Je to to co jsi myslel?
Přesně tak jsem to myslel, jen je to trochu složitější :D
My totiž composer install
spouštíme ještě na CI serveru a
pak už jen rsyncujeme celou složku se sestavenou aplikací na produkční
server. Přišel by nám tedy vhod způsob, jak neonizer spustit i explicitně
přes ssh přímo na produkci potom, co se tam aplikace nakopíruje, ale
předtím, než se přehodí symlink na aktuální release.
- Felix
- Nette Core | 1196
jiri.pudil napsal(a):
Přesně tak jsem to myslel, jen je to trochu složitější :D
Zkusim to promyslet, ale myslim, ze by to mohlo byt realizovatelne skrz scripty.
"scripts": {
"config-valid": [
"Contributte\\Neonizer\\NeonizerExtension::allFilled"
]
Nazvy jsou jenom pro ukazku, ale tohle by mohlo skoncit error(255) trebas.
- jiri.pudil
- Nette Blogger | 1029
Zkusim to promyslet, ale myslim, ze by to mohlo byt realizovatelne skrz scripty.
Pravda, to mě nenapadlo. Vypadá to elegantně :)