- """Parse the options passed on the command line."""
- import optparse
- usage = "usage: %prog [ options ] [ alias [ alias [...] ] ]"
- verstring = "%prog " + version
- option_parser = optparse.OptionParser(usage=usage, version=verstring)
- if config.has_option("default", "city"):
- default_city = config.get("default", "city")
- else: default_city = "Raleigh Durham"
- option_parser.add_option("-c", "--city",
- dest="city",
- default=default_city,
- help="the city name (ex: \"Raleigh Durham\")")
- if config.has_option("default", "forecast"):
- default_forecast = bool(config.get("default", "forecast"))
- else: default_forecast = False
- option_parser.add_option("-f", "--forecast",
- dest="forecast",
- action="store_true",
- default=default_forecast,
- help="include a local forecast")
- if config.has_option("default", "id"):
- default_id = config.get("default", "id")
- else: default_id = "KRDU"
- option_parser.add_option("-i", "--id",
- dest="id",
- default=default_id,
- help="the METAR station ID (ex: KRDU)")
- option_parser.add_option("-l", "--list",
- dest="list",
- action="store_true",
- default=False,
- help="print a list of configured aliases")
- if config.has_option("default", "conditions"):
- default_conditions = bool(config.get("default", "conditions"))
- else: default_conditions = True
- option_parser.add_option("-n", "--no-conditions",
- dest="conditions",
- action="store_false",
- default=default_conditions,
- help="disable output of current conditions (forces -f)")
- option_parser.add_option("-o", "--omit-forecast",
- dest="forecast",
- action="store_false",
- default=default_forecast,
- help="omit the local forecast (cancels -f)")
- if config.has_option("default", "st"):
- default_st = config.get("default", "st")
- else: default_st = "NC"
- option_parser.add_option("-s", "--st",
- dest="st",
- default=default_st,
- help="the state abbreviation (ex: NC)")
- if config.has_option("default", "verbose"):
- default_verbose = bool(config.get("default", "verbose"))
- else: default_verbose = False
- option_parser.add_option("-v", "--verbose",
- dest="verbose",
- action="store_true",
- default=default_verbose,
- help="show full decoded feeds")
- options, arguments = option_parser.parse_args()
- return options, arguments
+ """Parse the options passed on the command line."""
+
+ # for optparse's builtin -h/--help option
+ usage = "usage: %prog [ options ] [ alias [ alias [...] ] ]"
+
+ # for optparse's builtin --version option
+ verstring = "%prog " + version
+
+ # create the parser
+ import optparse
+ option_parser = optparse.OptionParser(usage=usage, version=verstring)
+
+ # the -a/--alert option
+ if config.has_option("default", "alert"):
+ default_alert = bool(config.get("default", "alert"))
+ else: default_alert = False
+ option_parser.add_option("-a", "--alert",
+ dest="alert",
+ action="store_true",
+ default=default_alert,
+ help="include local alert notices")
+
+ # the --atypes option
+ if config.has_option("default", "atypes"):
+ default_atypes = config.get("default", "atypes")
+ else:
+ default_atypes = \
+ "flash_flood/statement," \
+ + "flash_flood/warning," \
+ + "flash_flood/watch," \
+ + "flood/coastal," \
+ + "flood/statement," \
+ + "flood/warning," \
+ + "non_precip," \
+ + "severe_weather_stmt," \
+ + "special_weather_stmt," \
+ + "thunderstorm," \
+ + "tornado," \
+ + "urgent_weather_message"
+ option_parser.add_option("--atypes",
+ dest="atypes",
+ default=default_atypes,
+ help="alert notification types to display")
+
+ # the --aurl option
+ if config.has_option("default", "aurl"):
+ default_aurl = config.get("default", "aurl")
+ else:
+ default_aurl = \
+ "http://weather.noaa.gov/pub/data/watches_warnings/%atype%/%zone%.txt"
+ option_parser.add_option("--aurl",
+ dest="aurl",
+ default=default_aurl,
+ help="alert URL (including %atype% and %zone%)")
+
+ # separate options object from list of arguments and return both
+ # the -c/--city option
+ if config.has_option("default", "city"):
+ default_city = config.get("default", "city")
+ else: default_city = ""
+ option_parser.add_option("-c", "--city",
+ dest="city",
+ default=default_city,
+ help="the city name (ex: \"Raleigh Durham\")")
+
+ # the --flines option
+ if config.has_option("default", "flines"):
+ default_flines = config.get("default", "flines")
+ else: default_flines = "0"
+ option_parser.add_option("--flines",
+ dest="flines",
+ default=default_flines,
+ help="maximum number of forecast lines to show")
+
+ # the -f/--forecast option
+ if config.has_option("default", "forecast"):
+ default_forecast = bool(config.get("default", "forecast"))
+ else: default_forecast = False
+ option_parser.add_option("-f", "--forecast",
+ dest="forecast",
+ action="store_true",
+ default=default_forecast,
+ help="include a local forecast")
+
+ # the --furl option
+ if config.has_option("default", "furl"):
+ default_furl = config.get("default", "furl")
+ else:
+ default_furl = \
+ "http://weather.noaa.gov/pub/data/forecasts/city/%st%/%city%.txt"
+ option_parser.add_option("--furl",
+ dest="furl",
+ default=default_furl,
+ help="forecast URL (including %city% and %st%)")
+
+ # the --headers option
+ if config.has_option("default", "headers"):
+ default_headers = config.get("default", "headers")
+ else:
+ default_headers = \
+ "temperature," \
+ + "relative_humidity," \
+ + "wind," \
+ + "weather," \
+ + "sky_conditions," \
+ + "precipitation_last_hour"
+ option_parser.add_option("--headers",
+ dest="headers",
+ default=default_headers,
+ help="the conditions headers to display")
+
+ # the -i/--id option
+ if config.has_option("default", "id"):
+ default_id = config.get("default", "id")
+ else: default_id = ""
+ option_parser.add_option("-i", "--id",
+ dest="id",
+ default=default_id,
+ help="the METAR station ID (ex: KRDU)")
+
+ # the --imperial option
+ if config.has_option("default", "imperial"):
+ default_imperial = bool(config.get("default", "imperial"))
+ else: default_imperial = False
+ option_parser.add_option("--imperial",
+ dest="imperial",
+ action="store_true",
+ default=default_imperial,
+ help="filter/convert for US/UK units")
+
+ # the -l/--list option
+ option_parser.add_option("-l", "--list",
+ dest="list",
+ action="store_true",
+ default=False,
+ help="print a list of configured aliases")
+
+ # the -m/--metric option
+ if config.has_option("default", "metric"):
+ default_metric = bool(config.get("default", "metric"))
+ else: default_metric = False
+ option_parser.add_option("-m", "--metric",
+ dest="metric",
+ action="store_true",
+ default=default_metric,
+ help="filter/convert for metric units")
+
+ # the --murl option
+ if config.has_option("default", "murl"):
+ default_murl = config.get("default", "murl")
+ else:
+ default_murl = \
+ "http://weather.noaa.gov/pub/data/observations/metar/decoded/%ID%.TXT"
+ option_parser.add_option("--murl",
+ dest="murl",
+ default=default_murl,
+ help="METAR URL (including %id%)")
+
+ # the -n/--no-conditions option
+ if config.has_option("default", "conditions"):
+ default_conditions = bool(config.get("default", "conditions"))
+ else: default_conditions = True
+ option_parser.add_option("-n", "--no-conditions",
+ dest="conditions",
+ action="store_false",
+ default=default_conditions,
+ help="disable output of current conditions (forces -f)")
+
+ # the -o/--omit-forecast option
+ option_parser.add_option("-o", "--omit-forecast",
+ dest="forecast",
+ action="store_false",
+ default=default_forecast,
+ help="omit the local forecast (cancels -f)")
+
+ # the -q/--quiet option
+ if config.has_option("default", "quiet"):
+ default_quiet = bool(config.get("default", "quiet"))
+ else: default_quiet = False
+ option_parser.add_option("-q", "--quiet",
+ dest="quiet",
+ action="store_true",
+ default=default_quiet,
+ help="skip preambles and don't indent")
+
+ # the -s/--st option
+ if config.has_option("default", "st"):
+ default_st = config.get("default", "st")
+ else: default_st = ""
+ option_parser.add_option("-s", "--st",
+ dest="st",
+ default=default_st,
+ help="the state abbreviation (ex: NC)")
+
+ # the -v/--verbose option
+ if config.has_option("default", "verbose"):
+ default_verbose = bool(config.get("default", "verbose"))
+ else: default_verbose = False
+ option_parser.add_option("-v", "--verbose",
+ dest="verbose",
+ action="store_true",
+ default=default_verbose,
+ help="show full decoded feeds (cancels -q)")
+
+ # the -z/--zones option
+ if config.has_option("default", "zones"):
+ default_zones = config.get("default", "zones")
+ else: default_zones = ""
+ option_parser.add_option("-z", "--zones",
+ dest="zones",
+ default=default_zones,
+ help="alert zones (ex: nc/ncc183,nc/ncz041)")
+
+ options, arguments = option_parser.parse_args()
+ return options, arguments