# Part of the A-A-P recipe executive: store the command line arguments.

# Copyright (C) 2002 Stichting NLnet Labs
# Permission to copy and use this file is specified in the file COPYING.
# If this file is missing you can find it here: http://www.a-a-p.org/COPYING


# An Args object contains the processed command line arguments.
# It consists of these items:
#  options   -  dictionary of options
#               the key is the long name of the option
#               each item is a number or a string
#               "aap -f foo" -> options["recipe"] = "foo"
#  values    -  dictionary of variables assigned a value
#               each item is a string
#               "aap bar=asdf" -> values["bar"] = "asdf"
#  targets   -  list of targets
#               each item is a string
#               "aap clean" -> "clean" target

import types
import string

class Args:
   def __init__(self):
       self.options = {}
       self.values = {}
       self.targets = []

   def has_option(self, name):
       return self.options.has_key(name)

   def printit(self):
       """print the contents of the attributes (for debugging)"""

       print "Options:"
       for o in self.options.keys():
           if self.options[o]:
               if type(self.options[o]) is types.ListType:
                   print "    " + o + ": " + string.join(self.options[o])
               else:
                   print "    " + o + ": " + self.options[o]
           else:
               print "    " + o

       print "Values:"
       for v in self.values.keys():
           print "    " + v + "=" + self.values[v]

       print "Targets:"
       for t in self.targets:
           print "    " + t

# vim: set sw=4 sts=4 tw=79 fo+=l: