60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
import zeekpkg.template
|
|
import zeekpkg.uservar
|
|
|
|
TEMPLATE_API_VERSION = "1.0.0"
|
|
|
|
|
|
class Package(zeekpkg.template.Package):
|
|
def contentdir(self):
|
|
return "package"
|
|
|
|
def needed_user_vars(self):
|
|
return ["name"]
|
|
|
|
def validate(self, tmpl):
|
|
if not tmpl.lookup_param("name"):
|
|
raise zeekpkg.template.InputError("package requires a name")
|
|
|
|
|
|
class Readme(zeekpkg.template.Feature):
|
|
def contentdir(self):
|
|
return "readme"
|
|
|
|
def needed_user_vars(self):
|
|
return ["readme"]
|
|
|
|
def validate(self, tmpl):
|
|
pass
|
|
|
|
|
|
class Template(zeekpkg.template.Template):
|
|
def define_user_vars(self):
|
|
return [
|
|
zeekpkg.uservar.UserVar(
|
|
"name",
|
|
desc='the name of the package, e.g. "FooBar"',
|
|
),
|
|
zeekpkg.uservar.UserVar(
|
|
"readme",
|
|
desc="Content of the README file",
|
|
val="This is a README.",
|
|
),
|
|
]
|
|
|
|
def apply_user_vars(self, uvars):
|
|
for uvar in uvars:
|
|
if uvar.name() == "name":
|
|
self.define_param("name", uvar.val())
|
|
self.define_param("module", uvar.val().upper())
|
|
if uvar.name() == "readme":
|
|
self.define_param("readme", uvar.val())
|
|
|
|
def package(self):
|
|
return Package()
|
|
|
|
def features(self):
|
|
return [Readme()]
|
|
|
|
def validate(self, tmpl):
|
|
pass
|