[arch-projects] [mkinitcpio][PATCH 06/10] use bsdcpio to create images
Dave Reisner
d at falconindy.com
Mon Jun 6 15:28:14 EDT 2011
On Mon, Jun 06, 2011 at 09:13:50PM +0200, Tom Gundersen wrote:
> On Mon, Jun 6, 2011 at 5:30 PM, Dave Reisner <d at falconindy.com> wrote:
> > This is a departure from using gen_init_cpio, which proved to be a huge
> > bottleneck in performance. Tests for existance change from being a call
> > to grep, to a simple shell test.
> >
> > In the process, we have to modify the behavior of the -s option, and we
> > lose the -a option.
> >
> > Signed-off-by: Dave Reisner <d at falconindy.com>
>
> Ack. Comments inline.
>
> -t
>
> > @@ -93,28 +93,23 @@ add_full_dir ()
> >
> > add_dir ()
> > {
> > - #skip root directory and "." for relative directories... i.e. /foo/bar/./blah
> > - if [ -n "${1}" -a "${1}" != "/" -a "${1}" != "." ]; then
> > - if ! grep -q "dir ${1} " "${FILELIST}"; then
> > - add_dir $(get_dirname "${1}")
> > - msg " adding dir ${1}"
> > - echo "dir ${1} 755 0 0" >> "${FILELIST}"
> > - fi
> > + if [[ ! -e "$TMPDIR/root/$1" ]]; then
> > + msg " adding dir ${1}"
> > + command install -dm755 "$TMPDIR/root/$1"
> > fi
> > }
> >
> > -# what the hell does this do?
>
> Maybe an replacement comment to explain?
>
I thought it was quite obvious what it did, both before and after ;)
Every function in the 'functions' file should be commented, imo, since
it serves as sort of an API for install hooks. It's on my TODO list.
> > add_symlink ()
> > {
> > local fil dest dir
> > - if [ -h ${1} ]; then
> > + if [[ -h $1 ]]; then
> > fil="${1##$BASEDIR}"
> > dest="${2##$BASEDIR}"
> > add_dir $(get_dirname "${dest}")
> > add_dir $(get_dirname "${fil}")
> > - if ! grep -q "slink ${fil} " "${FILELIST}"; then
> > + if [[ ! -e "$TMPDIR/root/$dest" ]]; then
> > msg " adding link ${fil} -> ${dest}"
> > - echo "slink ${fil} ${dest} $(stat -c '%a' ${1}) 0 0" >> "${FILELIST}"
> > + ln -s "$dest" "$TMPDIR/root/$fil"
> > fi
> > fi
> > #fail quietly
>
> > @@ -49,7 +48,7 @@ usage ()
> > echo "${APPNAME}: usage"
> > echo " -c CONFIG Use CONFIG file. default: /etc/mkinitcpio.conf"
> > echo " -k KERNELVERSION Use KERNELVERSION. default: $(uname -r)"
> > - echo " -s NAME Save filelist. default: no"
> > + echo " -s Save build directory. default: no"
> > echo " -b BASEDIR Use BASEDIR. default: /"
> > echo " -g IMAGE Generate a cpio image as IMAGE. default: no"
> > echo " -a NAME Append to an existing filelist. default: no"
>
> This should be deleted too, no?
Indeed. Thanks.
d
More information about the arch-projects
mailing list