On Jun 24, 2008, at 6:03 AM, Eirik Schwenke wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Noah Kantrowitz skrev 23-06-2008 21:56: > | > | On Jun 23, 2008, at 3:54 PM, Noah Kantrowitz wrote: > | > |> > |> On Jun 23, 2008, at 3:41 PM, Eirik Schwenke wrote: > |> > |>> -----BEGIN PGP SIGNED MESSAGE----- > |>> Hash: SHA1 > |>> > |>> Noah Kantrowitz skrev 23-06-2008 16:54: > |>> | On Jun 23, 2008, at 5:28 AM, Jani Tiainen wrote: > |>> |> So I need to do it by hand to all about 60 of my trac > configs.. :D > |>> |> > |>> |> I wouldn't say it more "flexible" while upgrading, when > creating > |>> new > |>> |> instances it might be more flexible. > |>> | > |>> | for f in `ls /var/trac` > |>> | do > |>> | echo -e '\n[inherit]\nfile = /usr/share/trac/conf/trac.ini > \n' > |>>>> "/ > |>> | var/trac/$f" > |>> | done > |>> > |>> Indeed. And I imagine most people running 60 parallel instances of > |>> trac would > |>> have a posix shell available. > |>> > |>> However, does anyone know of a "reasonable" package that would > |>> allow a > |>> similarly short example in python, that remained somewhat > portable ? > |>> > |>> I'm not looking for something like ipython, the defunct pysh or > |>> pythonShell -- > |>> just some helpful filesystem iterators that aren't quite as > verbose > |>> as os.path.* > |>> > |>> Maybe a utility package that would the above be done in some > |>> reasonably > |>> intuitive 5-6 lines of python. > |>> > |>> Any ideas? > |>> > |> Using IPython: > |> > |> for file in iglob('/var/trac/*/conf/trac.ini'): > |> open(file, 'a').write('\n[inherit].....') > | > | Apparently the normal glob.glob works fine too here (I just like > ipipe > | stuffs). > > Hm, > > as I just commented off-list to someone else, I guess what I'm > really missing > is something like: > > import find > > for file in find("/var/trac",iname="trac.ini"): > ~ with open(file, 'a') as f: > ~ f.writelines(["[inherit]", "blah=something"]) > > (or. better yet, a nice "appendline()/appendlines()"-convenience > method on all > file objects that allows for doing the same thing (ie equivalent to > the shell > ">>" operator): > > for file in find("/var/trac",iname="trac.ini"): > ~ file.appendlines(["[inherit]", "blah=something"]) > > > But I suppoose the "meme" i was missing was glob and/or os.walk. So > coding > "around" the "lack" of a find module: > > import os > > for root, files, dirs in os.walk("/var/trac"): > ~ for file in files: > ~ if file.lower() == "trac.ini": > ~ with open(os.path.join(root,file), "a") as f: > ~ f.writelines(["[inherit]", "blah=something"]) > > > I suppose I can live with glob and os.walk -- but it's a bit painful > that > os.walk returns only names as strings, and that there are no > "reasonable" > file/path objects (note the main reason that this is necessary is of > course the > fact that not all os' agree on path separators and/or > mountpoints/"driveletters"). > > Still a python find-module seems like a good (and pretty simple) idea.
See `iwalk | filter`. --Noah --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Users" group. To post to this group, send email to trac-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/trac-users?hl=en -~----------~----~----~----~------~----~------~--~---