Local Mirror Of SmartOS Live Build Environment
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
1.9 KiB

#!/bin/bash
#
# Copyright (c) 2010 Joyent Inc., All rights reserved.
#
ROOT=$1
DIR=$2
command="pfexec find $DIR -ls | sort"
if [ ! -z ${ROOT} ] && [ "${ROOT}" == "-" ]; then
ROOT="/"
DIR="-"
command="cat -"
fi
if [ -z "${ROOT}" ] || [ -z "${DIR}" ]; then
echo ""
echo "Use this program to create manifest entries for use with the live image creation"
echo "script. eg. '$0 / etc' will generate a manifest list that could be used for /etc"
echo ""
echo "Usage: $0 <ROOT> <DIR>"
exit 1
fi
cd ${ROOT}
sh -c "${command}" | \
{
while read line; do
# Squeeze multiple spaces/tabs into one space
line=`echo "${line}" | sed -e "s/ / /" | tr -s ' '`
# Remove leading/trailing spaces
line=`echo "${line}" | sed -e "s/ +$//" | sed -e "s/^ +//"`
echo "${line}" | { read l_inode l_size l_hmode l_links l_user l_group l_size l_month l_day l_year l_path ;
l_md5sum=
l_type=`echo "${l_hmode}" | cut -c1`
if [ "${l_type}" != "l" ] && [ "${l_type}" != "c" ] && [ "${l_type}" != "b" ]; then
l_mode=`pfexec stat --printf "%04a" ${l_path}`
else
l_type="s"
l_path=`echo "${l_path}" | sed -e "s/ -> /=/"`
l_mode= #"0777"
l_user= #"root"
l_group= #"root"
fi
if [ "${l_type}" == "-" ]; then
l_type="f"
fi
if [ "${l_type}" == "f" ] && [ ! -z "${INCLUDE_MD5SUM}" ]; then
# include md5sum for files if requested.
l_md5sum=`md5sum ${l_path} | cut -d' ' -f1`
fi
# ignore char and block devices for now
if [ "${l_type}" != "c" ] && [ "${l_type}" != "b" ]; then
echo "${l_type} ${l_path} ${l_mode} ${l_user} ${l_group} ${l_md5sum}" \
| sed -e "s/ +$//"
fi
}
done
}