config: Allow specifying configfile location from command line

This commit is contained in:
Jordan Ruthe 2020-12-16 23:00:50 -05:00
parent 51da7cecc8
commit bcbbc03151
4 changed files with 21 additions and 5 deletions

View File

@ -38,3 +38,6 @@ python virtual environment at ${HOME}/.KlipperScreen-env and install a systemd
service file. service file.
As an option to do development or interact with KlipperScreen from your computer, you may install tigervnc-scraping-server and VNC to your pi instance. Follow tigervnc server setup procedures for details on how to do that. As an option to do development or interact with KlipperScreen from your computer, you may install tigervnc-scraping-server and VNC to your pi instance. Follow tigervnc server setup procedures for details on how to do that.
If you need a custom location for the configuration file, you can add -c or --configfile to the systemd file and specify
the location of your configuration file.

View File

@ -1,5 +1,8 @@
## Changelog ## Changelog
#### 2020 12 16
* Config file can now be specified when running from the command line
#### 2020 12 09 #### 2020 12 09
* Z value in job status now reflects the gcode Z value. This allows people with ABL to have a better understanding of Z * Z value in job status now reflects the gcode Z value. This allows people with ABL to have a better understanding of Z

View File

@ -16,10 +16,10 @@ class KlipperScreenConfig:
config = None config = None
configfile_name = "KlipperScreen.conf" configfile_name = "KlipperScreen.conf"
def __init__(self): def __init__(self, configfile):
self.default_config_path = "%s/ks_includes/%s" % (os.getcwd(), self.configfile_name) self.default_config_path = "%s/ks_includes/%s" % (os.getcwd(), self.configfile_name)
self.config = configparser.ConfigParser() self.config = configparser.ConfigParser()
self.config_path = self.get_config_file_location() self.config_path = self.get_config_file_location(configfile)
try: try:
self.config.read(self.default_config_path) self.config.read(self.default_config_path)
@ -32,8 +32,7 @@ class KlipperScreenConfig:
self.get_menu_items("__main") self.get_menu_items("__main")
#self.build_main_menu(self.config) #self.build_main_menu(self.config)
def get_config_file_location(self): def get_config_file_location(self, file):
file = "%s/%s" % (os.getenv("HOME"), self.configfile_name)
if not path.exists(file): if not path.exists(file):
file = "%s/%s" % (os.getcwd(), self.configfile_name) file = "%s/%s" % (os.getcwd(), self.configfile_name)
if not path.exists(file): if not path.exists(file):

View File

@ -1,5 +1,6 @@
#!/usr/bin/python #!/usr/bin/python
import argparse
import gi import gi
import gettext import gettext
import time import time
@ -65,7 +66,17 @@ class KlipperScreen(Gtk.Window):
def __init__(self): def __init__(self):
self.version = get_software_version() self.version = get_software_version()
logger.info("KlipperScreen version: %s" % self.version) logger.info("KlipperScreen version: %s" % self.version)
self._config = KlipperScreenConfig()
parser = argparse.ArgumentParser(description="KlipperScreen - A GUI for Klipper")
parser.add_argument(
"-c","--configfile", default="~/KlipperScreen.conf", metavar='<configfile>',
help="Location of KlipperScreen configuration file"
)
args = parser.parse_args()
configfile = os.path.normpath(os.path.expanduser(args.configfile))
self._config = KlipperScreenConfig(configfile)
self.printer = Printer({ self.printer = Printer({
"software_version": "Unknown" "software_version": "Unknown"
}, { }, {