diff options
author | David 'Digit' Turner <digit@google.com> | 2010-10-11 22:11:06 +0200 |
---|---|---|
committer | David 'Digit' Turner <digit@google.com> | 2011-02-03 18:07:41 +0100 |
commit | fc2693110ee8a2ba22a445ad9855fbe9e118d439 (patch) | |
tree | 6bbfcf0620780f454b5c0ac2dbd5341a00cfa157 /libc/kernel/tools/utils.py | |
parent | 040e18f362716c0bab1d9c39a869b98d6c61584c (diff) |
libc: Update auto-gen scripts
Make the scripts use external/kernel-headers/original by default.
clean_header.py: Document -k<path>, add -d<path>
find_headers.py: Make kernel config files optional
update_all.py: Allow setting the path to kernel headers on the command-line
update_all.py: Better formatting of output on ttys
update_all.py: Automatically perform "git add/rm" on affected files.
SYSCALLS.TXT: Fix typo in __socketcall definition.
checksyscalls.py: Add support for superH architecture in the checks.
gensyscalls.py: Automatically perform "git add/rm" on affected files.
cpp.py: Fixed a bug that prevented certain type definitions to
be kept in the generated clean header (e.g.
struct ethtool_drvinfo in <linux/ethtool.h>)
All scripts will use the content of external/kernel-headers/original by default now.
The generated code removes all empty lines and trailing whitespace. This is useful
to ensure a unified output even if we change the parser again in the future.
The top-level disclaimer has been edited with update instructions to regenerate
the headers when needed.
Also, a warning is now inserted every 8th line in the final output:
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Changes under kernel/arch-arm and kernel/arch-x86 should correspond to whitespace
differences and additionnal struct definitions that were missed by the previous
parser implementation.
Change-Id: Icd1c056bacd766759f3e9b7bb5d63a246f3d656a
WARNING: If you run these script, do not submit the result to gerrit for now.
It seems there are discrepancies between the content of original headers
and those currently commited under bionic/libc/kernel/.
(This problem is the main motivation to insert the warning repeatedly).
Current list of issues:
- Missing SuperH headers (i.e. external/kernel-headers/original/asm-sh)
Diffstat (limited to 'libc/kernel/tools/utils.py')
-rw-r--r-- | libc/kernel/tools/utils.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libc/kernel/tools/utils.py b/libc/kernel/tools/utils.py index 763c7d26f..f4cf5403b 100644 --- a/libc/kernel/tools/utils.py +++ b/libc/kernel/tools/utils.py @@ -231,6 +231,15 @@ def create_file_path(path): def walk_source_files(paths,callback,args,excludes=[]): """recursively walk a list of paths and files, only keeping the source files in directories""" for path in paths: + if len(path) > 0 and path[0] == '@': + # this is the name of another file, include it and parse it + path = path[1:] + if os.path.exists(path): + for line in open(path): + if len(line) > 0 and line[-1] == '\n': + line = line[:-1] + walk_source_files([line],callback,args,excludes) + continue if not os.path.isdir(path): callback(path,args) else: @@ -238,7 +247,7 @@ def walk_source_files(paths,callback,args,excludes=[]): #print "w-- %s (ex: %s)" % (repr((root,dirs)), repr(excludes)) if len(excludes): for d in dirs[:]: - if d in excludes: + if os.path.join(root,d) in excludes: dirs.remove(d) for f in files: r, ext = os.path.splitext(f) @@ -395,3 +404,19 @@ class BatchFileUpdater: D2("P4 DELETES: %s" % files) o = commands.getoutput( "p4 delete " + files ) D2( o ) + + def updateGitFiles(self): + adds, deletes, edits = self.getChanges() + + if adds: + for dst in sorted(adds): + self._writeFile(dst) + commands.getoutput("git add " + " ".join(adds)) + + if deletes: + commands.getoutput("git rm " + " ".join(deletes)) + + if edits: + for dst in sorted(edits): + self._writeFile(dst) + commands.getoutput("git add " + " ".join(edits)) |