On Aug 4, 2:34 pm, Dave Angel <da...@ieee.org> wrote: > Kosta wrote: > > I am a Python newbie, tasked with automating (researching) building > > Windows drivers using the WDK build environment. I've been looking > > into Python for this (instead of writing a bunch of batch files). > > > What I would like to do, is to open a cmd window, and start a Python > > script. This script would then (based upon input arguments), build > > different flavors of the driver (fre, chk, x86, x64) and do some post > > processing (create cat files, sign, etc.). > > > I was hoping to take advantage as much as possible of exisiting > > infrastructure from the WDK. I am able to call setenv.bat and provide > > all the input parameters. One of the things setenv.bat does is change > > the path environment variable. However, this is not captured by > > Python. I could duplicate the functionality, but I'd rather not. Is > > there a way to capture all enviroment variable changes being made by a > > batch file from Python? > > > Thanks! > > An excellent question. It's been a few years, but last time I remember > looking, setenv.bat only changed environment variables, and didn't > change current directory, or run any external programs.. If that's > still true, I figure you have three options. > > I don't know of any way to capture them explicitly. So here are the > three choices I can come up with: > > 1) have the first python program invoke a new shell which runs setenv, > then runs another python program. This second python program would be > where all the work is done, invoking compilers, linkers etc. So the > first python program invokes a batch file which looks something like: > call setenv.bat arg1 > python second.py arg2 arg3 arg4 arg5 > > This batch file could even be generated on the fly, just to simplify > complex argument passing. > > 2) Have the python program invoke a batch file something like the > following, and then analyze the resulting text file > call setenv.bat arg1 > set > tempfile.txt > > The contents of that tempfile could then be loaded into a dict similar > to the usual environment. Now the Python script can continue, and just > use these environment variable instead of the original set > > 3) Have the python program parse the setenv.bat instead of running it. > > There was a post on this newsgroup announcing pyKook. It's still in > early form, but you might get ideas from it. I haven't looked, I just > pasted the announcement to look at later. > > + I have released pyKook 0.0.2. > +http://pypi.python.org/pypi/Kook/0.0.2 > +http://www.kuwata-lab.com/kook/ > +http://www.kuwata-lab.com/kook/pykook-users-guide.html > > Other possibilities: > + http://pypi.python.org/pypi/vellum/ flexible small 'make' > alternative > > + http://code.google.com/p/waf/ > > + http://code.google.com/p/fabricate/ > > DaveA- Hide quoted text - > > - Show quoted text -
Thanks Dave. I had thought about those three options, and was honestly hoping for a foruth (I know, some people are never satisfied ;). I'll look into pyKook. Thank you for your help. -- http://mail.python.org/mailman/listinfo/python-list