mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
scripts/gen_initramfs_list.sh: Convert to a /bin/sh script
Replace bashisms with POSIX-compatible shell scripting. Notably, de-duplicate '/' using a sed command from elsewhere in the same script rather than "${name//\/\///}". Commit by Jamey Sharp and Josh Triplett. Signed-off-by: Jamey Sharp <jamey@minilop.net> Signed-off-by: Josh Triplett <josh@joshtriplett.org> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
parent
43f67c9816
commit
153f011470
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
|
# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
|
||||||
# Copyright (C) 2006 Sam Ravnborg <sam@ravnborg.org>
|
# Copyright (C) 2006 Sam Ravnborg <sam@ravnborg.org>
|
||||||
#
|
#
|
||||||
@ -105,9 +105,9 @@ list_parse() {
|
|||||||
# for links, devices etc the format differs. See gen_init_cpio for details
|
# for links, devices etc the format differs. See gen_init_cpio for details
|
||||||
parse() {
|
parse() {
|
||||||
local location="$1"
|
local location="$1"
|
||||||
local name="${location/${srcdir}//}"
|
local name="/${location#${srcdir}}"
|
||||||
# change '//' into '/'
|
# change '//' into '/'
|
||||||
name="${name//\/\///}"
|
name=$(echo "$name" | sed -e 's://*:/:g')
|
||||||
local mode="$2"
|
local mode="$2"
|
||||||
local uid="$3"
|
local uid="$3"
|
||||||
local gid="$4"
|
local gid="$4"
|
||||||
@ -117,8 +117,8 @@ parse() {
|
|||||||
[ "$root_gid" = "squash" ] && gid=0 || [ "$gid" -eq "$root_gid" ] && gid=0
|
[ "$root_gid" = "squash" ] && gid=0 || [ "$gid" -eq "$root_gid" ] && gid=0
|
||||||
local str="${mode} ${uid} ${gid}"
|
local str="${mode} ${uid} ${gid}"
|
||||||
|
|
||||||
[ "${ftype}" == "invalid" ] && return 0
|
[ "${ftype}" = "invalid" ] && return 0
|
||||||
[ "${location}" == "${srcdir}" ] && return 0
|
[ "${location}" = "${srcdir}" ] && return 0
|
||||||
|
|
||||||
case "${ftype}" in
|
case "${ftype}" in
|
||||||
"file")
|
"file")
|
||||||
@ -192,7 +192,7 @@ input_file() {
|
|||||||
if [ -f "$1" ]; then
|
if [ -f "$1" ]; then
|
||||||
${dep_list}header "$1"
|
${dep_list}header "$1"
|
||||||
is_cpio="$(echo "$1" | sed 's/^.*\.cpio\(\..*\)\?/cpio/')"
|
is_cpio="$(echo "$1" | sed 's/^.*\.cpio\(\..*\)\?/cpio/')"
|
||||||
if [ $2 -eq 0 -a ${is_cpio} == "cpio" ]; then
|
if [ $2 -eq 0 -a ${is_cpio} = "cpio" ]; then
|
||||||
cpio_file=$1
|
cpio_file=$1
|
||||||
echo "$1" | grep -q '^.*\.cpio\..*' && is_cpio_compressed="compressed"
|
echo "$1" | grep -q '^.*\.cpio\..*' && is_cpio_compressed="compressed"
|
||||||
[ ! -z ${dep_list} ] && echo "$1"
|
[ ! -z ${dep_list} ] && echo "$1"
|
||||||
@ -204,7 +204,7 @@ input_file() {
|
|||||||
else
|
else
|
||||||
echo "$1 \\"
|
echo "$1 \\"
|
||||||
cat "$1" | while read type dir file perm ; do
|
cat "$1" | while read type dir file perm ; do
|
||||||
if [ "$type" == "file" ]; then
|
if [ "$type" = "file" ]; then
|
||||||
echo "$file \\";
|
echo "$file \\";
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user