Commit Graph

58 Commits

Author SHA1 Message Date
Fabio Manganiello 7a20fec52f
[#60] Added `--workdir` and `--logsdir` command-line options.
Also, the application is now using `XDG_CONFIG_HOME` and
`XDG_DATA_HOME` if available to lookup the configuration file and
working directory.

Closes: #60
2023-07-24 03:29:08 +02:00
Fabio Manganiello 77ffefdccb
Added a `Config.set` method.
A useful interface to change configuration values at runtime.
2023-07-24 00:48:07 +02:00
Fabio Manganiello 315a89fb65
Added a `default` parameter to `Config.get`. 2023-07-23 23:31:57 +02:00
Fabio Manganiello d49e5b1f6a
Expose `Config.workdir` property.
This is a useful proxy to avoid using `Config.get('workdir')` string
lookup.
2023-07-22 15:11:58 +02:00
Fabio Manganiello c846c61493
Refactored `Config.__init__`.
The constructor of the `Config` class had grown too big. It's much more
manageable if split into multiple sub-constructor helpers.
2023-07-15 13:38:07 +02:00
Fabio Manganiello 0a3d6add83
Support `./config.yaml` as a config file location. 2023-07-15 01:29:41 +02:00
Fabio Manganiello a8d2261f32
Added `core_plugins` to the configuration.
These plugins (only including `variable` for now) are a core part of the
application and should always be explicitly enabled.
2023-04-29 11:34:34 +02:00
Fabio Manganiello b96838a856
Major LINT fixes/refactor for the `Config` class 2023-02-04 17:35:48 +01:00
Fabio Manganiello 219a0a99ca `main.db` should use the configured `workdir` when not specified.
Closes: #234
Reviewed-On: #234
2022-12-09 23:37:10 +01:00
Fabio Manganiello a5db599268
FIX: Skip empty lines on `config.include` 2022-10-14 20:56:18 +02:00
Fabio Manganiello db45d7ecbf
FIX: More robust logic against section configurations that may not be maps 2022-08-31 01:27:53 +02:00
Fabio Manganiello 3edb8352b4
Support sections with empty bodies in the YAML configuration files. 2022-07-16 02:09:22 +02:00
Fabio Manganiello 371fd7e46b
Generate a default config.yaml if none is present instead of failing 2022-04-27 13:57:42 +02:00
Fabio Manganiello 3bfc5b83ef Moved to manifest files for describing plugins and backends and their dependencies 2021-09-16 17:53:40 +02:00
Fabio Manganiello 6f224cbda9 Removed legacy "local" backend and pusher script 2021-03-13 01:52:15 +01:00
Fabio Manganiello 39abdfe40a New Vue.js template for dashbord WIP 2020-11-21 01:12:08 +01:00
Fabio Manganiello 1c84659e34 Support for Python cronjobs in scripts folder - closes #156 2020-10-13 23:25:27 +02:00
Fabio Manganiello dc1b54961f Added `inspect.get_config()` method to get the configuration programmatically 2020-08-31 18:26:08 +02:00
Fabio Manganiello 124269776d Support for procedure imports from scripts base module 2020-04-10 20:59:32 +02:00
Fabio Manganiello 25ea0ea77c Included scripts_dir parent dir on sys.path so scripts can import members through the "scripts" package 2020-04-10 00:40:46 +02:00
Fabio Manganiello 0dae03551f Implemented interface for custom Python scripts, procedures and hooks [closes #131] 2020-04-08 23:22:54 +02:00
Fabio Manganiello a5c08ed3e4 Added PicoVoice plugin with support for hotwords [see #130] 2020-03-07 02:00:35 +01:00
Fabio Manganiello be5c5d365c Added execute tab to webpanel 2019-12-08 16:25:03 +01:00
Fabio Manganiello 675b690929 switches should not be considered as a special token in the Config object 2019-12-04 02:58:45 +01:00
Fabio Manganiello 346b1be924 Filter out in get_plugins the special configuration fields not associated with plugins 2019-12-01 23:53:14 +01:00
Fabio Manganiello a18452ab2e Made procedure.[sync|async].name second argument optional
A procedure will be sync if [sync|async] is not specified
2019-12-01 16:48:57 +01:00
Fabio Manganiello dcb4a36959 Replaced os.environ['HOME'] with os.path.expanduser('~') (Windows compatibility)
Solves #74
2019-07-29 00:03:01 +02:00
Fabio Manganiello 9f008aa954 typo 2019-03-17 01:41:00 +01:00
Fabio Manganiello 7fb53ead59 Always cast environment variable values to string 2019-03-17 01:39:24 +01:00
Fabio Manganiello 2f1cea99fa Support for environment variables passed through main config 2019-03-17 01:34:42 +01:00
Fabio Manganiello 09c1598829 More flexible management for included config files paths 2018-12-30 20:18:55 +01:00
Fabio Manganiello 725b3dd672 Included reference to the included files in Config 2018-12-19 23:39:41 +01:00
Fabio Manganiello 6a9ddb9e53 Made config relative paths and include files expansion more robust 2018-12-19 09:19:58 +01:00
Fabio Manganiello f9b23afbb6 Fixed typo on main.db 2018-12-18 22:20:33 +01:00
Fabio Manganiello 56b48a81b7 Reverted the new config file path expansion logic as it breaks include directives 2018-12-18 22:16:15 +01:00
Fabio Manganiello 12557702dd - cfgfile should expand the home directory ~
- Don't fail hard if failed to create logs directory
2018-12-18 18:46:07 +01:00
Fabio Manganiello 822e0a1e25 Better fix for broken async variables and attributes after Python 3.7 migration 2018-08-07 22:00:11 +00:00
Fabio Manganiello b023618950 Revert "In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async"
This reverts commit e625861edf.
2018-08-07 21:52:02 +00:00
Fabio Manganiello e625861edf In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async 2018-08-07 21:26:57 +00:00
Fabio Manganiello 2fda066e39 - Support for Platypush main configuration db, where plugins and backends can store their data
- Support for permanent cross-process storage of session variables through SQLite db
- Support for db.select with table+filter instead of raw SQL query
2018-07-15 20:12:23 +02:00
Fabio Manganiello 66d78c8615 [#61] Plugins actions refactoring
- Using `@action` annotation to indicate methods that are allowed to be
executed as actions

- The output and errors of an action are automatically wrapped into a
`Response` object without any response build required on the plugin side
2018-07-06 02:08:38 +02:00
Fabio Manganiello 81a81312e3 Basic support for token authentication on request level 2018-07-05 09:15:53 +02:00
Fabio Manganiello 5e21f844a0 s/yaml.load/yaml.safe_load/ 2018-06-18 11:07:20 +00:00
Fabio Manganiello 4da74b1096 Refactored logging submodule 2018-06-06 20:09:23 +02:00
Fabio Manganiello 82200bb150 Better logging management, solves #26 2018-04-14 01:00:00 +02:00
Fabio Manganiello 91dd975413 mkdir_p replaced with os.makedirs 2018-01-27 13:54:15 +01:00
Fabio Manganiello 14afbcad3a Support for RSS feeds update events, solves #48 2018-01-27 04:32:44 +01:00
Fabio Manganiello b9c4cefb59 Better format for crons 2018-01-15 22:44:57 +01:00
Fabio Manganiello 14b511034f Support for cron actions, solves #47 2018-01-15 22:37:01 +01:00
Fabio Manganiello 959296b15a Support for context variables and constants 2018-01-10 18:47:25 +01:00