# Silo Tilt extension
# Usage:
#   load('./tilt-extensions/silo/Tiltfile', 'require_silo')
#   require_silo()
#
# From npm (recommended for CI):
#   load('./node_modules/@0xbigboss/silo/tilt-extensions/silo/require/Tiltfile', 'SILO_REQUIRE')
#
# Remote (GitHub extension repo):
#   v1alpha1.extension_repo(name='silo', url='https://github.com/alleneubank/silo')
#   v1alpha1.extension(name='silo-require', repo_name='silo', repo_path='tilt-extensions/silo/require')
#   load('ext://silo-require', 'SILO_REQUIRE')

def _normalize_bool(value):
    if value == None:
        return False
    text = str(value).strip().lower()
    return text in ['1', 'true', 'yes', 'on']


def is_silo_active():
    return _normalize_bool(os.getenv('SILO_ACTIVE'))


def require_silo(message=None):
    if is_silo_active():
        return
    default_message = 'This Tiltfile must be run via `silo up` (SILO_ACTIVE not set).'
    fail(message or default_message)
