aboutsummaryrefslogtreecommitdiffstats
path: root/mkinitfs
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-04-29 14:27:16 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-04-29 14:27:16 +0000
commitb287c9457c80c3dfa0d0ee5616f2f72058df7519 (patch)
treef1f6e9d24e50b09fe369cabcd4fb2efe682de756 /mkinitfs
parente38a53c61d4d4abceffcae9bc5b47be8aaec3b16 (diff)
downloadmkinitfs-b287c9457c80c3dfa0d0ee5616f2f72058df7519.tar.bz2
mkinitfs-b287c9457c80c3dfa0d0ee5616f2f72058df7519.tar.xz
generate version string in scripts
Diffstat (limited to 'mkinitfs')
-rwxr-xr-xmkinitfs198
1 files changed, 0 insertions, 198 deletions
diff --git a/mkinitfs b/mkinitfs
deleted file mode 100755
index af52edb..0000000
--- a/mkinitfs
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/bin/sh
-
-VERSION=1.0
-
-_cp() {
- local i
- if [ -n "$list_sources" ]; then
- for i in "$@"; do
- echo $i
- done
- return
- fi
-
- for i in "$@"; do
- local dest="$tmpdir"/${i%/*}
- mkdir -p "$dest"
- cp -flLpR "$i" "$dest" 2>/dev/null || cp -pR "$i" "$dest"
- done
-}
-
-feature_files() {
- local dir="$1"
- local glob file
- for f in $features; do
- if [ ! -f "$dir/$f" ]; then
- continue
- fi
- for glob in $(cat "$dir/$f"); do
- for file in $glob; do
- echo $glob
- done
- done
- done
-}
-
-initfs_base() {
- local i= dirs= glob= file=
- echo "==> initramfs: copying base files" >&2
- for i in dev proc sys sbin bin .modloop lib/modules media/cdrom \
- media/floppy media/usb newroot; do
- dirs="$dirs $tmpdir/$i"
- done
- [ -z "$list_sources" ] && mkdir -p $dirs
-
- for file in $(feature_files "$filelists_dir"); do
- _cp $file
- done
-
- # copy init
- if [ -z "$list_sources" ]; then
- cd $startdir
- install -m755 "$init" "$tmpdir"/init
- else
- echo "$init"
- fi
-}
-
-find_kmod_deps() {
- awk '
-function recursedeps(k, j) {
- if (k in visited)
- return;
- visited[k] = 1;
- split(deps[k], dep, " ");
- for (j in dep)
- recursedeps(dep[j]);
- print(k);
-}
-
-BEGIN {
- if (modulesdep == "")
- modulesdep="modules.dep";
- FS = ": ";
- while ( (getline < modulesdep) > 0) {
- deps[$1] = $2;
- }
-}
-
-{
- mod["/"$0] = 1;
-}
-
-END {
- for (i in mod)
- recursedeps(i);
-}' -v modulesdep="$basedir/lib/modules/$kernel/modules.dep"
-}
-
-initfs_kmods() {
- local glob= file= files= dirs=
- [ -z "$list_soruces" ] && rm -rf "$tmpdir"/lib/modules
- cd "$kerneldir" || return 1
- echo "==> initramfs: copying kernel $kernel modules" >&2
- files=$(
- for file in $(feature_files $modulelists_dir); do
- if ! [ -e ${file} ]; then
- echo "$file: No such file or directory" >&2
- continue
- fi
- echo $file
- done | find_kmod_deps)
- for file in $files; do
- _cp "$basedir"/lib/modules/$kernel/$file
- done
-}
-
-initfs_cpio() {
- [ -n "$list_sources" ] && return
- echo "==> initramfs: creating $outfile" >&2
- (cd "$tmpdir" && find . | cpio -o -H newc | gzip) > $outfile
-}
-
-usage() {
- cat <<EOF
-usage: mkinitfs [-hkLl] [-b basedir] [-c configfile] [-f features]
- [-i initfile ] [-o outfile] [-t tempdir] [kernelversion]"
-options:
- -b prefix files and kernel modules with basedir
- -c use configfile instead of $config
- -f use specified features
- -h print this help
- -i use initfile as init instead of $init
- -k keep tempdir
- -l only list files that would have been used
- -L list available features
- -o set another outfile
- -t use tempdir when creating initramfs image
-
-EOF
- exit 1
-}
-
-# main
-
-startdir=$PWD
-config=/etc/mkinitfs/mkinitfs.conf
-init=/usr/share/mkinitfs/initramfs-init
-
-while getopts "b:c:hi:kLlo:t:" opt; do
- case "$opt" in
- b) basedir="$OPTARG";;
- c) config="$OPTARG";;
- f) myfeatures="$OPTARG";;
- h) usage;;
- i) init=$OPTARG;;
- k) keeptmp=1;;
- L) list_features=1;;
- l) list_sources=1;;
- o) outfile="$OPTARG";;
- t) tmpdir="$OPTARG";;
- *) usage;;
- esac
-done
-shift $(( $OPTIND - 1 ))
-
-. "$config"
-filelists_dir=${filelists_dir:-"/etc/mkinitfs/files.d"}
-modulelists_dir=${modules_dir:-"/etc/mkinitfs/modules.d"}
-[ -n "$myfeatures" ] && features="$myfeatures"
-
-if [ -n "$list_features" ]; then
- for i in $filelists_dir $modulelists_dir; do
- ( [ -d "$i" ] && cd $i && ls )
- done | sort | uniq
- exit 0
-fi
-
-[ -n "$1" ] && kernel="$1"
-[ -z "$kernel" ] && kernel=$(uname -r)
-kerneldir="$basedir/lib/modules/$kernel"
-if [ -z "$outfile" ]; then
- outfile="$basedir"/boot/${kernel##*-}.gz
-fi
-
-if [ ! -d "$kerneldir" ]; then
- echo "$kerneldir does not exist or is not a directory"
- exit 1
-fi
-
-if [ -z "$tmpdir" ]; then
- tmpdir=$(mktemp -d /tmp/mkinitfs.XXXXXX)
-else
- mkdir -p "$tmpdir"
-fi
-
-if [ -z "$keeptmp" ]; then
- [ -d "$tmpdir" ] && rm -rf "$tmpdir"/*
-fi
-
-initfs_base
-initfs_kmods
-initfs_cpio
-
-# cleanup
-if [ -z "$keeptmp" ]; then
- [ -d "$tmpdir" ] && rm -rf "$tmpdir"
-fi
-