diff options
author | Richard Ipsum <richardipsum@fastmail.co.uk> | 2014-07-24 13:32:25 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2014-07-31 09:12:06 +0100 |
commit | 0be9a6869c13d9e1369a4458c8e700f4684a4c56 (patch) | |
tree | da72c032d40aa650f30202d4781e9dfcca0265c5 /example5.py | |
parent | 0dfbddf73d0be0b39b2f8d8f6c7902ee1fba49b6 (diff) | |
download | cliapp-0be9a6869c13d9e1369a4458c8e700f4684a4c56.tar.gz |
Add LoggerApp example
Diffstat (limited to 'example5.py')
-rw-r--r-- | example5.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/example5.py b/example5.py new file mode 100644 index 0000000..4ceca44 --- /dev/null +++ b/example5.py @@ -0,0 +1,46 @@ +# Copyright (C) 2014 Lars Wirzenius +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +import cliapp +import logging + + +class LoggerApp(cliapp.Application): + + def log(self, s): + ''' A dummy logger function + + In practice this would log the contents + to a file or a set of files, perhaps filtering the output or + prefixing each line with a date and time. + + ''' + + self.output.write('log: %s' % s) + self.output.flush() + + def process_args(self, args): + commands = [['echo', 'hello world!'], ['ls', 'nosuchthing']] + + for command in commands: + try: + self.runcmd(command, stdout_callback=self.log, + stderr_callback=self.log) + except cliapp.AppException: + pass + +LoggerApp().run() |