#!/usr/bin/env python3

# Copyright (c) 2021 Arista Networks, Inc.  All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.

import argparse
import sys

import TpmGeneric.Defs as TpmDefs
from TpmGeneric.Tpm import TpmGeneric

def main():
   def _getSbToggleBitFromName( bitName ):
      try:
         # pylint: disable-msg=unsubscriptable-object
         return TpmDefs.SBToggleBit[ bitName.upper() ]
      except KeyError:
         raise ValueError()

   parser = argparse.ArgumentParser( description='Check if a config bit is set' )
   parser.add_argument( 'config', metavar='CONFIG_NAME',
                        type=_getSbToggleBitFromName,
                        choices=list( TpmDefs.SBToggleBit ),
                        help='Name of the config bit to check' )
   args = parser.parse_args()

   try:
      tpm = TpmGeneric()
      # For shell scripts, 0 = true
      return not bool( tpm.isToggleBitSet( args.config.value ) )
   except TpmDefs.Error:
      return 1

if __name__ == '__main__':
   sys.exit( main() )
