[master] f4fcd0d Simplify

Poul-Henning Kamp phk at FreeBSD.org
Mon Nov 6 07:41:08 UTC 2017


commit f4fcd0d5b147c9bc892a02872269beaa659690e0
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Fri Nov 3 09:06:41 2017 +0000

    Simplify

diff --git a/lib/libvcc/vmodtool.py b/lib/libvcc/vmodtool.py
index 7d26668..1b5aaad 100755
--- a/lib/libvcc/vmodtool.py
+++ b/lib/libvcc/vmodtool.py
@@ -52,9 +52,9 @@ AMBOILERPLATE = '''
 AM_LDFLAGS  = $(AM_LT_LDFLAGS)
 
 AM_CPPFLAGS = \\
-    -I$(top_srcdir)/include \\
-    -I$(top_srcdir)/bin/varnishd \\
-    -I$(top_builddir)/include
+\t-I$(top_srcdir)/include \\
+\t-I$(top_srcdir)/bin/varnishd \\
+\t-I$(top_builddir)/include
 
 vmoddir = $(pkglibdir)/vmods
 vmodtool = $(top_srcdir)/lib/libvcc/vmodtool.py
@@ -63,12 +63,12 @@ vmodtoolargs = --strict --boilerplate
 vmod_LTLIBRARIES = libvmod_XXX.la
 
 libvmod_XXX_la_CFLAGS = \\
-    @SAN_CFLAGS@
+\t at SAN_CFLAGS@
 
 libvmod_XXX_la_LDFLAGS = \\
-    $(AM_LDFLAGS) \\
-    $(VMOD_LDFLAGS) \\
-    @SAN_LDFLAGS@
+\t$(AM_LDFLAGS) \\
+\t$(VMOD_LDFLAGS) \\
+\t at SAN_LDFLAGS@
 
 nodist_libvmod_XXX_la_SOURCES = vcc_if.c vcc_if.h
 
@@ -79,13 +79,13 @@ $(libvmod_XXX_la_OBJECTS): vcc_if.h
 vcc_if.h vmod_XXX.rst vmod_XXX.man.rst: vcc_if.c
 
 vcc_if.c: $(vmodtool) $(srcdir)/vmod.vcc
-    @PYTHON@ $(vmodtool) $(vmodtoolargs) $(srcdir)/vmod.vcc
+\t at PYTHON@ $(vmodtool) $(vmodtoolargs) $(srcdir)/vmod.vcc
 
 EXTRA_DIST = vmod.vcc automake_boilerplate.am
 
 CLEANFILES = $(builddir)/vcc_if.c $(builddir)/vcc_if.h \\
-    $(builddir)/vmod_XXX.rst \\
-    $(builddir)/vmod_XXX.man.rst
+\t$(builddir)/vmod_XXX.rst \\
+\t$(builddir)/vmod_XXX.man.rst
 
 '''
 
@@ -695,6 +695,16 @@ class s_method(stanza):
 
 #######################################################################
 
+dispatch = {
+    "Module":	s_module,
+    "Prefix":	s_prefix,
+    "ABI":	s_abi,
+    "Event":	s_event,
+    "Function":	s_function,
+    "Object":	s_object,
+    "Method":	s_method,
+}
+
 
 class vcc(object):
     def __init__(self, inputvcc, rstdir, outputprefix):
@@ -704,44 +714,30 @@ class vcc(object):
         self.sympfx = "vmod_"
         self.contents = []
         self.commit_files = []
-        self.copyright = None
+        self.copyright = ""
+
+    def openfile(self, fn):
+        self.commit_files.append(fn)
+        return open(fn + ".tmp", "w")
 
     def commit(self):
         for i in self.commit_files:
             os.rename(i + ".tmp", i)
 
     def parse(self):
-        a = open(self.inputfile, "r").read()
-        a = a.split("\n$")
-        for i in range(len(a)):
-            b = a[i].split("\n", 1)
+        a = "\n" + open(self.inputfile, "r").read()
+        s = a.split("\n$")
+        self.copyright = s.pop(0).strip()
+        for i in range(len(s)):
+            b = s[i].split("\n", 1)
             c = b[0].split(None, 1)
 
-            if i == 0:
-                if c[0] == "$Module":
-                    s_module(c, b[1:], self)
-                else:
-                    self.copyright = a[0]
-                continue
-            if i == 1 and self.copyright is not None:
-                if c[0] != "Module":
-                    err("$Module must be first stanze")
-            if c[0] == "Module":
-                s_module(c, b[1:], self)
-            elif c[0] == "Prefix":
-                s_prefix(c, b[1:], self)
-            elif c[0] == "ABI":
-                s_abi(c, b[1:], self)
-            elif c[0] == "Event":
-                s_event(c, b[1:], self)
-            elif c[0] == "Function":
-                s_function(c, b[1:], self)
-            elif c[0] == "Object":
-                s_object(c, b[1:], self)
-            elif c[0] == "Method":
-                s_method(c, b[1:], self)
-            else:
+            if i == 0 and c[0] != "Module":
+                err("$Module must be first stanze", False)
+            m = dispatch.get(c[0])
+            if m is None:
                 err("Unknown stanze $%s" % c[0])
+            m(c, b[1:], self)
 
     def rst_copyright(self, fo):
         write_rst_hdr(fo, "COPYRIGHT", "=")
@@ -759,30 +755,27 @@ class vcc(object):
         if man:
             fn += ".man"
         fn += ".rst"
-        self.commit_files.append(fn)
-        fo = open(fn + ".tmp", "w")
+        fo = self.openfile(fn)
         write_rst_file_warning(fo)
         fo.write(".. role:: ref(emphasis)\n\n")
 
         for i in self.contents:
             i.rstfile(fo, man)
 
-        if self.copyright is not None:
+        if len(self.copyright):
             self.rst_copyright(fo)
 
         fo.close()
 
     def amboilerplate(self):
         fn = "automake_boilerplate.am"
-        self.commit_files.append(fn)
-        fo = open(fn + ".tmp", "w")
+        fo = self.openfile(fn)
         fo.write(AMBOILERPLATE.replace("XXX", self.modname))
         fo.close()
 
     def hfile(self):
         fn = self.pfx + ".h"
-        self.commit_files.append(fn)
-        fo = open(fn + ".tmp", "w")
+        fo = self.openfile(fn)
         write_c_file_warning(fo)
         fo.write("#ifndef VRT_H_INCLUDED\n")
         fo.write('#  error "Include vrt.h first"\n')
@@ -847,8 +840,7 @@ class vcc(object):
 
     def cfile(self):
         fn = self.pfx + ".c"
-        self.commit_files.append(fn)
-        fo = open(fn + ".tmp", "w")
+        fo = self.openfile(fn)
         write_c_file_warning(fo)
 
         fn2 = fn + ".tmp2"


More information about the varnish-commit mailing list