summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoão Henrique Ferreira de Freitas <joaohf@gmail.com>2014-02-16 18:40:58 -0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-20 14:22:19 +0000
commitf0dcbbdcc37da12f84f730b8235f50be8c150c50 (patch)
tree8f508e27e5018576d772d057e50bf04422f4235f
parentdb2a44c8f08f2371a52ff6662d6bc64bc42ad551 (diff)
downloadopenembedded-core-f0dcbbdcc37da12f84f730b8235f50be8c150c50.tar.gz
openembedded-core-f0dcbbdcc37da12f84f730b8235f50be8c150c50.tar.bz2
openembedded-core-f0dcbbdcc37da12f84f730b8235f50be8c150c50.zip
cml1.bbclass: Add diffconfig task to cml1
diffconfig() is a new task that makes a diff between the old and new config files and writes to the fragment.cfg result file. menuconfig() always copy the original config file, so the user doesn't need to copy it. Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r--meta/classes/cml1.bbclass33
1 files changed, 33 insertions, 0 deletions
diff --git a/meta/classes/cml1.bbclass b/meta/classes/cml1.bbclass
index e292ecbcf4..34c0c4e6c7 100644
--- a/meta/classes/cml1.bbclass
+++ b/meta/classes/cml1.bbclass
@@ -16,8 +16,11 @@ HOST_LOADLIBES = "-lncurses"
TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
python do_menuconfig() {
+ import shutil
+
try:
mtime = os.path.getmtime(".config")
+ shutil.copy(".config", ".config.orig")
except OSError:
mtime = 0
@@ -38,3 +41,33 @@ do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
do_menuconfig[nostamp] = "1"
addtask menuconfig after do_configure
+python do_diffconfig() {
+ import shutil
+ import subprocess
+
+ workdir = d.getVar('WORKDIR', True)
+ fragment = workdir + '/fragment.cfg'
+ configorig = '.config.orig'
+ config = '.config'
+
+ try:
+ md5newconfig = bb.utils.md5_file(configorig)
+ md5config = bb.utils.md5_file(config)
+ isdiff = md5newconfig != md5config
+ except IOError as e:
+ bb.fatal("No config files found. Did you do menuconfig ?\n%s" % e)
+
+ if isdiff:
+ statement = 'diff -Nurp ' + configorig + ' ' + config + '| sed -n "s/^\+//p" >' + fragment
+ subprocess.call(statement, shell=True)
+
+ shutil.copy(configorig, config)
+
+ bb.plain("Config fragment has been dumped into:\n %s" % fragment)
+ else:
+ if os.path.exists(fragment):
+ os.unlink(fragment)
+}
+
+do_diffconfig[nostamp] = "1"
+addtask diffconfig