#!/usr/bin/env python
# -*- coding: utf-8 -*-

import argparse
import logging

import os

from soniclib import config
from soniclib.context import Context, CONTEXT_FILE_NAME

arg_parser = argparse.ArgumentParser()
arg_parser.add_argument("key", help="the context key to get or set")
arg_parser.add_argument("value", nargs='?', help="Optional - When given, set context key to this value")
arg_parser.add_argument("-d", "--delete", help="Deletes the key from context", default=False, action="store_true")
arg_parser_results = arg_parser.parse_args()

logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s')
logging.getLogger().setLevel(logging.ERROR)

context = Context()

if arg_parser_results.delete:
    delattr(context, arg_parser_results.key)
    context.save()
    exit(0)

if arg_parser_results.value:
    setattr(context, arg_parser_results.key, arg_parser_results.value)
    context.save()

if os.path.isfile(config.SONIC_PATH+CONTEXT_FILE_NAME):
    print(getattr(context, arg_parser_results.key))