#!/bin/sh
''''[ ! -z $VIRTUAL_ENV ] && exec python -u -- "$0" ${1+"$@"}; command -v python3 > /dev/null && exec python3 -u -- "$0" ${1+"$@"}; exec python2 -u -- "$0" ${1+"$@"} # '''

import sys
import os
import argparse

READIES_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), ".."))
sys.path.insert(0, READIES_PATH)
import paella

parser = argparse.ArgumentParser(description='Report platform characteristics.')
parser.add_argument('-t', '--triplet', action="store_true", help='os-nick-arch triplet')
parser.add_argument('--os', action="store_true", help='Operating system')
parser.add_argument('--version', action="store_true", help='OS/Distribution version')
parser.add_argument('--dist', action="store_true", help='Linux distribution (if applicable)')
parser.add_argument('--osnick', action="store_true", help='OS/distribution/version is a single word')
parser.add_argument('--arch', action="store_true", help='CPU Architecture')
parser.add_argument('--kernel', action="store_true", help='Kernel version (if applicable)')
parser.add_argument('--glibc', action="store_true", help='GLIBC version (if applicable)')
parser.add_argument('--strict', action="store_true", help='Fail if cannot identify platform')
parser.add_argument('--debian?', action="store_true", help='is Debian-like distribution?')
parser.add_argument('--redhat?', action="store_true", help='is Redhat-like distribution?')

args = parser.parse_args()

try:
    platform = paella.Platform(strict=args.strict)
except:
    eprint("platform: cannot identify")
    exit(1)

BB()
if args.__dict__['debian?']:
	sys.exit(0 if platform.is_debian_compat() else 1)

if args.__dict__['redhat?']:
	sys.exit(0 if platform.is_redhat_compat() else 1)

ret = ""
if args.triplet:
	ret += " " + platform.triplet()
if args.os:
	ret += " " + platform.os
if args.osnick:
	ret += " " + platform.osnick
if args.dist:
	ret += " " + platform.dist
if args.version:
	ret += " " + platform.os_ver
if args.arch:
	ret += " " + platform.arch
if args.kernel:
	pass
if args.glibc:
	pass
if ret == "":
    os = platform.os
    dist = platform.dist
    if dist != "":
        os = dist + " " + os
    if platform.osnick != "":
        nick = " (" + platform.osnick + ")"
    else:
        nick = ""
    ret = os + " " + platform.os_ver + nick + " " + platform.arch
if ret.strip() != "":
	print(ret.strip())
