#!/bin/bash
set -x
set -e
TARGET_DIR=$1
TARGET_SKELETON=$2
PLATFORM_PREFIX=$3
PROD=$4
UNSIGNED=$5
BINARIES_DIR=$TARGET_DIR/../images

# Some skeleton files are overwritten by installed packages. Recover them to
# the customized skeleton files.
support/scripts/copy-skeleton.sh "$TARGET_DIR" "$TARGET_SKELETON" "$PLATFORM_PREFIX"

# Strip out some files from the target file system that we shouldn't need.
echo "!!!!!!!!!! Stripping $TARGET_DIR "
support/scripts/strip-skeleton.sh "$TARGET_DIR"
echo "!!!!!!!!!! DONE Stripping $TARGET_DIR "

# Generate /etc/manifest, /etc/version, /etc/softwaredate
rm -f "$TARGET_DIR/etc/manifest"

if support/scripts/is-repo.sh; then
  repo --no-pager manifest -r -o "$TARGET_DIR/etc/manifest"
elif support/scripts/is-git.sh; then
  ( cd .. &&
    echo -n 'commitid ' &&
    git describe --no-abbrev --always
  ) >"$TARGET_DIR/etc/manifest"
else
  echo "ERROR: No version control folder found" >&2
  exit 1;
fi

version="${PLATFORM_PREFIX}$(support/scripts/version.sh)"
echo -n "$version" >"$TARGET_DIR/etc/version" 2>/dev/null
echo -n "fiberos" >"$TARGET_DIR/etc/os" 2>/dev/null

if [ "$PROD" != "y" ]; then
  echo -n "-$(whoami | cut -c1-2)" >>$TARGET_DIR/etc/version
fi
if [ "$UNSIGNED" == "y" ]; then
  echo -n '-unsigned' >>$TARGET_DIR/etc/version
fi
cp "$TARGET_DIR/etc/version" "$BINARIES_DIR/version"
(d="$(git log --date=iso --pretty=%ad -1)"; date +%s --date="$d"; echo "$d") \
  >$TARGET_DIR/etc/softwaredate

# Installer support for VFAT platforms (and harmless elsewhere)
mkdir -p $TARGET_DIR/install

# SpaceCast production build
if [ "$PLATFORM_PREFIX" = "gfsc100" -a "$PROD" = "y" ]; then
  # Disable root password login.
  sed -i 's/^root:[^:]*:/root:!:/' $TARGET_DIR/etc/passwd
  # Disable serial console.
  sed -i '/rungetty/d' $TARGET_DIR/etc/inittab
  echo "psi1:1:wait:/sbin/prodsysinfo /dev/ttyS0" >>$TARGET_DIR/etc/inittab
fi
