[Dancer-users] How to set the environment?

Flavio Poletti polettix at gmail.com
Wed Dec 15 08:27:28 CET 2010


On Wed, Dec 15, 2010 at 4:11 AM, Joel Roth <joelz at pobox.com> wrote:

> On Wed, Dec 15, 2010 at 12:44:14AM +0200, Gabor Szabo wrote:
> > in the $appdir/environments subdir there are two yml files for
> > configuration in development and production environment.
> >
> > How do I configure which environment is the application running in?
> >
> > I tried to find it in
> > http://search.cpan.org/dist/Dancer/lib/Dancer/Config.pm
> > but could not find it.
>
> Hi Gabor,
>
> You could pass it as a command-line argument.
>
> $ myapp.pl --environment=production
>

I think that the rationale is that you don't have to keep the same
configuration file with two different sets of values in the different
environments, not even for a single configuration line to tell whether it's
a development or a production environment, so leaving the option to the
command-line invocation is a sane choice because it defers the decision up
to the very last moment and this is not written anywhere (supposing you know
in which environment you are!).


> But I put it right in the script:
>
> BEGIN { push @ARGV, qw(--environment=production) }
>

This solution seems to require a modification of the script when you deploy
the application, which might introduce a potential for error if you forget
this post-deploy activity. Of course it depends on your deploy strategy -
e.g. do you redeploy the script all the times? - and on many other factors -
e.g. do I control both the development and the production environments?

I'd push the laziness a bit more and keep two scripts (development.pl and
production.pl) in the bin directory each with the trick above, in order to
avoid the need to do any kind of post-deploy activities. At this point it's
only a matter of calling the right script. Keeping two shell wrappers might
be another option (even though I'd avoid it in a CGI deploy).

Just my 2c,

   Flavio.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.backup-manager.org/pipermail/dancer-users/attachments/20101215/7569fd35/attachment.htm>


More information about the Dancer-users mailing list