#!/usr/bin/python3 # Example demonstrating how to use the configuration/commandline system # for configuration. # Some valid command lines.. # config.py -h --help ; Turn on help # config.py -no-h --no-help --help=no ; Turn off help # config.py -qqq -q=3 ; verbosity to 3 # config.py -c /etc/apt/apt.conf ; include that config file] # config.py -o help=true ; Turn on help by giving a # ; config file string # config.py -no-h -- -help ; Turn off help, specify the file '-help' # -c and -o are standard APT-program options. # This shows how to use the system for configuration and option control. # The other varient is for ISC object config files. See configisc.py. import apt_pkg import sys import posixpath # Create a new empty Configuration object - there is also the system global # configuration object apt_pkg.config which is used interally by apt-pkg # routines to control unusual situations. I recommend using the sytem global # whenever possible.. Cnf = apt_pkg.Configuration() print("Command line is", sys.argv) # Load the default configuration file, init_config() does this better.. Cnf.set("config-file", "/etc/apt/apt.conf") # or Cnf["config-file"] = ".." if posixpath.exists(Cnf.find_file("config-file")): apt_pkg.read_config_file(Cnf, "/etc/apt/apt.conf") # Merge the command line arguments into the configuration space Arguments = [ ("h", "help", "help"), ("v", "version", "version"), ("q", "quiet", "quiet", "IntLevel"), ("c", "config-file", "", "ConfigFile"), ("o", "option", "", "ArbItem"), ] print("FileNames", apt_pkg.parse_commandline(Cnf, Arguments, sys.argv)) print("Quiet level selected is", Cnf.find_i("quiet", 0)) # Do some stuff with it if Cnf.find_b("version", 0) == 1: print("Version selected - 1.1") if Cnf.find_b("help", 0) == 1: print("python-apt", apt_pkg.VERSION, "compiled on", apt_pkg.DATE, apt_pkg.TIME) print("Hi, I am the help text for this program") sys.exit(0) print("No help for you, try -h") # Print the configuration space print("The Configuration space looks like:") for item in list(Cnf.keys()): print('%s "%s";' % (item, Cnf[item]))