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
-~----------~----~----~----~------~----~------~--~---

Reply via email to