62 lines
2.0 KiB
Bash
62 lines
2.0 KiB
Bash
|
#! /bin/bash
|
||
|
#############################################################################
|
||
|
# Copyright (C) 2007-2012 Laboratório de Sistemas e Tecnologia Subaquática #
|
||
|
# Departamento de Engenharia Electrotécnica e de Computadores #
|
||
|
# Rua Dr. Roberto Frias, 4200-465 Porto, Portugal #
|
||
|
#############################################################################
|
||
|
# Author: Ricardo Martins #
|
||
|
#############################################################################
|
||
|
# $Id:: $:#
|
||
|
#############################################################################
|
||
|
|
||
|
# Check shell type.
|
||
|
if [ -z "$BASH_VERSION" ]; then
|
||
|
echo "ERROR: you must use bash to run this script."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ $# -ne 1 ]; then
|
||
|
echo "Usage: $0 <config>"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if ! [ -f "$1" ]; then
|
||
|
echo "ERROR: configuration file '$1' does not exist."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
source "$1"
|
||
|
|
||
|
fakeroot_state='/tmp/.glued-fakeroot'
|
||
|
fakeroot="$cfg_dir_toolchain/bin/fakeroot -s $fakeroot_state -i $fakeroot_state"
|
||
|
|
||
|
rm "$fakeroot_state" && touch "$fakeroot_state"
|
||
|
|
||
|
$fakeroot -- chown -vR root:root "$cfg_dir_rootfs"
|
||
|
|
||
|
for d in bin sbin lib usr/bin usr/sbin usr/lib; do
|
||
|
$fakeroot -- chmod -vR 0755 "$cfg_dir_rootfs"/$d
|
||
|
$fakeroot -- chmod -vR 0755 "$cfg_dir_rootfs"/$d/*
|
||
|
$fakeroot -- chown -vR root:root "$cfg_dir_rootfs"/$d/*
|
||
|
done
|
||
|
|
||
|
for d in dev boot etc; do
|
||
|
$fakeroot -- chmod -vR 0755 "$cfg_dir_rootfs"/$d
|
||
|
$fakeroot -- chmod -vR 0644 "$cfg_dir_rootfs"/$d/*
|
||
|
done
|
||
|
|
||
|
# Write config vars.
|
||
|
set | sort | grep ^cfg_ | egrep -v '^cfg_dir|^cfg_target|^cfg_host_|^cfg_toolchain|^cfg_rootfs_tar|^cfg_partitions' > "$cfg_dir_rootfs/etc/config"
|
||
|
|
||
|
$fakeroot -- chmod -v 0700 "$cfg_dir_rootfs/root"
|
||
|
$fakeroot -- chmod -v 1777 "$cfg_dir_rootfs/tmp" "$cfg_dir_rootfs/var/tmp"
|
||
|
|
||
|
$fakeroot -- tar \
|
||
|
-p \
|
||
|
-j \
|
||
|
-c \
|
||
|
-v \
|
||
|
-C "$cfg_dir_rootfs" \
|
||
|
-f "$cfg_rootfs_tar" \
|
||
|
.
|