diff options
author | Tom Rini <trini@konsulko.com> | 2019-09-13 11:51:42 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-09-19 12:54:29 -0400 |
commit | 4a7cf0fd2bf74b707e8a5f82436e2f0431259583 (patch) | |
tree | 0c500691f1f5ccca489beb06a1a8e0ba32fcea81 /scripts | |
parent | 7aed3d380981565b5bb2810d5d13aad1ff994f1a (diff) | |
download | u-boot-4a7cf0fd2bf74b707e8a5f82436e2f0431259583.tar.gz |
scrapyard: Delete this file and script
The README.scrapyard file has been inconsistently updated. While well
intentioned, bad data is worse than no data, and in this case a pointer
to use the history that git provides. Remove the current content and
the script that would update it from time to time as well.
Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/fill_scrapyard.py | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/scripts/fill_scrapyard.py b/scripts/fill_scrapyard.py deleted file mode 100755 index 55a7f382cf..0000000000 --- a/scripts/fill_scrapyard.py +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/env python2 -# SPDX-License-Identifier: GPL-2.0+ -# -# Author: Masahiro Yamada <yamada.m@jp.panasonic.com> -# - -""" -Fill the "Commit" and "Removed" fields of doc/README.scrapyard - -The file doc/README.scrapyard is used to keep track of removed boards. - -When we remove support for boards, we are supposed to add entries to -doc/README.scrapyard leaving "Commit" and "Removed" fields blank. - -The "Commit" field is the commit hash in which the board was removed -and the "Removed" is the date at which the board was removed. Those -two are known only after the board removal patch was applied, thus they -need to be filled in later. - -This effectively means that the person who removes other boards is -supposed to fill in the blank fields before adding new entries to -doc/README.scrapyard. - -That is a really tedious task that should be automated. -This script fills the blank fields of doc/README.scrapyard for you! - -Usage: - -The "Commit" and "Removed" fields must be "-". The other fields should -have already been filled in by a former commit. - -Run - scripts/fill_scrapyard.py -""" - -import os -import subprocess -import sys -import tempfile - -DOC='doc/README.scrapyard' - -def get_last_modify_commit(file, line_num): - """Get the commit that last modified the given line. - - This function runs "git blame" against the given line of the given - file and returns the commit hash that last modified it. - - Arguments: - file: the file to be git-blame'd. - line_num: the line number to be git-blame'd. This line number - starts from 1, not 0. - - Returns: - Commit hash that last modified the line. The number of digits is - long enough to form a unique commit. - """ - result = subprocess.check_output(['git', 'blame', '-L', - '%d,%d' % (line_num, line_num), file]) - commit = result.split()[0] - - if commit[0] == '^': - sys.exit('%s: line %d: ' % (file, line_num) + - 'this line was modified before the beginning of git history') - - if commit == '0' * len(commit): - sys.exit('%s: line %d: locally modified\n' % (file, line_num) + - 'Please run this script in a clean repository.') - - return commit - -def get_committer_date(commit): - """Get the committer date of the given commit. - - This function returns the date when the given commit was applied. - - Arguments: - commit: commit-ish object. - - Returns: - The committer date of the given commit in the form YY-MM-DD. - """ - committer_date = subprocess.check_output(['git', 'show', '-s', - '--format=%ci', commit]) - return committer_date.split()[0] - -def move_to_topdir(): - """Change directory to the top of the git repository. - - Or, exit with an error message if called out of a git repository. - """ - try: - toplevel = subprocess.check_output(['git', 'rev-parse', - '--show-toplevel']) - except subprocess.CalledProcessError: - sys.exit('Please run in a git repository.') - - # strip '\n' - toplevel = toplevel.rstrip() - - # Change the current working directory to the toplevel of the respository - # for our easier life. - os.chdir(toplevel) - -class TmpFile: - - """Useful class to handle a temporary file. - - tempfile.mkstemp() is often used to create a unique temporary file, - but what is inconvenient is that the caller is responsible for - deleting the file when done with it. - - Even when the caller errors out on the way, the temporary file must - be deleted somehow. The idea here is that we delete the file in - the destructor of this class because the destructor is always - invoked when the instance of the class is freed. - """ - - def __init__(self): - """Constructor - create a temporary file""" - fd, self.filename = tempfile.mkstemp() - self.file = os.fdopen(fd, 'w') - - def __del__(self): - """Destructor - delete the temporary file""" - try: - os.remove(self.filename) - except: - pass - -def main(): - move_to_topdir() - - line_num = 1 - - tmpfile = TmpFile() - for line in open(DOC): - tmp = line.split(None, 5) - modified = False - - if len(tmp) >= 5: - # fill "Commit" field - if tmp[3] == '-': - tmp[3] = get_last_modify_commit(DOC, line_num) - modified = True - # fill "Removed" field - if tmp[4] == '-': - tmp[4] = get_committer_date(tmp[3]) - if modified: - line = tmp[0].ljust(17) - line += tmp[1].ljust(12) - line += tmp[2].ljust(15) - line += tmp[3].ljust(12) - line += tmp[4].ljust(12) - if len(tmp) >= 6: - line += tmp[5] - line = line.rstrip() + '\n' - - tmpfile.file.write(line) - line_num += 1 - - os.rename(tmpfile.filename, DOC) - -if __name__ == '__main__': - main() |