Document the value of `this`.
[dygraphs.git] / docs / ssi_expander.py
CommitLineData
14403441
DV
1#!/usr/bin/python
2'''
3This script copies the files in one directory to another, expanding any SSI
4<!-- #include --> statements it encounters along the way.
5
6Usage:
7
8 ./ssi_expander.py [source_directory] destination_directory
9
10If source_directory is not specified, then the current directory is used.
11'''
12
13import os
14import ssi
15import sys
16
17def process(source, dest):
18 for dirpath, dirnames, filenames in os.walk(source):
19 dest_dir = os.path.realpath(os.path.join(dest, os.path.relpath(dirpath, source)))
20 if not os.path.exists(dest_dir):
21 os.mkdir(dest_dir)
22 assert os.path.isdir(dest_dir)
23 for filename in filenames:
24 src_path = os.path.abspath(os.path.join(source, dirpath, filename))
25 dest_path = os.path.join(dest_dir, filename)
26 if not filename.endswith('.html'):
27 os.symlink(src_path, dest_path)
28 else:
29 file(dest_path, 'w').write(ssi.InlineIncludes(src_path))
30
31 # ignore hidden directories
32 for dirname in dirnames[:]:
33 if dirname.startswith('.'):
34 dirnames.remove(dirname)
35
36
37if __name__ == '__main__':
38 if len(sys.argv) == 2:
39 source = '.'
40 dest = sys.argv[1]
41 elif len(sys.argv) == 3:
42 source, dest = sys.argv[1:]
43 else:
44 sys.stderr.write('Usage: %s [source_directory] destination_directory\n' % sys.argv[0])
45 sys.exit(1)
46
47 process(source, dest)