V2 installation
Important modifications to the installation process
Catalogs
- replaced flat list of catalog URLs with a list of dict (
name
,url
,description
) - catalogs are now defined only in this file and sent to ansiblecube (no duplicates)
- dict is populated upon import so network is used only once (kiwix catalog is huge)
- no change for the user ; popup window is still raised upon load error
data.py
)
Constants (- removed ref to
pibox_ideascube_conf.py
(moved to ansiblecube) - removed refs to raspbian (moved to
contents.json
) - removed constant sizes for projects (now calculated in backend/content via contents.json)
- added constant for
cache_folder
,content_file
andhelp_url
Utils (progress, human sizes)
- factorized clear variables for GB and GiB
- added ProgressHelper, a progression manager to be used by CLILogger and Logger (GUI)
- changed
human_readable_size()
to it useshumanfriendly
lib - moved the
CLILogger
from cli.py as now used on bothcli.py
andimage.py
- removed
compute_space_required
as now superseeded in backend/content
run_installation()
scenario
New - added sysreq check at the beginning
- replaced raspbian download with master download using contents.json
- extract master image using helper
- create the content collection (all downloads and callbacks)
- download all contents into the cache (so it fails/succeeds early)
- run ansiblecube's phase_one (resize,rename,reconfigure)
- mount the image's third partition on the host
- run the collection's callbacks on the host (copy/extract contents)
- unmount the partition from the host
- run ansiblecube's phase_two (move-content,seal)
- write to SD-card if required (unchanged)
- revert chmod on SD-card device (macos, linux)