summaryrefslogtreecommitdiff
path: root/tools/menuconfig.py
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2020-12-28 04:13:25 -0600
committerGitHub <[email protected]>2020-12-28 04:13:25 -0600
commit3bca2cfb418f03c529fc8563b62c19d391caf90b (patch)
tree469dbaebaa3325f64e59b71b4063f135bb6fdfd8 /tools/menuconfig.py
parent84a5f96453ee2719695b719142af08b7a51b623d (diff)
parent936db0e396f286a7f493cdadb698cf9340a82448 (diff)
Merge pull request #7 from RT-Thread/master
pr
Diffstat (limited to 'tools/menuconfig.py')
-rw-r--r--tools/menuconfig.py43
1 files changed, 26 insertions, 17 deletions
diff --git a/tools/menuconfig.py b/tools/menuconfig.py
index b49a2e7120..c0a33718de 100644
--- a/tools/menuconfig.py
+++ b/tools/menuconfig.py
@@ -27,6 +27,8 @@ import os
import re
import sys
import shutil
+import hashlib
+import operator
# make rtconfig.h from .config
@@ -38,7 +40,6 @@ def is_pkg_special_config(config_str):
return True
return False
-
def mk_rtconfig(filename):
try:
config = open(filename, 'r')
@@ -97,6 +98,14 @@ def mk_rtconfig(filename):
rtconfig.write('#endif\n')
rtconfig.close()
+
+def get_file_md5(file):
+ MD5 = hashlib.new('md5')
+ with open(file, 'r') as fp:
+ MD5.update(fp.read().encode('utf8'))
+ fp_md5 = MD5.hexdigest()
+ return fp_md5
+
def config():
mk_rtconfig('.config')
@@ -219,22 +228,22 @@ def menuconfig(RTT_ROOT):
os.environ['PKGS_ROOT'] = os.path.join(env_dir, 'packages')
fn = '.config'
-
- if os.path.isfile(fn):
- mtime = os.path.getmtime(fn)
- else:
- mtime = -1
+ fn_old = '.config.old'
kconfig_cmd = os.path.join(RTT_ROOT, 'tools', 'kconfig-frontends', 'kconfig-mconf')
os.system(kconfig_cmd + ' Kconfig')
if os.path.isfile(fn):
- mtime2 = os.path.getmtime(fn)
+ if os.path.isfile(fn_old):
+ diff_eq = operator.eq(get_file_md5(fn), get_file_md5(fn_old))
+ else:
+ diff_eq = False
else:
- mtime2 = -1
+ sys.exit(-1)
# make rtconfig.h
- if mtime != mtime2:
+ if diff_eq == False:
+ shutil.copyfile(fn, fn_old)
mk_rtconfig(fn)
# guiconfig for windows and linux
@@ -249,22 +258,22 @@ def guiconfig(RTT_ROOT):
os.environ['PKGS_ROOT'] = os.path.join(env_dir, 'packages')
fn = '.config'
-
- if os.path.isfile(fn):
- mtime = os.path.getmtime(fn)
- else:
- mtime = -1
+ fn_old = '.config.old'
sys.argv = ['guiconfig', 'Kconfig'];
pyguiconfig._main()
if os.path.isfile(fn):
- mtime2 = os.path.getmtime(fn)
+ if os.path.isfile(fn_old):
+ diff_eq = operator.eq(get_file_md5(fn), get_file_md5(fn_old))
+ else:
+ diff_eq = False
else:
- mtime2 = -1
+ sys.exit(-1)
# make rtconfig.h
- if mtime != mtime2:
+ if diff_eq == False:
+ shutil.copyfile(fn, fn_old)
mk_rtconfig(fn)