1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # -*- coding: utf-8 -*-
- """
- plan.output
- ~~~~~~~~~~~
- Output for Plan. This is used for cron job output redirection.
- :copyright: (c) 2014 by Shipeng Feng.
- :license: BSD, see LICENSE for more details.
- """
- from ._compat import string_types
- class Output(object):
- """The plan output class used for command line output redirection.
- """
- def __init__(self, output=None):
- self.output = output
- def __str__(self):
- if not self.output:
- return ''
- if isinstance(self.output, string_types):
- return self.from_string()
- elif isinstance(self.output, dict):
- return self.from_dict()
- else:
- raise TypeError("Illegal output value %s" % self.output)
- def from_string(self):
- if self.output == "null":
- return "> /dev/null 2>&1"
- return self.output
- def from_dict(self):
- stdout = self.output.get('stdout', '/dev/null')
- stderr = self.output.get('stderr', '/dev/null')
- if stdout == '/dev/null' and stderr == '/dev/null':
- return "> /dev/null 2>&1"
- elif stdout and stderr:
- return ">> {stdout} 2>> {stderr}".format(stdout=stdout,
- stderr=stderr)
- elif stdout:
- return ">> {stdout}".format(stdout=stdout)
- elif stderr:
- return "2>> {stderr}".format(stderr=stderr)
- else:
- return ''
|