mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
projects.mk / jw-projects.py: Support tmpl_dir && tmpls-dir
For a project to supply templates, it needs to advertise their location. For this, the tmpl_dir make variable is added to projects.mk. If other-project wants to get hold of some-project's templates, it can do, e.g.: TEMPLATES = $(wilcard $(call tmpl_dir,some-project)/*.tmpl) To achieve this, support for the tmpls-dir command is added to jw-projects.py. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
ca5910d423
commit
ced42938e1
3 changed files with 32 additions and 1 deletions
|
|
@ -34,4 +34,5 @@ ifneq ($(TOPDIR),)
|
||||||
proj_query = $(shell $(proj_query_cmd) $(1))
|
proj_query = $(shell $(proj_query_cmd) $(1))
|
||||||
proj_dir = $(call proj_query,proj-dir $(1))
|
proj_dir = $(call proj_query,proj-dir $(1))
|
||||||
htdocs_dir = $(call proj_query,htdocs-dir $(1))
|
htdocs_dir = $(call proj_query,htdocs-dir $(1))
|
||||||
|
tmpl_dir = $(call proj_query,tmpl-dir $(1))
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,17 @@ class App(object):
|
||||||
pd = self.proj_dir(name)
|
pd = self.proj_dir(name)
|
||||||
if pd is None:
|
if pd is None:
|
||||||
return None
|
return None
|
||||||
for r in [ pd + "/tools/html/htdocs", pd + "/htdocs", "/srv/www/proj/" + name ]:
|
for r in [ pd + "/src/html/htdocs", pd + "/tools/html/htdocs", pd + "/htdocs", "/srv/www/proj/" + name ]:
|
||||||
|
if os.path.isdir(r):
|
||||||
|
return r
|
||||||
|
return None
|
||||||
|
|
||||||
|
# TODO: add support for customizing this in project.conf
|
||||||
|
def tmpl_dir(self, name):
|
||||||
|
pd = self.proj_dir(name)
|
||||||
|
if pd is None:
|
||||||
|
return None
|
||||||
|
for r in [ pd + "/tmpl", "/opt/" + name + "/share/tmpl" ]:
|
||||||
if os.path.isdir(r):
|
if os.path.isdir(r):
|
||||||
return r
|
return r
|
||||||
return None
|
return None
|
||||||
|
|
|
||||||
20
src/python/jw/pkg/build/cmds/CmdTmplDir.py
Normal file
20
src/python/jw/pkg/build/cmds/CmdTmplDir.py
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from argparse import Namespace, ArgumentParser
|
||||||
|
|
||||||
|
from ..Cmd import Cmd
|
||||||
|
|
||||||
|
class CmdTmplDir(Cmd): # export
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__('tmpl-dir', help='Print directory containing templates of a given module')
|
||||||
|
|
||||||
|
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||||
|
super().add_arguments(parser)
|
||||||
|
parser.add_argument('module', nargs='*', help='Modules')
|
||||||
|
|
||||||
|
def _run(self, args: Namespace) -> None:
|
||||||
|
r = []
|
||||||
|
for m in args.module:
|
||||||
|
r.append(self.app.tmpl_dir(m))
|
||||||
|
print(' '.join(r))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue