mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-11 13:23:00 +00:00
docs: clarify plugin paths and fix systemd manual install bug
PLUGIN_DEVELOPMENT_GUIDE.md
- Added a "Plugin directory note" callout near the top explaining
the plugins/ vs plugin-repos/ split:
- Dev workflow uses plugins/ (where dev_plugin_setup.sh creates
symlinks)
- Production / Plugin Store uses plugin-repos/ (the configurable
default per config.template.json:130)
- The plugin loader falls back to plugins/ so dev symlinks are
picked up automatically (schema_manager.py:77)
- User can set plugins_directory to "plugins" in the General tab
if they want both to share a directory
CLAUDE.md
- The Project Structure section had plugins/ and plugin-repos/
exactly reversed:
- Old: "plugins/ - Installed plugins directory (gitignored)"
"plugin-repos/ - Development symlinks to monorepo plugin dirs"
- Real: plugin-repos/ is the canonical Plugin Store install
location and is not gitignored. plugins/* IS gitignored
(verified in .gitignore) and is the legacy/dev location used by
scripts/dev/dev_plugin_setup.sh.
Reversed the descriptions and added line refs.
systemd/README.md
- "Manual Installation" section told users to copy the unit file
directly to /etc/systemd/system/. Verified the unit file in
systemd/ledmatrix.service contains __PROJECT_ROOT_DIR__
placeholders that the install scripts substitute at install time.
A user following the manual steps would get a service that fails
to start with "WorkingDirectory=__PROJECT_ROOT_DIR__" errors.
Added a clear warning and a sed snippet that substitutes the
placeholder before installing.
src/common/README.md
- Was missing 2 of the 11 utility modules in the directory
(verified with ls): permission_utils.py and cli.py. Added brief
descriptions for both.
Out-of-scope code bug found while auditing (flagged but not fixed):
- scripts/dev/dev_plugin_setup.sh:9 sets PROJECT_ROOT="$SCRIPT_DIR"
which resolves to scripts/dev/, not the project root. This means
the script's PLUGINS_DIR resolves to scripts/dev/plugins/ instead
of the project's plugins/ — confirmed by the existence of
scripts/dev/plugins/of-the-day/ from prior runs. Real fix is to
set PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)". Not fixing in
this docs PR.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -28,14 +28,29 @@ These service files are installed by the installation scripts in `scripts/instal
|
||||
|
||||
## Manual Installation
|
||||
|
||||
If you need to install a service manually:
|
||||
|
||||
```bash
|
||||
sudo cp systemd/ledmatrix.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable ledmatrix.service
|
||||
sudo systemctl start ledmatrix.service
|
||||
```
|
||||
> **Important:** the unit files in this directory contain
|
||||
> `__PROJECT_ROOT_DIR__` placeholders that the install scripts replace
|
||||
> with the actual project directory at install time. Do **not** copy
|
||||
> them directly to `/etc/systemd/system/` — the service will fail to
|
||||
> start with `WorkingDirectory=__PROJECT_ROOT_DIR__` errors.
|
||||
>
|
||||
> Always install via the helper script:
|
||||
>
|
||||
> ```bash
|
||||
> sudo ./scripts/install/install_service.sh
|
||||
> ```
|
||||
>
|
||||
> If you really need to do it by hand, substitute the placeholder
|
||||
> first:
|
||||
>
|
||||
> ```bash
|
||||
> PROJECT_ROOT="$(pwd)"
|
||||
> sed "s|__PROJECT_ROOT_DIR__|$PROJECT_ROOT|g" systemd/ledmatrix.service \
|
||||
> | sudo tee /etc/systemd/system/ledmatrix.service > /dev/null
|
||||
> sudo systemctl daemon-reload
|
||||
> sudo systemctl enable ledmatrix.service
|
||||
> sudo systemctl start ledmatrix.service
|
||||
> ```
|
||||
|
||||
## Service Management
|
||||
|
||||
|
||||
Reference in New Issue
Block a user