MCPcopy
hub / github.com/pyinstaller/pyinstaller / compile_fun_shell

Function compile_fun_shell

bootloader/waflib/Task.py:644–721  ·  view source on GitHub ↗
(line)

Source from the content-addressed store, hash-verified

642
643
644def compile_fun_shell(line):
645 extr = []
646
647 def repl(match):
648 g = match.group
649 if g('dollar'):
650 return "$"
651 elif g('backslash'):
652 return '\\\\'
653 elif g('subst'):
654 extr.append((g('var'), g('code')))
655 return "%s"
656 return None
657
658 line = reg_act.sub(repl, line) or line
659 dvars = []
660
661 def add_dvar(x):
662 if x not in dvars:
663 dvars.append(x)
664
665 def replc(m):
666 if m.group('and'):
667 return ' and '
668 elif m.group('or'):
669 return ' or '
670 else:
671 x = m.group('var')
672 add_dvar(x)
673 return 'env[%r]' % x
674
675 parm = []
676 app = parm.append
677 for (var, meth) in extr:
678 if var == 'SRC':
679 if meth:
680 app('tsk.inputs%s' % meth)
681 else:
682 app('" ".join([a.path_from(cwdx) for a in tsk.inputs])')
683 elif var == 'TGT':
684 if meth:
685 app('tsk.outputs%s' % meth)
686 else:
687 app('" ".join([a.path_from(cwdx) for a in tsk.outputs])')
688 elif meth:
689 if meth.startswith(':'):
690 add_dvar(var)
691 m = meth[1:]
692 if m == 'SRC':
693 m = '[a.path_from(cwdx) for a in tsk.inputs]'
694 elif m == 'TGT':
695 m = '[a.path_from(cwdx) for a in tsk.outputs]'
696 elif re_novar.match(m):
697 m = '[tsk.inputs%s]' % m[3:]
698 elif re_novar.match(m):
699 m = '[tsk.outputs%s]' % m[3:]
700 else:
701 add_dvar(m)

Callers 1

compile_funFunction · 0.85

Calls 4

appFunction · 0.85
add_dvarFunction · 0.85
funexFunction · 0.85
matchMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…