PaperPi icon indicating copy to clipboard operation
PaperPi copied to clipboard

improve exit on bad config file

Open txoof opened this issue 2 years ago • 2 comments

12:38:13 paperpi :get_config_files:251 :INFO       - using configuration files to configure PaperPi: [PosixPath('/home/pi/src/PaperPi/paperpi/config/paperpi.ini'), PosixPath('/home/pi/.config/com.txoof.paperpi/paperpi.ini')]
Traceback (most recent call last):
  File "/home/pi/src/PaperPi/paperpi/./paperpi.py", line 758, in <module>
    exit_code = main()
  File "/home/pi/src/PaperPi/paperpi/./paperpi.py", line 644, in main
    config_files = get_config_files(cmd_args)
  File "/home/pi/src/PaperPi/paperpi/./paperpi.py", line 254, in get_config_files
    config_files.parse_config()
  File "/home/pi/.local/share/virtualenvs/PaperPi-VBShxqF-/lib/python3.9/site-packages/ArgConfigParse/ArgConfigParse.py", line 227, in parse_config
    self.parser.read(file)
  File "/usr/lib/python3.9/configparser.py", line 697, in read
    self._read(fp, filename)
  File "/usr/lib/python3.9/configparser.py", line 1113, in _read
    raise e
configparser.ParsingError: Source contains parsing errors: PosixPath('/home/pi/.config/com.txoof.paperpi/paperpi.ini')
	[line 195]: "'''\n"

It would be good to exit with a better error message and try to identify the problem in the config file rather than just crashing out.

txoof avatar Nov 19 '22 11:11 txoof

additional example:

$ sudo /usr/local/bin/paperpi -d
12:50:24 paperpi :get_config_files:251 :INFO       - using configuration files to configure PaperPi: [PosixPath('/usr/local/paperpi/config/paperpi.ini'), PosixPath('/etc/default/paperpi.ini')]
Traceback (most recent call last):
  File "/usr/local/paperpi/paperpi.py", line 759, in <module>
    exit_code = main()
  File "/usr/local/paperpi/paperpi.py", line 699, in main
    screen_return = setup_display(config)
  File "/usr/local/paperpi/paperpi.py", line 485, in setup_display
    screen.clearEPD()
  File "/usr/local/paperpi/.venv/lib/python3.9/site-packages/epdlib/Screen.py", line 244, in wrapper
    raise UnboundLocalError('no epd is configured')
UnboundLocalError: no epd is configured

txoof avatar Dec 10 '22 11:12 txoof

see commit

txoof avatar Jun 23 '23 08:06 txoof