thedoctor0/zip-release has a bug where only the first word in `exclusions`
has `--exclude=` pre-pended to it, the other words being treated as input
filenames/globs/paths. So, let's do this manually.
* On windows specifying only filenames to exclusions causes things like
`tar: .editorconfig: Cannot stat: No such file or directory`
But putting `EDMarketConnector/` prefix on such means they don't work.
* Testing with 'git bash' GNU tar 1.34:
`tar -c -v -z -f edmc-test.tar.gz --exclude=.editorconfig --exclude=.git\* EDMarketConnector`
works, with empty output from:
`tar tfvz edmc-test.tar.gz | grep editorconfig`
* I'd missed copying the `directory` line from zip to tar step.
* There's no reason we can't perform these steps *before* the build, or
even the python setup, so move them up there. That has the near side-effect
of not needing to exclude so much stuff.
* Move the definition of archive excludes to a global variable.
* Add another step to create a tar(.gz) archive as well.
* Add .tar.gz to the `Built files` handling.
* Nothing outside of monitor.py uses this, but it's of the same nature as
StationName and MarketID, so do this for consistency.
For now we'll leave monitor.stationservices as-is.
1. EDDB plugin tracked this for keeping the Station link text up to date.
* So moved it to monitor.state['SystemPopulation'].
* PLUGINS.md updated to cite this.
* PLUGINS.md also updated to note state entries that are set to None if
remote multi-crew is detected.
1. EDDB plugin needs to track the system name, but we're moving all of that
into monitor.py.
2. monitor.py was tracking this in monitor.system, but it needs to be in
monitor.state['SystemName'] in order for plugins to access it.
So, move monitor.system to monitor.state['SystemName'] and update all uses.
* Typod '.status' instead of 'state'.
* Bring in some sanity-checks and comments from eddn.py to monitor.py.
* Have a 'pass' elif for 'supercruiseentry' so as to comment why we do NOT
use this to blank out body state.
* Bring in the 'if we exit to main menu, blank body state' from eddn.py.
* Remove checks from eddn.py that are now in monitor.py.
* Have a disctinct 'docked' event check in eddn.py for triggering the
"Now we're docked, so the Delay sending until docked is satisfied"
sending of messages.
This had mostly been done already, now it's complete.
*If* any plugin is, still, using `monitor.planet` then they get to keep
the broken pieces because it's not included in PLUGINS.md#Available-imports.
* Minor grammar edit only in PLUGINS.md (I was checking if it explicitly
stated what data is expected in the synthetic 'StartUp' event, it doesn't).
* First changes to move some monitor properties into the monitor.state
dictionary. This is for system or body data.
* Re-factored the generation of 'StartUp' event into
`EDLogs.synthesize_startup_event()`. It's done in two places, so was
anti-DRY.
* In general any bulk setting of system & body data is now done in the
same order for comparison clarity.
* A little of the location tracking has been duplicated from plugins/eddn.py.
This is with a view to switching *it* to using the state version.
It *seems* we don't need to specify both a directory and its contents.
Also, hopefully this will fix the:
Creating zip archive...
Command Line Error:
Unknown switch:
-
which the last run got. That was where the 'root' directory prefix was
added to all exclusions. Maybe the commandline got too long ?
zip-release does indeed create this in `directory`, so we need to specify
it should be *in* the 'root' directory that we're including *in* the zip file.
This *should* allow for easy setup to work on any XDG-compliant desktop
environment. Just run `scripts/linux-setup.sh` and it will:
1. Determine the 'root' directory of the EDMarketConnector source you're
using.
2. Check you have `${HOME}/bin` in PATH and it exists as a directory.
3. Copy `scripts/edmarketconnector.sh` to there, replacing the string
`EDMC_PATH` with the 'root' directory.
4. Copy .png (icon) and .desktop files into ~/.local/share/... locations.
Then the desktop environment should have a menu entry for
"E:D Market Connector", which attempts to run `edmarketconnector`, which
should now be the shell script present in ${HOME}/bin.
1. `io.edcd.EDMarketConnector.desktop` based on the flathub one, but with
reference to v1.5 of the spec (linked in a file comment).
2. As the Icon is specified using `io.edcd.EDMarketConnector`, not only
`EDMarketConnector`, renamed the .png file and updated the single code
reference to it.