Patchwork populate-volatile.sh: normalize repeated leading slashes in TNAME

login
register
mail settings
Submitter Jonathan Liu
Date May 20, 2013, 1:29 a.m.
Message ID <1369013370-21391-1-git-send-email-net147@gmail.com>
Download mbox | patch
Permalink /patch/50117/
State Superseded, archived
Headers show

Comments

Jonathan Liu - May 20, 2013, 1:29 a.m.
Signed-off-by: Jonathan Liu <net147@gmail.com>
---
 meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Phil Blundell - May 20, 2013, 9:19 a.m.
On Mon, 2013-05-20 at 11:29 +1000, Jonathan Liu wrote:
> -		TNAME=${ROOT_DIR}/${TNAME}
> +		TNAME=`echo ${ROOT_DIR}/${TNAME} | sed -e 's@^//*@/@'`

Why is this a good thing?  Your commit message is rather terse.

p.
Jonathan Liu - May 20, 2013, 9:23 a.m.
On 20/05/2013 7:19 PM, Phil Blundell wrote:
> On Mon, 2013-05-20 at 11:29 +1000, Jonathan Liu wrote:
>> -		TNAME=${ROOT_DIR}/${TNAME}
>> +		TNAME=`echo ${ROOT_DIR}/${TNAME} | sed -e 's@^//*@/@'`
> Why is this a good thing?  Your commit message is rather terse.
>
> p.
It reduces the size of /etc/volatile.cache.
Otherwise for example if you have ROOT_DIR=/, TNAME=/var/log, TNAME 
becomes ///var/log.
Also if you have verbose mode enabled it actually prints out the extra 
unnecessary leading slashes.

Regards,
Jonathan
Phil Blundell - May 20, 2013, 9:38 a.m.
On Mon, 2013-05-20 at 19:23 +1000, Jonathan Liu wrote:
> On 20/05/2013 7:19 PM, Phil Blundell wrote:
> > On Mon, 2013-05-20 at 11:29 +1000, Jonathan Liu wrote:
> >> -		TNAME=${ROOT_DIR}/${TNAME}
> >> +		TNAME=`echo ${ROOT_DIR}/${TNAME} | sed -e 's@^//*@/@'`
> > Why is this a good thing?  Your commit message is rather terse.
> >
> > p.
> It reduces the size of /etc/volatile.cache.
> Otherwise for example if you have ROOT_DIR=/, TNAME=/var/log, TNAME 
> becomes ///var/log.
>
> Also if you have verbose mode enabled it actually prints out the extra 
> unnecessary leading slashes.

How many bytes does it actually save on a typical system?  Is this worth
the overhead of forking an extra 2 processes for every line in the
file?  

Would it not be better fixed by requiring TNAME to start with a slash
(which it probably does already), ROOT_DIR to not end with a slash, and
just dropping the intermediate separator?

p.
Jonathan Liu - May 20, 2013, 10 a.m.
On 20/05/2013 7:38 PM, Phil Blundell wrote:
> On Mon, 2013-05-20 at 19:23 +1000, Jonathan Liu wrote:
>> On 20/05/2013 7:19 PM, Phil Blundell wrote:
>>> On Mon, 2013-05-20 at 11:29 +1000, Jonathan Liu wrote:
>>>> -		TNAME=${ROOT_DIR}/${TNAME}
>>>> +		TNAME=`echo ${ROOT_DIR}/${TNAME} | sed -e 's@^//*@/@'`
>>> Why is this a good thing?  Your commit message is rather terse.
>>>
>>> p.
>> It reduces the size of /etc/volatile.cache.
>> Otherwise for example if you have ROOT_DIR=/, TNAME=/var/log, TNAME
>> becomes ///var/log.
>>
>> Also if you have verbose mode enabled it actually prints out the extra
>> unnecessary leading slashes.
> How many bytes does it actually save on a typical system?  Is this worth
> the overhead of forking an extra 2 processes for every line in the
> file?
>
> Would it not be better fixed by requiring TNAME to start with a slash
> (which it probably does already), ROOT_DIR to not end with a slash, and
> just dropping the intermediate separator?
>
> p.
That does sound like a better solution, let's go with that.

Regards,
Jonathan

Patch

diff --git a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
index ab09231..bbc1f35 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -150,7 +150,7 @@  apply_cfgfile() {
 	cat ${CFGFILE} | grep -v "^#" | \
 		while read LINE; do
 		eval `echo "$LINE" | sed -n "s/\(.*\)\ \(.*\) \(.*\)\ \(.*\)\ \(.*\)\ \(.*\)/TTYPE=\1 ; TUSER=\2; TGROUP=\3; TMODE=\4; TNAME=\5 TLTARGET=\6/p"`
-		TNAME=${ROOT_DIR}/${TNAME}
+		TNAME=`echo ${ROOT_DIR}/${TNAME} | sed -e 's@^//*@/@'`
 		[ "${VERBOSE}" != "no" ] && echo "Checking for -${TNAME}-."
 
 		[ "${TTYPE}" = "l" ] && {