console/cloud-settings.py
2024-12-10 21:05:37 +03:00

45 lines
1.5 KiB
Python
Executable file

#!/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)