Compare commits
10 Commits
81d8a074cc
...
cba08629cb
Author | SHA1 | Date | |
---|---|---|---|
cba08629cb | |||
e0ff28056f | |||
732a272a9a | |||
82132e78f5 | |||
|
8c69866bde | ||
55829ad298 | |||
ee30935983 | |||
24c51481dc | |||
a029c096c8 | |||
92a96343e1 |
@ -11,7 +11,6 @@ import configparser
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
class Conf(object):
|
||||
confobj = configparser.RawConfigParser()
|
||||
cfgfile = ''
|
||||
@ -57,7 +56,10 @@ class Conf(object):
|
||||
"""
|
||||
if not self.cfgfile:
|
||||
raise Exception('No config file set')
|
||||
return self.confobj.get(section, option)
|
||||
try:
|
||||
return self.confobj.get(section, option)
|
||||
except configparser.NoOptionError:
|
||||
raise ValueError('Option does not exist')
|
||||
|
||||
def set(self, section, option, value):
|
||||
"""docstring for update"""
|
||||
|
@ -8,7 +8,7 @@ Created by Marcus Stoegbauer on 2013-01-10.
|
||||
"""
|
||||
|
||||
import platform
|
||||
|
||||
from operator import itemgetter
|
||||
|
||||
class Checks(object):
|
||||
def __init__(self):
|
||||
@ -23,7 +23,7 @@ class Checks(object):
|
||||
|
||||
# def getShortHostname
|
||||
|
||||
def __classes_for_host__(self):
|
||||
def __classes_for_host__(self, reverse=False):
|
||||
"""docstring for __classesForHost"""
|
||||
classes = []
|
||||
for c in dir(self):
|
||||
@ -32,7 +32,7 @@ class Checks(object):
|
||||
ret = getattr(self, c)()
|
||||
if type(ret) == tuple and len(ret) == 3:
|
||||
classes.append(ret)
|
||||
return map(lambda k: (k[1], k[2]), sorted(classes, key=lambda k: k[0]))
|
||||
return map(lambda k: (k[1], k[2]), sorted(classes, key=itemgetter(0), reverse=reverse))
|
||||
|
||||
def header(self):
|
||||
"""docstring for header"""
|
||||
|
10
install.sh
Executable file
10
install.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
if type pip3 >/dev/null 2>&1; then
|
||||
pip3 install --user git+https://git.lys.is/lysis/pyuserconfig.git
|
||||
git clone git@git.lys.is:lysis/userconfig.git ~/.userconfig
|
||||
mkdir ~/.config
|
||||
PYTHONPATH=~/.local/lib ~/.local/bin/userconfig.py
|
||||
else
|
||||
echo "No pip3 installed, cannot proceed."
|
||||
fi
|
@ -14,6 +14,7 @@ import tempfile
|
||||
import re
|
||||
import getopt
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
#
|
||||
import Userconfig.cfgfile as cfgfile
|
||||
@ -46,7 +47,6 @@ def workconf(directory, depth=2):
|
||||
for d in dirs:
|
||||
name = directory+"/"+d
|
||||
if os.path.isdir(name):
|
||||
# fixme: create name if it does not exist
|
||||
workconf(name, depth+1)
|
||||
if name.endswith(".swp"):
|
||||
continue
|
||||
@ -81,9 +81,18 @@ def workdir(directory):
|
||||
# key is the destination filename, values are all classes filenames that are used to
|
||||
# build the file
|
||||
destfiles = {}
|
||||
# FIXME: reverse_order should really be a bool in .cfg, implement variable types in cfg file
|
||||
reverse_sort = False
|
||||
try:
|
||||
reverse_sort = (dir_config.get("Main", "reverse") == 'True')
|
||||
except ValueError:
|
||||
reverse_sort = False
|
||||
|
||||
if os.access(directory + "/install.sh", os.X_OK):
|
||||
subprocess.call([directory + "/install.sh"])
|
||||
|
||||
# walk through all know classes in directory and find filenames
|
||||
for h in classchecks.__classes_for_host__():
|
||||
for h in classchecks.__classes_for_host__(reverse_sort):
|
||||
# build classes directory
|
||||
if h[0] != "":
|
||||
classdir = directory+"/"+h[0]+"_"+h[1]
|
||||
@ -157,6 +166,12 @@ def process_all_files(destfiles, dir_config):
|
||||
debug.debug(" ================ process_all_files ===============", 1)
|
||||
for df in destfiles.keys():
|
||||
debug.debug(" ??? Processing source files for %s." % df, 2)
|
||||
if not os.path.exists(os.path.dirname(df)):
|
||||
debug.debug(" +++ Directory %s does not exist, creating" % os.path.dirname(df), 1)
|
||||
os.mkdir(os.path.dirname(df))
|
||||
if not os.path.isdir(os.path.dirname(df)):
|
||||
debug.debug(" --- Destination directory %s does not exist, skipping." % os.path.dirname(df), 1)
|
||||
return False
|
||||
# assemble file to tmp
|
||||
commentstring = ""
|
||||
if dir_config.check("Main", "commentstring"):
|
||||
@ -185,8 +200,13 @@ def process_all_files(destfiles, dir_config):
|
||||
debug.debug(" ================ process_all_files ===============", 1)
|
||||
|
||||
def main():
|
||||
configfile = os.environ['HOME']+"/etc/userconfig.cfg"
|
||||
|
||||
configfile_destinations = [os.environ['HOME'] + "/etc/",
|
||||
os.environ['HOME'] + "/.local/etc"]
|
||||
configfile = ''
|
||||
for directory in configfile_destinations:
|
||||
if os.path.isfile(directory + "/userconfig.cfg"):
|
||||
configfile = directory + "/userconfig.cfg"
|
||||
break
|
||||
try:
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "hdc:v", ["help", "debug", "config="])
|
||||
|
Loading…
Reference in New Issue
Block a user