#!/bin/sh
#rebuild loaded or installed pfs
#VERSION 4.4

if [ -f $(dirname $0)/pfs ] ;  then
    . $(dirname $0)/pfs
else 
    . $(which pfs) || exit 13 
fi    

#help
HLP(){
echo "Usage: $(basename "$0") <PACKAGE> <args for mkpfs>"
exit 1
}

case "$1" in
    "" | -h | --help)  HLP ;;
    "-"*[A-Za-z]*) echo "$(basename "$0"): invalid option -- $1" ; HLP ;;
esac

allow_only_root
package_name=$(basename ${1%.$EXT})
bundle=$(aufs-n --hidetop --raw '$bundle' |grep "$package_name" |tail -n1)
shift

fileslist="${PFSDIR}/install/${package_name}/pfs.files"
[ -f $fileslist ] || fileslist="${PFSDIR}/mount/${package_name}/pfs.files"

if [ -n "${bundle}" -o -f ${fileslist} ] ; then 
  buildir="./build_${package_name}/${package_name}"
  mkdir -p "$buildir"
  if ! [ -f ${fileslist} ]  ; then
		mklist source_root="${bundle}" dest_root='/' pack_name="${package_name}"
		RMLIST="yes"
  fi
  cp -fax ${bundle}/* "${buildir}/" 
  cpio -pud ${buildir} < "$fileslist"
  # --nopfs parameter - make build dir and exit 
  if echo "$@" | grep -q "\-nopfs" ; then 
	rm -rf ./${package_name} && mv -f ${buildir} ./
  else
	mkpfs  ${buildir} -o ${package_name}.$EXT $@
	exitmsg "can't create module" $?
  fi
  rm -rf ./build_${package_name}
else
  echo "Package \"$package_name\" is not installed!" >&2; #exit 1
fi
[ "$RMLIST" ] && rm -rf $(dirname ${fileslist})

exit 0
