#!/usr/bin/env python3 import argparse import sys import ConfigParser import requests from urlparse import urlparse CONFIG_PATH = "/etc/airtime/airtime.conf" GENERAL_CONFIG_SECTION = "general" def read_config_file(config_path): """Parse the application's config file located at config_path.""" config = ConfigParser.SafeConfigParser() try: config.readfp(open(config_path)) except IOError as e: print "Failed to open config file at " + config_path + ": " + e.strerror exit(-1) except Exception: print e.strerror exit(-1) return config if __name__ == "__main__": config = read_config_file(CONFIG_PATH) api_key = config.get(GENERAL_CONFIG_SECTION, "api_key") base_url = config.get(GENERAL_CONFIG_SECTION, "base_url") base_dir = config.get(GENERAL_CONFIG_SECTION, "base_dir") base_port = config.get(GENERAL_CONFIG_SECTION, "base_port", 80) action = "upgrade" station_url = "" default_url = "http://%s:%s%s" % (base_url, base_port, base_dir) parser = argparse.ArgumentParser() parser.add_argument( "--downgrade", help="Downgrade the station", action="store_true" ) parser.add_argument( "station_url", help="station URL", nargs="?", default=default_url ) args = parser.parse_args() if args.downgrade: action = "downgrade" if args.station_url: station_url = args.station_url # Add http:// if you were lazy and didn't pass a scheme to this script url = urlparse(station_url) if not url.scheme: station_url = "http://%s" % station_url print "Requesting %s..." % action r = requests.get("%s/%s" % (station_url, action), auth=(api_key, "")) print r.text r.raise_for_status()