annotate decoupage/create_index.py @ 93:bdb9e39abd84

make a proper python script for discovery and extension
author Jeff Hammel <k0scist@gmail.com>
date Sun, 21 Aug 2016 19:27:10 -0700
parents create_index_ini.sh@55719bcdc2c2
children 450aff4c97e3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
93
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
1 #!/usr/bin/env python
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
2
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
3 """
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
4 create index.ini file from directory listings
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
5 """
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
6
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
7 #ls -1 | while read line; do echo "${line} = ${line}"; done > index.ini
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
8
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
9 # imports
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
10 import argparse
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
11 import os
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
12 import sys
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
13
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
14
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
15 class CreateIndex(object):
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
16 """
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
17 decoupage directory index .ini creation
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
18 """
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
19 # TODO: maybe this should inherit or otherwise extend
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
20 # some more abstract Index class
90
55719bcdc2c2 add stub shell script for index.ini creatoin
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
21
93
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
22 def __init__(self, directory):
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
23 assert os.path.isdir(directory)
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
24 self.directory = directory
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
25
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
26 def __str__(self):
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
27 lines = ['{item}={item}'.format(item=item)
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
28 for item in sorted(os.listdir(self.directory))]
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
29 return '\n'.join(lines) + '\n'
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
30
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
31
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
32 def main(args=sys.argv[1:]):
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
33 """CLI"""
90
55719bcdc2c2 add stub shell script for index.ini creatoin
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
34
93
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
35 # parse command line
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
36 parser = argparse.ArgumentParser(description=__doc__)
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
37 parser.add_argument('-d', '--directory',
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
38 default=os.getcwd(),
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
39 help="directory to create index for (current working directory by default)")
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
40 options = parser.parse_args(args)
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
41
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
42 print CreateIndex(options.directory)
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
43
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
44
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
45 if __name__ == '__main__':
bdb9e39abd84 make a proper python script for discovery and extension
Jeff Hammel <k0scist@gmail.com>
parents: 90
diff changeset
46 main()