4747from kdoc .kdoc_files import KernelFiles
4848from kdoc .kdoc_output import RestFormat
4949
50+ # Used when verbose is active to show how to reproduce kernel-doc
51+ # issues via command line
52+ kerneldoc_bin = "tools/docs/kernel-doc"
53+
5054__version__ = '1.0'
5155kfiles = None
5256logger = logging .getLogger (__name__ )
@@ -95,7 +99,7 @@ class KernelDocDirective(Directive):
9599 def handle_args (self ):
96100
97101 env = self .state .document .settings .env
98- cmd = [env . config . kerneldoc_bin , '-rst' , '-enable-lineno' ]
102+ cmd = [kerneldoc_bin , '-rst' , '-enable-lineno' ]
99103
100104 filename = env .config .kerneldoc_srctree + '/' + self .arguments [0 ]
101105
@@ -190,35 +194,7 @@ def handle_args(self):
190194
191195 return cmd
192196
193- def run_cmd (self , cmd ):
194- """
195- Execute an external kernel-doc command.
196- """
197-
198- env = self .state .document .settings .env
199- node = nodes .section ()
200-
201- p = subprocess .Popen (cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE )
202- out , err = p .communicate ()
203-
204- out , err = codecs .decode (out , 'utf-8' ), codecs .decode (err , 'utf-8' )
205-
206- if p .returncode != 0 :
207- sys .stderr .write (err )
208-
209- logger .warning ("kernel-doc '%s' failed with return code %d"
210- % (" " .join (cmd ), p .returncode ))
211- return [nodes .error (None , nodes .paragraph (text = "kernel-doc missing" ))]
212- elif env .config .kerneldoc_verbosity > 0 :
213- sys .stderr .write (err )
214-
215- filenames = self .parse_args ["file_list" ]
216- for filename in filenames :
217- self .parse_msg (filename , node , out , cmd )
218-
219- return node .children
220-
221- def parse_msg (self , filename , node , out , cmd ):
197+ def parse_msg (self , filename , node , out ):
222198 """
223199 Handles a kernel-doc output for a given file
224200 """
@@ -244,7 +220,7 @@ def parse_msg(self, filename, node, out, cmd):
244220
245221 self .do_parse (result , node )
246222
247- def run_kdoc (self , cmd , kfiles ):
223+ def run_kdoc (self , kfiles ):
248224 """
249225 Execute kernel-doc classes directly instead of running as a separate
250226 command.
@@ -258,23 +234,17 @@ def run_kdoc(self, cmd, kfiles):
258234 filenames = self .parse_args ["file_list" ]
259235
260236 for filename , out in kfiles .msg (** self .msg_args , filenames = filenames ):
261- self .parse_msg (filename , node , out , cmd )
237+ self .parse_msg (filename , node , out )
262238
263239 return node .children
264240
265241 def run (self ):
266- global kfiles
267-
268242 cmd = self .handle_args ()
269243 if self .verbose >= 1 :
270244 logger .info (cmd_str (cmd ))
271245
272246 try :
273- if kfiles :
274- return self .run_kdoc (cmd , kfiles )
275- else :
276- return self .run_cmd (cmd )
277-
247+ return self .run_kdoc (kfiles )
278248 except Exception as e : # pylint: disable=W0703
279249 logger .warning ("kernel-doc '%s' processing failed with: %s" %
280250 (cmd_str (cmd ), pformat (e )))
@@ -286,19 +256,11 @@ def do_parse(self, result, node):
286256
287257def setup_kfiles (app ):
288258 global kfiles
289-
290- kerneldoc_bin = app .env .config .kerneldoc_bin
291-
292- if kerneldoc_bin and kerneldoc_bin .endswith ("kernel-doc.py" ):
293- print ("Using Python kernel-doc" )
294- out_style = RestFormat ()
295- kfiles = KernelFiles (out_style = out_style , logger = logger )
296- else :
297- print (f"Using { kerneldoc_bin } " )
259+ out_style = RestFormat ()
260+ kfiles = KernelFiles (out_style = out_style , logger = logger )
298261
299262
300263def setup (app ):
301- app .add_config_value ('kerneldoc_bin' , None , 'env' )
302264 app .add_config_value ('kerneldoc_srctree' , None , 'env' )
303265 app .add_config_value ('kerneldoc_verbosity' , 1 , 'env' )
304266
0 commit comments