diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-04-29 14:27:16 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-04-29 14:27:16 +0000 |
commit | b287c9457c80c3dfa0d0ee5616f2f72058df7519 (patch) | |
tree | f1f6e9d24e50b09fe369cabcd4fb2efe682de756 /mkinitfs | |
parent | e38a53c61d4d4abceffcae9bc5b47be8aaec3b16 (diff) | |
download | mkinitfs-b287c9457c80c3dfa0d0ee5616f2f72058df7519.tar.bz2 mkinitfs-b287c9457c80c3dfa0d0ee5616f2f72058df7519.tar.xz |
generate version string in scripts
Diffstat (limited to 'mkinitfs')
-rwxr-xr-x | mkinitfs | 198 |
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 - |