Message ID | 20240802124236.2895857-1-anders.roxell@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | scripts: kconfig: merge_config: config files: add a trailing newline | expand |
On Fri, Aug 2, 2024 at 9:42 PM Anders Roxell <anders.roxell@linaro.org> wrote: > > When merging files without trailing newlines a the end of the file, two > config fragments end up at the same row if file1.config doens't have a > trailing newline at the end of the file. > > file1.config "CONFIG_1=y" > file2.config "CONFIG_2=y" > ./scripts/kconfig/merge_config.sh -m .config file1.config file2.config > > this will generate a .config lookingn like this. > cat .config > ... > CONFIG_1=yCONFIG_2=y" > > Making sure so we add a newline at the end of every config file that is > passed into the script. > > Signed-off-by: Anders Roxell <anders.roxell@linaro.org> > --- > scripts/kconfig/merge_config.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh > index 902eb429b9db..ce1b77ee043b 100755 > --- a/scripts/kconfig/merge_config.sh > +++ b/scripts/kconfig/merge_config.sh > @@ -136,7 +136,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do > echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2 > exit 1 > fi > - cat $ORIG_MERGE_FILE > $MERGE_FILE > + cat $ORIG_MERGE_FILE | sed -e '$a\' > $MERGE_FILE Is the pipe necessary? This seems to be equivalent to: sed -e '$a\' $ORIG_MERGE_FILE > $MERGE_FILE This issue also happens if $INITFILE lacks a newline at the end. I think the right place to insert a line is there: # In case the previous file lacks a new line at the end echo >> $TMP_FILE cat $MERGE_FILE >> $TMP_FILE I am fine with always inserting a line between files.
On Sat, 3 Aug 2024 at 16:26, Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Fri, Aug 2, 2024 at 9:42 PM Anders Roxell <anders.roxell@linaro.org> wrote: > > > > When merging files without trailing newlines a the end of the file, two > > config fragments end up at the same row if file1.config doens't have a > > trailing newline at the end of the file. > > > > file1.config "CONFIG_1=y" > > file2.config "CONFIG_2=y" > > ./scripts/kconfig/merge_config.sh -m .config file1.config file2.config > > > > this will generate a .config lookingn like this. > > cat .config > > ... > > CONFIG_1=yCONFIG_2=y" > > > > Making sure so we add a newline at the end of every config file that is > > passed into the script. > > > > Signed-off-by: Anders Roxell <anders.roxell@linaro.org> > > --- > > scripts/kconfig/merge_config.sh | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh > > index 902eb429b9db..ce1b77ee043b 100755 > > --- a/scripts/kconfig/merge_config.sh > > +++ b/scripts/kconfig/merge_config.sh > > @@ -136,7 +136,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do > > echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2 > > exit 1 > > fi > > - cat $ORIG_MERGE_FILE > $MERGE_FILE > > + cat $ORIG_MERGE_FILE | sed -e '$a\' > $MERGE_FILE > > > Is the pipe necessary? This seems to be equivalent to: > > sed -e '$a\' $ORIG_MERGE_FILE > $MERGE_FILE > > > > > > > This issue also happens if $INITFILE lacks a newline at the end. > > > I think the right place to insert a line is there: > > > # In case the previous file lacks a new line at the end > echo >> $TMP_FILE > cat $MERGE_FILE >> $TMP_FILE > > > I am fine with always inserting a line between files. Thank you Masahiro for your review. Sending a v2 shortly. Cheers, Anders
diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh index 902eb429b9db..ce1b77ee043b 100755 --- a/scripts/kconfig/merge_config.sh +++ b/scripts/kconfig/merge_config.sh @@ -136,7 +136,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2 exit 1 fi - cat $ORIG_MERGE_FILE > $MERGE_FILE + cat $ORIG_MERGE_FILE | sed -e '$a\' > $MERGE_FILE CFG_LIST=$(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $MERGE_FILE) for CFG in $CFG_LIST ; do
When merging files without trailing newlines a the end of the file, two config fragments end up at the same row if file1.config doens't have a trailing newline at the end of the file. file1.config "CONFIG_1=y" file2.config "CONFIG_2=y" ./scripts/kconfig/merge_config.sh -m .config file1.config file2.config this will generate a .config lookingn like this. cat .config ... CONFIG_1=yCONFIG_2=y" Making sure so we add a newline at the end of every config file that is passed into the script. Signed-off-by: Anders Roxell <anders.roxell@linaro.org> --- scripts/kconfig/merge_config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)