It's a little odd, but it makes sense once you understand why it was done
that way.

For the benefit of future searchers: The app.cfg file contains all the stuff
that won't change regardless of environment, and the dev.cfg/prod.cfg files
have config options that are, as mentioned, environment-specific.

Kevin Horn

On 2/8/07, jemminger <[EMAIL PROTECTED]> wrote:
>
>
> [solved]
>
> duh - the reason it wasn't working is because i had my environment-
> specific config files in /project/project/config/, instead of just /
> project/.  rather confusing though, since app.cfg does go in /project/
> project/config/
>
>
> On Feb 1, 11:31 am, "jemminger" <[EMAIL PROTECTED]> wrote:
> > i think part of the problem is the modulename argument being passed to
> > update_config()... when this is done, config_obj() ends up making a
> > ConfigObj for every cfg file in the module dir, with "staging" winning
> > since it's last alphabetically.
> >
> > if i don't pass in the modulename, the startup script crashes when
> > calling configure_loggers(), since config_obj() ends up returning an
> > empty dict.
> >
> > On Feb 1, 11:04 am, "jemminger" <[EMAIL PROTECTED]> wrote:
> >
> > > are you sure?  it looks to me that it's looking for your cfg file
> > > argument, if not given then falling back to setup.py if it exists,
> > > failing that it loads prod.cfg
> >
> > > i've even added print statements to it like such:
> >
> > > # first look on the command line for a desired config file,
> > > # if it's not on the command line, then
> > > # look for setup.py in this directory. If it's not there, this script
> > > is
> > > # probably installed
> > > if len(sys.argv) > 1:
> > >     print "arg 1: %s" % sys.argv[1]
> > >     turbogears.update_config(configfile=sys.argv[1],
> > >         modulename="claimsqa.config")
> > > elif exists(join(dirname(__file__), "setup.py")):
> > >     print "found setup.py"
> > >     turbogears.update_config(configfile="dev.cfg",
> > >         modulename="claimsqa.config")
> > > else:
> > >     print "assuming prod.cfg"
> > >     turbogears.update_config(configfile="prod.cfg",
> > >         modulename="claimsqa.config")
> >
> > > ... and i've added a print statement to turbogears.update_configto
> > > show what was passed in:
> > > defupdate_config(configfile = None, modulename = None):
> > >     print "update_config(%s, %s)" % (configfile, modulename)
> >
> > > and the output is such:
> > > C:\home\jeffe\python\tg\claimsqa>start-claimsqa.py dev.cfg
> > > arg 1: dev.cfgupdate_config(dev.cfg, claimsqa.config)
> > > 2007-02-01 10:46:52,772 cherrypy.msg INFO CONFIG: Server parameters:
> > > 2007-02-01 10:46:52,802 cherrypy.msg INFO CONFIG:
> > > server.environment: staging
> >
> > > as you can see, i pass in dev.cfg, it says it's callingupdate_config
> > > with dev.cfg, yet cherrypy still starts in "staging" mode
> >
> > > so either i'm crazy or it isn't working right?!?
> >
> > > On Feb 1, 1:11 am, "Jorge Vargas" <[EMAIL PROTECTED]> wrote:
> >
> > > > On 1/31/07,jemminger<[EMAIL PROTECTED]> wrote:
> >
> > > > > using TG 1.0 on windows
> >
> > > > > in projectname/projectname/config, i have three environment config
> > > > > files:
> > > > > dev.cfg
> > > > > staging.cfg
> > > > > prod.cfg
> >
> > > > > however, when i start the server e.g. "start-projectname.py
> dev.cfg",
> > > > > it doesn't matter what i specify as the config file, it always
> chooses
> > > > > the next "higher" environment up from dev... i.e. if all three
> > > > > environment cfg files are present, no matter what i specify as the
> > > > > config file it will always start in staging mode.  if i move the
> > > > > staging file away, it will start in production mode.  the only way
> to
> > > > > have it start in dev mode is to have dev.cfg be the only
> environment
> > > > > file present in the config dir.
> >
> > > > take a look of what start_project does, it's internal logic is
> what's making
> > > > you fail. It is coded based on the assumption that you only have
> > > > dev/prod.cfg but you can edit it to work as you wish. as long as
> > > >update_configis call TG is happy
> >
> > > > if it matters, this project was created on TG 0.9.4 or so, though i
> >
> > > > > did try to replace the relevant bits in the start-projectname.pyfile
> > > > > with code created by TG1.0 quickstart, and got the same results.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to