#!/bin/sh
#
# Returns 0 (true) if this device's platform string indicates it
# is a Google Fiber Media Server, and 1 (false) otherwise.  A GFMS
# has a hard drive and should act as a storage server.
#
# This might be extended later to include other model numbers.
#
# NOTE: Don't test for "! is-storage-box" to see if this device is a TV
# box.  Someday there might be a storage box and a TV box combined, or
# something, or there may be some third kind of box that's for neither
# storage nor TV.  Use "is-tv-box" instead for TV features.
#
. /etc/utils.sh
read plat </etc/platform
if [ -e /rw/force-storage-box ] ||
    startswith "$plat" 'GFMS' ||
    [ "$plat" = GFRG210 ] ||
    [ "$plat" = GFRG250 ]; then
  exit 0
else
  exit 1
fi
