Back to index

enigmail  1.4.3
Public Member Functions | Public Attributes | Static Public Attributes | Static Private Attributes
pymake.functions.ShellFunction Class Reference
Inheritance diagram for pymake.functions.ShellFunction:
Inheritance graph
[legend]
Collaboration diagram for pymake.functions.ShellFunction:
Collaboration graph
[legend]

List of all members.

Public Member Functions

def resolve
def __getitem__
def setup
def append
def __len__

Public Attributes

 loc

Static Public Attributes

string name = 'shell'
int minargs = 1
int maxargs = 1

Static Private Attributes

 __slots__ = Function.__slots__

Detailed Description

Definition at line 600 of file functions.py.


Member Function Documentation

def pymake.functions.Function.__getitem__ (   self,
  key 
) [inherited]

Definition at line 32 of file functions.py.

00032 
00033     def __getitem__(self, key):
00034         return self._arguments[key]

def pymake.functions.Function.__len__ (   self) [inherited]

Definition at line 47 of file functions.py.

00047 
00048     def __len__(self):
00049         return len(self._arguments)

def pymake.functions.Function.append (   self,
  arg 
) [inherited]

Definition at line 43 of file functions.py.

00043 
00044     def append(self, arg):
00045         assert isinstance(arg, (data.Expansion, data.StringExpansion))
00046         self._arguments.append(arg)

Here is the caller graph for this function:

def pymake.functions.ShellFunction.resolve (   self,
  makefile,
  variables,
  fd,
  setting 
)

Definition at line 607 of file functions.py.

00607 
00608     def resolve(self, makefile, variables, fd, setting):
00609         #TODO: call this once up-front somewhere and save the result?
00610         shell, msys = util.checkmsyscompat()
00611         cline = self._arguments[0].resolvestr(makefile, variables, setting)
00612 
00613         log.debug("%s: running shell command '%s'" % (self.loc, cline))
00614         if msys:
00615             cline = [shell, "-c", cline]
00616         p = subprocess.Popen(cline, shell=not msys, stdout=subprocess.PIPE, cwd=makefile.workdir)
00617         stdout, stderr = p.communicate()
00618 
00619         stdout = stdout.replace('\r\n', '\n')
00620         if stdout.endswith('\n'):
00621             stdout = stdout[:-1]
00622         stdout = stdout.replace('\n', ' ')
00623 
00624         fd.write(stdout)

Here is the caller graph for this function:

def pymake.functions.Function.setup (   self) [inherited]

Reimplemented in pymake.functions.IfFunction, pymake.functions.SubstitutionRef, and pymake.functions.VariableRef.

Definition at line 35 of file functions.py.

00035 
00036     def setup(self):
00037         argc = len(self._arguments)
00038 
00039         if argc < self.minargs:
00040             raise data.DataError("Not enough arguments to function %s, requires %s" % (self.name, self.minargs), self.loc)
00041 
00042         assert self.maxargs == 0 or argc <= self.maxargs, "Parser screwed up, gave us too many args"


Member Data Documentation

Reimplemented from pymake.functions.Function.

Definition at line 605 of file functions.py.

Reimplemented in pymake.functions.SubstitutionRef, and pymake.functions.VariableRef.

Definition at line 29 of file functions.py.

Reimplemented from pymake.functions.Function.

Definition at line 603 of file functions.py.

Definition at line 602 of file functions.py.

string pymake.functions.ShellFunction.name = 'shell' [static]

Definition at line 601 of file functions.py.


The documentation for this class was generated from the following file: