Diff system

This commit is contained in:
Emojigit 2021-11-24 19:58:44 +08:00
parent 74234ba8ba
commit a815ba81ec
No known key found for this signature in database
GPG Key ID: 2443E5F619026B90
3 changed files with 28 additions and 11 deletions

View File

@ -5,7 +5,7 @@ from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.completion import WordCompleter, ThreadedCompleter
CMDCompleter = ThreadedCompleter(
WordCompleter(['list', 'get', 'set', 'cat', 'rm', 'clear', 'exit','write'],
WordCompleter(['list', 'get', 'set', 'cat', 'rm', 'clear', 'exit','write','diff'],
ignore_case=True)
)

View File

@ -1,4 +1,4 @@
# ['list', 'get', 'set', 'cat', 'rm', 'clear', 'exit','write']
# ['list', 'get', 'set', 'cat', 'rm', 'clear', 'exit','write','diff']
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
@ -7,6 +7,7 @@ from . import mtconf, dict_diff
from . import command_apis as api
import sys, os.path
diff_str = dict_diff.diff_str
diff_get = dict_diff.diff
#@api.debug
@api.no_param
@ -79,12 +80,18 @@ def clear(conf,param):
#@api.debug
@api.no_param
@api.require_api_arg("orig_conf")
@api.require_api_arg("file")
def exit(file,param):
print("Make sure you saved all your jobs. Do you still want to exit?")
@api.require_api_arg("conf")
def exit(file,param,orig_conf,conf):
adds,dels = diff_get(orig_conf,conf)
if len(adds) + len(dels) != 0:
print("You have unsaved changes. Do you still want to continue?")
diff_str(orig_conf,conf)
if input("(Yes/No) ").lower() != "yes":
print("Cancled.")
return
file.close()
print("Bye")
sys.exit()
@ -105,3 +112,14 @@ def write(conf,file,param,orig_conf):
print("Writing data into file...")
file.write(mtconf.render(conf))
print("Done")
#@api.debug
@api.no_param
@api.require_api_arg("orig_conf")
@api.require_api_arg("conf")
def diff(param,orig_conf,conf):
adds,dels = diff_get(orig_conf,conf)
if len(adds) + len(dels) != 0:
diff_str(orig_conf,conf)
else:
print("No changes.")

View File

@ -4,12 +4,11 @@ def diff(o,n):
return dict(os - ns), dict(ns - os)
def diff_str(o,n):
print(o,n)
dels,adds = diff(o,n)
print("-" * 10)
for x in dels:
print("+ " + x + " = " + dels[x])
print("-" * 10)
for x in adds:
print("+ " + x + " = " + adds[x])
print("-" * 10)
for x in dels:
print("- " + x + " = " + dels[x])
print("-" * 10)