Files
carbon-lang/proposals/scripts/proposals.py
T

40 lines
1.1 KiB
Python

"""Provides a list of proposal files."""
__copyright__ = """
Part of the Carbon Language project, under the Apache License v2.0 with LLVM
Exceptions. See /LICENSE for license information.
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
"""
import os
import re
import sys
def get_title(parent_dir, entry):
"""Returns the title from the requested file."""
path = os.path.join(parent_dir, entry)
with open(path) as md:
titles = [t for t in md.readlines() if t.startswith("# ")]
if not titles:
sys.exit("%r is missing a title." % path)
return titles[0][2:-1]
def get_path():
return os.path.realpath(os.path.join(os.path.dirname(__file__), ".."))
def get_list(proposals_path):
proposals = []
proposals_list = os.listdir(proposals_path)
proposals_list.sort()
for f in proposals_list:
match = re.match(r"^p([0-9]{4})\.md$", f)
if not match:
continue
number = match[1]
title = get_title(proposals_path, f)
proposals.append(("%s - %s" % (number, title), f))
return proposals