mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 15:32:13 +02:00
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. (From OE-Core rev: f0dcbbdcc37da12f84f730b8235f50be8c150c50) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
07e59b5ff6
commit
4166062ea7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user