mirror of
https://github.com/github/codeql.git
synced 2025-12-16 00:33:11 +01:00
Changes the script for creating change notes to read the EDITOR environment variable, and use the editor specified therein. This makes the script more convenient when used from a terminal. The VSCode task is updated to the set EDITOR to `code -r` which preserves the current behavior.
58 lines
1.6 KiB
Python
Executable File
58 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# Creates a change note and opens it in $EDITOR (or VSCode if the environment
|
|
# variable is not set) for editing.
|
|
|
|
# Expects to receive the following arguments:
|
|
# - What language the change note is for
|
|
# - Whether it's a query or library change (the string `src` or `lib`)
|
|
# - The name of the change note (in kebab-case)
|
|
# - The category of the change.
|
|
|
|
# The change note will be created in the `{language}/ql/{subdir}/change-notes` directory, where `subdir` is either `src` or `lib`.
|
|
|
|
# The format of the change note filename is `{current_date}-{change_note_name}.md` with the date in
|
|
# the format `YYYY-MM-DD`.
|
|
|
|
import sys
|
|
import os
|
|
|
|
# Read the given arguments
|
|
language = sys.argv[1]
|
|
subdir = sys.argv[2]
|
|
change_note_name = sys.argv[3]
|
|
change_category = sys.argv[4]
|
|
|
|
# Find the root of the repository. The current script should be located in `misc/scripts`.
|
|
root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
# Go to the repo root
|
|
os.chdir(root)
|
|
|
|
output_dir = f"{language}/ql/{subdir}/change-notes"
|
|
|
|
# Abort if the output directory doesn't exist
|
|
if not os.path.exists(output_dir):
|
|
print(f"Output directory {output_dir} does not exist")
|
|
sys.exit(1)
|
|
|
|
# Get the current date
|
|
import datetime
|
|
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
|
|
|
|
# Create the change note file
|
|
change_note_file = f"{output_dir}/{current_date}-{change_note_name}.md"
|
|
|
|
change_note = f"""
|
|
---
|
|
category: {change_category}
|
|
---
|
|
* """.lstrip()
|
|
|
|
with open(change_note_file, "w") as f:
|
|
f.write(change_note)
|
|
|
|
editor = os.environ.get('EDITOR', 'code')
|
|
|
|
os.system(f"{editor} {change_note_file}")
|