To show introduction and title of a module which will be available as
properties of a module. This allows the setup process to show the
introduction to the application instead of a blank page.
- The --setup argument sets up all applications that declare themselves
as essential.
- This is done synchronously.
- Plinth exits after the setup is complete.
- Plinth fails with an error in case any of the setup tasks fail. The
process will be continued on next invocation or access of application
from UI.
- There shall be a setup helper object in every module. The setup
process will simply call methods in helper.
- Helper is responsible for loading/storing/checking module setup
versions.
- Methods help in showing progress of setup process automatically.
- The last part of the module import path is the module name. This also
becomes the Django app name. Apps names have to be unique. Hence,
there is no scope for two different modules with same name but
different load path to exist in the project.
- Most uses of list of loaded modules are dealing with app names instead
of full module load path. This is due to the fact that Django deals
with app names and not module paths.
- It is also somewhat clumsy to access a loaded module as we are
re-importing every time to get access module.
- Simplify all of the above by using app names are module identifiers
and maintaing an ordered dictionary of app names to loadded modules.
- Remove unused imports.
- Minor styling fixes.
- When writing the configuration file for no NAT case, append then last
part of the file instead of overwriting.
- Also 'echo' statements are missing leading to attempt to execute the
config options instead of writing them to a file.
Currenly uptime is being taken as measure to decide whether update must
run. Uptime is the number of seconds since machine has booted. If a
machine has run for 30 hours, and rebooted, then update will not be done
until the machine has run for 30 hours + desinated time. Using seconds
since epoch fixes this.
- The current code to parse the configuration file does not work proper
if there is an '=' in the password. Fix it.
- Also if predesignated keyword like 'server' occurs in the password,
configuration can't be read properly. Fix it.
* Add an option to pass the password via cmdline (optional, not used by
plinth) if called manually.
* Fix: If -p option was not the last given option, everything after -p
was lost. Closes#310.