scripts/bpf: Set date attribute for bpf-helpers(7) man page
[linux-2.6-microblaze.git] / scripts / bpf_doc.py
index 061ad1d..f4f3e7e 100755 (executable)
@@ -12,6 +12,7 @@ import re
 import sys, os
 import subprocess
 
+helpersDocStart = 'Start of BPF helper function descriptions:'
 
 class NoHelperFound(BaseException):
     pass
@@ -235,7 +236,7 @@ class HeaderParser(object):
         self.enum_syscalls = re.findall('(BPF\w+)+', bpf_cmd_str)
 
     def parse_desc_helpers(self):
-        self.seek_to('* Start of BPF helper function descriptions:',
+        self.seek_to(helpersDocStart,
                      'Could not find start of eBPF helper descriptions list')
         while True:
             try:
@@ -373,6 +374,17 @@ class PrinterRST(Printer):
                 return 'Linux'
         return 'Linux {version}'.format(version=version)
 
+    def get_last_doc_update(self, delimiter):
+        try:
+            cmd = ['git', 'log', '-1', '--pretty=format:%cs', '--no-patch',
+                   '-L',
+                   '/{}/,/\*\//:include/uapi/linux/bpf.h'.format(delimiter)]
+            date = subprocess.run(cmd, cwd=linuxRoot,
+                                  capture_output=True, check=True)
+            return date.stdout.decode().rstrip()
+        except:
+            return ''
+
 class PrinterHelpersRST(PrinterRST):
     """
     A printer for dumping collected information about helpers as a ReStructured
@@ -395,6 +407,7 @@ list of eBPF helper functions
 
 :Manual section: 7
 :Version: {version}
+{date_field}{date}
 
 DESCRIPTION
 ===========
@@ -428,9 +441,12 @@ HELPERS
 =======
 '''
         kernelVersion = self.get_kernel_version()
+        lastUpdate = self.get_last_doc_update(helpersDocStart)
 
         PrinterRST.print_license(self)
-        print(header.format(version=kernelVersion))
+        print(header.format(version=kernelVersion,
+                            date_field = ':Date: ' if lastUpdate else '',
+                            date=lastUpdate))
 
     def print_footer(self):
         footer = '''