summaryrefslogtreecommitdiff
path: root/example5.py
diff options
context:
space:
mode:
authorRichard Ipsum <richardipsum@fastmail.co.uk>2014-07-24 13:32:25 +0100
committerLars Wirzenius <liw@liw.fi>2014-07-31 09:12:06 +0100
commit0be9a6869c13d9e1369a4458c8e700f4684a4c56 (patch)
treeda72c032d40aa650f30202d4781e9dfcca0265c5 /example5.py
parent0dfbddf73d0be0b39b2f8d8f6c7902ee1fba49b6 (diff)
downloadcliapp-0be9a6869c13d9e1369a4458c8e700f4684a4c56.tar.gz
Add LoggerApp example
Diffstat (limited to 'example5.py')
-rw-r--r--example5.py46
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()