#!/usr/bin/env python # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import argparse import os import sys def generate_index_file(publish_path): """Generate index.html file in publish_path.""" if not os.path.isdir(publish_path): os.mkdir(publish_path) index_file = open(os.path.join(publish_path, 'index.html'), 'w') index_file.write( '\n' '\n' '\n' '

Generated documents

\n') links = {} for root, dirs, files in os.walk(publish_path): dirs[:] = [d for d in dirs if d not in ['common', 'webapp', 'content', 'www', 'samples']] # Ignore top-level index.html files if root == publish_path: continue if os.path.isfile(os.path.join(root, 'content/index.html')): path = os.path.relpath(root, publish_path) links[path] = ('%s\n' % (path, path)) elif os.path.isfile(os.path.join(root, 'index.html')): path = os.path.relpath(root, publish_path) links[path] = ('%s\n' % (path, path.replace('draft/', ''))) if os.path.isfile(os.path.join(root, 'api-ref.html')): path = os.path.relpath(root, publish_path) links[path] = ('%s\n' % (path, path)) # List PDF files for api-site that have from "bk-api-ref*.pdf" # as well since they have no corresponding html file. for f in files: if f.startswith('bk-api-ref') and f.endswith('.pdf'): path = os.path.relpath(root, publish_path) links[f] = ('%s\n' % (path, f, f)) for entry in sorted([s for s in links if not s.startswith('draft/')]): index_file.write(links[entry]) index_file.write('
\n') drafts = [s for s in links if s.startswith('draft/')] if drafts: index_file.write('

Draft guides

\n') for entry in sorted(drafts): index_file.write(links[entry]) index_file.write('
\n') if os.path.isfile(os.path.join(publish_path, 'www-index.html')): index_file.write('

WWW index pages

\n') index_file.write('List of generated ' 'WWW pages\n') index_file.write('\n' '\n') index_file.close() def main(): parser = argparse.ArgumentParser(description="Generate index file.") parser.add_argument('directory', metavar='DIR', help="Directory to search.") args = parser.parse_args() generate_index_file(args.directory) if __name__ == "__main__": sys.exit(main())