config: allow xdg .config folder fully deprecate old klipper_config and home folder config
config order of preference 1. printer_data/config 2. xdg .config/KlipperScreen 3. klipperscreen repo directory
This commit is contained in:
parent
160e2ecd31
commit
9d0e4b841f
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
Breaking changes will be listed here.
|
Breaking changes will be listed here.
|
||||||
|
|
||||||
|
#### [2024_01_26]()
|
||||||
|
* Deprecated old ~/klipper_config folder users need to place the configfile
|
||||||
|
in ~/printer_data/config, ~/.config/KlipperScreen, or directly in the repo
|
||||||
|
|
||||||
#### [2023 10 08](https://github.com/KlipperScreen/KlipperScreen/commit/b6199a4f24beb02dc0f8956f60c88e3ba3468927)
|
#### [2023 10 08](https://github.com/KlipperScreen/KlipperScreen/commit/b6199a4f24beb02dc0f8956f60c88e3ba3468927)
|
||||||
* Deprecated [bed_screws] and [z_calibrate_position] sections those configs should go in [printer name]
|
* Deprecated [bed_screws] and [z_calibrate_position] sections those configs should go in [printer name]
|
||||||
|
|
||||||
|
@ -235,10 +235,9 @@ enable: {{ 'MY_MACRO' in printer.gcode_macros.list }}
|
|||||||
|
|
||||||
KlipperScreen will search for a configuration file in the following order:
|
KlipperScreen will search for a configuration file in the following order:
|
||||||
|
|
||||||
1. _~/KlipperScreen.conf_
|
1. _~/printer_data/config/KlipperScreen.conf_
|
||||||
2. _${KlipperScreen_Directory}/KlipperScreen.conf_
|
2. _~/.config/KlipperScreen/KlipperScreen.conf_
|
||||||
3. _~/printer_data/config/KlipperScreen.conf_
|
3. _${KlipperScreen_Directory}/KlipperScreen.conf_
|
||||||
4. _~/klipper_config/KlipperScreen.conf_
|
|
||||||
|
|
||||||
If you need a custom location for the configuration file, you can add -c or --configfile to the systemd file and specify
|
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.
|
the location of your configuration file.
|
||||||
|
@ -22,6 +22,9 @@ SCREEN_BLANKING_OPTIONS = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
klipperscreendir = pathlib.Path(__file__).parent.resolve().parent
|
klipperscreendir = pathlib.Path(__file__).parent.resolve().parent
|
||||||
|
home = os.path.expanduser("~/")
|
||||||
|
klipper_config = os.path.join(home, "printer_data", "config")
|
||||||
|
xdg_config = os.path.join(home, ".config", "KlipperScreen")
|
||||||
|
|
||||||
|
|
||||||
class ConfigError(Exception):
|
class ConfigError(Exception):
|
||||||
@ -389,35 +392,27 @@ class KlipperScreenConfig:
|
|||||||
saved_def.append(line[(len(self.do_not_edit_prefix) + 1):])
|
saved_def.append(line[(len(self.do_not_edit_prefix) + 1):])
|
||||||
return ["\n".join(user_def), None if saved_def is None else "\n".join(saved_def)]
|
return ["\n".join(user_def), None if saved_def is None else "\n".join(saved_def)]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def check_path_exists(base_dir, filename):
|
||||||
|
for name in (filename, filename.lower()):
|
||||||
|
full_path = os.path.join(base_dir, name)
|
||||||
|
if os.path.exists(full_path):
|
||||||
|
return full_path
|
||||||
|
return None
|
||||||
|
|
||||||
def get_config_file_location(self, file):
|
def get_config_file_location(self, file):
|
||||||
# Passed config (-c) by default is ~/KlipperScreen.conf
|
# Passed config (-c) by default is blank
|
||||||
logging.info(f"Passed config (-c): {file}")
|
logging.info(f"Passed config (-c): {file}")
|
||||||
if os.path.exists(file):
|
if file not in (".", "..") and os.path.exists(file):
|
||||||
return file
|
return file
|
||||||
|
|
||||||
file = os.path.join(klipperscreendir, self.configfile_name)
|
# List of directories to search for the config file
|
||||||
if os.path.exists(file):
|
directories = [klipper_config, xdg_config, klipperscreendir]
|
||||||
return file
|
|
||||||
file = os.path.join(klipperscreendir, self.configfile_name.lower())
|
|
||||||
if os.path.exists(file):
|
|
||||||
return file
|
|
||||||
|
|
||||||
klipper_config = os.path.join(os.path.expanduser("~/"), "printer_data", "config")
|
for directory in directories:
|
||||||
file = os.path.join(klipper_config, self.configfile_name)
|
path = self.check_path_exists(directory, self.configfile_name)
|
||||||
if os.path.exists(file):
|
if path:
|
||||||
return file
|
return path
|
||||||
file = os.path.join(klipper_config, self.configfile_name.lower())
|
|
||||||
if os.path.exists(file):
|
|
||||||
return file
|
|
||||||
|
|
||||||
# OLD config folder
|
|
||||||
klipper_config = os.path.join(os.path.expanduser("~/"), "klipper_config")
|
|
||||||
file = os.path.join(klipper_config, self.configfile_name)
|
|
||||||
if os.path.exists(file):
|
|
||||||
return file
|
|
||||||
file = os.path.join(klipper_config, self.configfile_name.lower())
|
|
||||||
if os.path.exists(file):
|
|
||||||
return file
|
|
||||||
|
|
||||||
# fallback
|
# fallback
|
||||||
return self.default_config_path
|
return self.default_config_path
|
||||||
@ -517,17 +512,17 @@ class KlipperScreenConfig:
|
|||||||
if self.config_path != self.default_config_path:
|
if self.config_path != self.default_config_path:
|
||||||
filepath = self.config_path
|
filepath = self.config_path
|
||||||
else:
|
else:
|
||||||
filepath = os.path.expanduser("~/")
|
|
||||||
klipper_config = os.path.join(filepath, "printer_data", "config")
|
|
||||||
old_klipper_config = os.path.join(filepath, "klipper_config")
|
|
||||||
if os.path.exists(klipper_config):
|
if os.path.exists(klipper_config):
|
||||||
filepath = os.path.join(klipper_config, self.configfile_name)
|
filepath = os.path.join(klipper_config, self.configfile_name)
|
||||||
elif os.path.exists(old_klipper_config):
|
|
||||||
filepath = os.path.join(old_klipper_config, self.configfile_name)
|
|
||||||
else:
|
else:
|
||||||
filepath = os.path.join(filepath, self.configfile_name)
|
try:
|
||||||
|
if not os.path.exists(xdg_config):
|
||||||
|
pathlib.Path(xdg_config).mkdir(parents=True, exist_ok=True)
|
||||||
|
filepath = os.path.join(xdg_config, self.configfile_name)
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(e)
|
||||||
|
filepath = klipperscreendir
|
||||||
logging.info(f'Creating a new config file in {filepath}')
|
logging.info(f'Creating a new config file in {filepath}')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(filepath, 'w') as file:
|
with open(filepath, 'w') as file:
|
||||||
file.write(contents)
|
file.write(contents)
|
||||||
|
@ -1097,7 +1097,8 @@ def main():
|
|||||||
homedir = os.path.expanduser("~")
|
homedir = os.path.expanduser("~")
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-c", "--configfile", default=os.path.join(homedir, "KlipperScreen.conf"), metavar='<configfile>',
|
"-c", "--configfile",
|
||||||
|
default="", metavar='<configfile>',
|
||||||
help="Location of KlipperScreen configuration file"
|
help="Location of KlipperScreen configuration file"
|
||||||
)
|
)
|
||||||
logdir = os.path.join(homedir, "printer_data", "logs")
|
logdir = os.path.join(homedir, "printer_data", "logs")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user