Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / lib / python3 / dist-packages / DistUpgrade / | server ip : 172.67.156.115 your ip : 172.71.254.53 H O M E |
Filename | /usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeConfigParser.py |
Size | 3.19 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 27-Apr-2025 09:55 |
Last modified | 25-Feb-2014 07:14 |
Last accessed | 06-Jul-2025 10:30 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
from __future__ import print_function
import sys
try:
# >= 3.0
from configparser import NoOptionError, NoSectionError
if sys.version >= '3.2':
from configparser import ConfigParser as SafeConfigParser
else:
from configparser import SafeConfigParser
except ImportError:
# < 3.0
from ConfigParser import SafeConfigParser, NoOptionError, NoSectionError
import subprocess
import os.path
import logging
import glob
CONFIG_OVERRIDE_DIR = "/etc/update-manager/release-upgrades.d"
class DistUpgradeConfig(SafeConfigParser):
def __init__(self, datadir, name="DistUpgrade.cfg",
override_dir=None, defaults_dir=None):
SafeConfigParser.__init__(self)
# we support a config overwrite, if DistUpgrade.cfg.dapper exists
# and the user runs dapper, that one will be used
from_release = subprocess.Popen(["lsb_release","-c","-s"],
stdout=subprocess.PIPE,
universal_newlines=True).communicate()[0].strip()
self.datadir=datadir
if os.path.exists(name+"."+from_release):
name = name+"."+from_release
maincfg = os.path.join(datadir,name)
# defaults are read first
self.config_files = []
if defaults_dir:
for cfg in glob.glob(defaults_dir+"/*.cfg"):
self.config_files.append(cfg)
# our config file
self.config_files += [maincfg]
# overrides are read later
if override_dir is None:
override_dir = CONFIG_OVERRIDE_DIR
if override_dir is not None:
for cfg in glob.glob(override_dir+"/*.cfg"):
self.config_files.append(cfg)
self.read(self.config_files)
def getWithDefault(self, section, option, default):
try:
if type(default) == bool:
return self.getboolean(section, option)
elif type(default) == float:
return self.getfloat(section, option)
elif type(default) == int:
return self.getint(section, option)
return self.get(section, option)
except (NoSectionError, NoOptionError):
return default
def getlist(self, section, option):
try:
tmp = self.get(section, option)
except (NoSectionError,NoOptionError):
return []
items = [x.strip() for x in tmp.split(",")]
return items
def getListFromFile(self, section, option):
try:
filename = self.get(section, option)
except NoOptionError:
return []
p = os.path.join(self.datadir,filename)
if not os.path.exists(p):
logging.error("getListFromFile: no '%s' found" % p)
items = [x.strip() for x in open(p)]
return [s for s in items if not s.startswith("#") and not s == ""]
if __name__ == "__main__":
c = DistUpgradeConfig(".")
print(c.getlist("Distro","MetaPkgs"))
print(c.getlist("Distro","ForcedPurges"))
print(c.getListFromFile("Sources","ValidMirrors"))
print(c.getWithDefault("Distro","EnableApport", True))
print(c.set("Distro","Foo", "False"))
print(c.getWithDefault("Distro","Foo", True))
import sys
try:
# >= 3.0
from configparser import NoOptionError, NoSectionError
if sys.version >= '3.2':
from configparser import ConfigParser as SafeConfigParser
else:
from configparser import SafeConfigParser
except ImportError:
# < 3.0
from ConfigParser import SafeConfigParser, NoOptionError, NoSectionError
import subprocess
import os.path
import logging
import glob
CONFIG_OVERRIDE_DIR = "/etc/update-manager/release-upgrades.d"
class DistUpgradeConfig(SafeConfigParser):
def __init__(self, datadir, name="DistUpgrade.cfg",
override_dir=None, defaults_dir=None):
SafeConfigParser.__init__(self)
# we support a config overwrite, if DistUpgrade.cfg.dapper exists
# and the user runs dapper, that one will be used
from_release = subprocess.Popen(["lsb_release","-c","-s"],
stdout=subprocess.PIPE,
universal_newlines=True).communicate()[0].strip()
self.datadir=datadir
if os.path.exists(name+"."+from_release):
name = name+"."+from_release
maincfg = os.path.join(datadir,name)
# defaults are read first
self.config_files = []
if defaults_dir:
for cfg in glob.glob(defaults_dir+"/*.cfg"):
self.config_files.append(cfg)
# our config file
self.config_files += [maincfg]
# overrides are read later
if override_dir is None:
override_dir = CONFIG_OVERRIDE_DIR
if override_dir is not None:
for cfg in glob.glob(override_dir+"/*.cfg"):
self.config_files.append(cfg)
self.read(self.config_files)
def getWithDefault(self, section, option, default):
try:
if type(default) == bool:
return self.getboolean(section, option)
elif type(default) == float:
return self.getfloat(section, option)
elif type(default) == int:
return self.getint(section, option)
return self.get(section, option)
except (NoSectionError, NoOptionError):
return default
def getlist(self, section, option):
try:
tmp = self.get(section, option)
except (NoSectionError,NoOptionError):
return []
items = [x.strip() for x in tmp.split(",")]
return items
def getListFromFile(self, section, option):
try:
filename = self.get(section, option)
except NoOptionError:
return []
p = os.path.join(self.datadir,filename)
if not os.path.exists(p):
logging.error("getListFromFile: no '%s' found" % p)
items = [x.strip() for x in open(p)]
return [s for s in items if not s.startswith("#") and not s == ""]
if __name__ == "__main__":
c = DistUpgradeConfig(".")
print(c.getlist("Distro","MetaPkgs"))
print(c.getlist("Distro","ForcedPurges"))
print(c.getListFromFile("Sources","ValidMirrors"))
print(c.getWithDefault("Distro","EnableApport", True))
print(c.set("Distro","Foo", "False"))
print(c.getWithDefault("Distro","Foo", True))