[Catalyst] How to configure Catalyst home directory

John Beppu john.beppu at gmail.com
Sat Dec 16 06:45:34 GMT 2006

I don't have much experience with the -Home directive, but I do know some
ways to configure Catalyst so that you can put your files wherever you want.

There are 3 types of files that we care about:

   - Configuration
   - Templates
   - Perl Modules


Suppose you created a Catalyst application called Example via `catalyst.pl

cd Example
perl script/example_server.pl

http://localhost:3000/?dump_info=3D1 -- Scroll down to where the "Config"
header is and pay attention to what it looks like.

Now, inside the Example/ directory, there should be a file named example.yml
Let's edit example.yml so that we can be sure that Catalyst is using our
config file rather than its defaults.

name: Example
message: Hello, World!

Next, we're going to move example.yml and tell Catalyst where to find it

mv example.yml /tmp
export EXAMPLE_CONFIG=3D/tmp

This tells Catalyst that the config files for the Example Catalyst
application can be found in /tmp.

perl script/example_server.pl

http://localhost:3000/?dump_info=3D1 -- Scroll down to where the "Config"
header and notice how it has `message =3D> "Hello, World!".


If you want to change the location of your templates, you can specify a
directory in the "root" key of example.yml.  For example:

name: Example
message: Hello, World!
root: /tmp/Example/root

Perl Modules:

If you want to put your Perl modules in a non-standard location, you can set
$ENV{PERL5LIB} to tell perl where to look.

export PERL5LIB=3D"/tmp/lib"

These 3 configuration points will allow you to to put your Catalyst files
wherever you want on your filesystem.

On 12/13/06, N. Arakawa <n-a at u01.gate01.com> wrote:
> I want to configure Catalyst home directory.
> I use up-to-date  Catalyst in CPAN.
> Manual suggests to use
>     use Catalyst qw[-Home=3D/usr/mst];
> but doesn't work.
> Moreover I can't even find the code segment which will handle '-Home'
> flag.
> So now I do something like:
>   BEGIN{
>      $ENV{CATALYST_HOME}=3D'/usr/mnt';
>   }
> Is it a bug of Catalyst or me?
> B.T.W
> Currently, config file path are resolved based on 'OS current
> directory',  not a 'Catalyst home directory.'
>         __PACKAGE__->config(
>                      file =3D> 'config.yml',
>                    );
> I hope this behavior changes.
> Another possibility can be to allow "__HOME__/config.yml" syntax at here.
> Thanks!
> --
> - N. Arakawa
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20061215/0c6df=

More information about the Catalyst mailing list