view tests/test-template-engine.t @ 37785:b4d85bc122bd

wireproto: rename wireproto to wireprotov1server (API) We have wireprotov2server, wireprotov1peer, and wireprotov2peer. wireproto only contains server functionality. So it makes sense to rename it to wireprotov1server so the naming aligns with everything else. Differential Revision: https://phab.mercurial-scm.org/D3400
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 16 Apr 2018 22:21:54 -0700
parents 7d3bc1d4e871
children
line wrap: on
line source


  $ cat > engine.py << EOF
  > 
  > from mercurial import (
  >     pycompat,
  >     templater,
  >     templateutil,
  > )
  > 
  > class mytemplater(templater.engine):
  >     def _load(self, t):
  >         return self._loader(t)
  > 
  >     def process(self, t, map):
  >         tmpl = self._load(t)
  >         props = self._defaults.copy()
  >         props.update(map)
  >         for k, v in props.items():
  >             if b'{{%s}}' % k not in tmpl:
  >                 continue
  >             if callable(v) and getattr(v, '_requires', None) is None:
  >                 props = self._resources.copy()
  >                 props.update(map)
  >                 v = v(**pycompat.strkwargs(props))
  >             elif callable(v):
  >                 v = v(self, props)
  >             v = templateutil.stringify(self, props, v)
  >             tmpl = tmpl.replace(b'{{%s}}' % k, v)
  >         yield tmpl
  > 
  > templater.engines[b'my'] = mytemplater
  > EOF
  $ hg init test
  $ echo '[extensions]' > test/.hg/hgrc
  $ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
  $ cd test
  $ cat > mymap << EOF
  > changeset = my:changeset.txt
  > EOF
  $ cat > changeset.txt << EOF
  > {{rev}} {{node}} {{author}}
  > EOF
  $ hg ci -Ama
  adding changeset.txt
  adding mymap
  $ hg log --style=./mymap
  0 97e5f848f0936960273bbf75be6388cd0350a32b test

  $ cat > changeset.txt << EOF
  > {{p1rev}} {{p1node}} {{p2rev}} {{p2node}}
  > EOF
  $ hg ci -Ama
  $ hg log --style=./mymap
  0 97e5f848f0936960273bbf75be6388cd0350a32b -1 0000000000000000000000000000000000000000
  -1 0000000000000000000000000000000000000000 -1 0000000000000000000000000000000000000000

invalid engine type:

  $ echo 'changeset = unknown:changeset.txt' > unknownenginemap
  $ hg log --style=./unknownenginemap
  abort: invalid template engine: unknown
  [255]

  $ cd ..