| 1 | import os |
|---|
| 2 | from pyndexter import * |
|---|
| 3 | from pyndexter.sources.file import * |
|---|
| 4 | from urlparse import urlsplit, urlunsplit |
|---|
| 5 | from urllib import quote, unquote |
|---|
| 6 | from time import time |
|---|
| 7 | from trac.util.text import pretty_size |
|---|
| 8 | |
|---|
| 9 | start = None |
|---|
| 10 | orig_start = None |
|---|
| 11 | def filter(ctx, stream): |
|---|
| 12 | global start |
|---|
| 13 | map = {ADDED: 'ADDED', MODIFIED: 'MODIFIED', REMOVED: 'REMOVED'} |
|---|
| 14 | for transition, uri in stream: |
|---|
| 15 | if not start: |
|---|
| 16 | orig_start = start = time() |
|---|
| 17 | print "initializing start: %s" % str(start) |
|---|
| 18 | else: |
|---|
| 19 | print " elapsed time: %s" % str(time() - start) |
|---|
| 20 | start = time() |
|---|
| 21 | scheme, location, path, query, fragment = urlsplit(uri, 'file') |
|---|
| 22 | path = os.path.normpath(unquote(path)) |
|---|
| 23 | print map[transition], path, "(%s)" % pretty_size(os.stat(path).st_size) |
|---|
| 24 | yield transition, uri |
|---|
| 25 | |
|---|
| 26 | if __name__ == '__main__': |
|---|
| 27 | start = None |
|---|
| 28 | framework = Framework('builtin://%s/pyndexter.idx' % os.getcwd()) |
|---|
| 29 | framework.add_source('file://' + quote('/home/pacopablo/irc/trac/logs/ChannelLogger/freenode/#trac') + '?include=*.log') |
|---|
| 30 | framework.update(filter=filter) |
|---|
| 31 | print " elapsed time: %s" % str(time() - start) |
|---|
| 32 | print |
|---|
| 33 | print "Total time to index files: %s" % str(time() - orig_start) |
|---|