#!/usr/bin/python2
############################################################
#
# This script provides the file naming scheme for
# various build products (Switch Images, Installers, etc)
#
import argparse
import json

ap=argparse.ArgumentParser(description="ONL File Namer")
ap.add_argument("--type",      help="File Type.", choices = [ 'swi', 'installer' ], required=True)
ap.add_argument("--manifest",  help="File manifest.", required=True)
ap.add_argument("file",        help="File.")
ops = ap.parse_args()

manifest = json.load(open(ops.manifest))
versions = manifest['version']
versions['UARCH'] = manifest['arch'].upper().replace("POWERPC","PPC")
versions['OS_RELEASE_VERSION_ID'] = manifest['os-release']['VERSION_ID']

if ops.type == 'swi':
    print "%(FNAME_PRODUCT_VERSION)s_ONL-OS%(OS_RELEASE_VERSION_ID)s_%(FNAME_BUILD_ID)s_%(UARCH)s.swi" % versions
elif ops.type == 'installer':
    print "%(FNAME_PRODUCT_VERSION)s_ONL-OS%(OS_RELEASE_VERSION_ID)s_%(FNAME_BUILD_ID)s_%(UARCH)s_INSTALLER" % versions
else:
    raise ValueError("Unknown type '%s'" % ops.type)
