diff options
Diffstat (limited to 'config/vim/plugin/pickachu/apps.py')
-rw-r--r-- | config/vim/plugin/pickachu/apps.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/config/vim/plugin/pickachu/apps.py b/config/vim/plugin/pickachu/apps.py new file mode 100644 index 0000000..00a6826 --- /dev/null +++ b/config/vim/plugin/pickachu/apps.py @@ -0,0 +1,68 @@ +import vim +import subprocess +from . import processors + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# name: apps.py +# description: this function contains a dictionary object +# where you can easily add new apps with processor +# functions to handle their output. Note: a +# processor is optional. +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +ZENITY_COMMAND = vim.eval("g:pickachu_default_command") +# Note: This is not the final date format that displays on +# the users' buffer. This is the format we force +# Zenity/Qarma to provide us. +RETURNED_DATE_FORMAT = "%m/%d/%Y" +if ZENITY_COMMAND == 'qarma': + RETURNED_DATE_FORMAT = "MM/dd/yy" + +apps = { + 'date': { + 'cmd': ZENITY_COMMAND, + 'processor': processors.dateProcessor, + 'options': [ + '--calendar', + '--date-format=' + RETURNED_DATE_FORMAT + ] + }, + 'file': { + 'cmd': ZENITY_COMMAND, + 'options': [ + '--file-selection' + ] + }, + 'color': { + 'cmd': ZENITY_COMMAND, + 'options': [ + '--color-selection' + ], + 'processor': processors.colorProcessor + } +} + +def runApp(choosenApp, format=None): + app = apps.get(choosenApp, None) + if app: + output = None + try: + command_array = [app['cmd']] + if app.get('options', False): + for option in app['options']: + command_array.append(option) + # Logging + command_array.append('2> /tmp/pickachu_log') + output = subprocess.check_output(command_array).decode('utf-8') + except: + return None + + if app.get('processor', None): + if format: + return app['processor'](output.rstrip(), format) + else: + return app['processor'](output.rstrip()) + else: + return output.rstrip() + else: + print("App does not exist.") |