45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
#!/usr/bin/bash
|
|
# coding: utf-8
|
|
|
|
import argparse
|
|
from SWSCloudCore.controllers.settings import ControllerSettings
|
|
|
|
|
|
class SettingsCli(object):
|
|
def __init__(self):
|
|
self.parser = argparse.ArgumentParser(description='Process some integers.')
|
|
self.parser.add_argument('--key', metavar='k', type=str, default='', help='settings key')
|
|
self.parser.add_argument('--value', metavar='v', type=str, default='', help='settings value')
|
|
# get, set, delete
|
|
self.parser.add_argument('--action', metavar='a', type=str, help='action to invoke (get is default)')
|
|
self.controller = ControllerSettings()
|
|
|
|
def run(self):
|
|
args = self.parser.parse_args()
|
|
if args.action:
|
|
action = args.action.lower()
|
|
if hasattr(self, action):
|
|
# invoke method if it exists in self
|
|
return getattr(self, action)(args.key, args.value)
|
|
# unsupported action
|
|
else:
|
|
self.parser.print_help()
|
|
|
|
def get(self, key, value=None):
|
|
key = self.controller.get(key)
|
|
return 1 if not key else key
|
|
|
|
def set(self, key, value):
|
|
if self.controller.exists(key):
|
|
code = int(self.controller.update(key, value))
|
|
else:
|
|
code = int(self.controller.create(key, value))
|
|
return code
|
|
|
|
def delete(self, key, value=None):
|
|
return int(self.controller.delete(key))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
x = SettingsCli().run()
|
|
exit(x)
|