-
-
Notifications
You must be signed in to change notification settings - Fork 22
Feature/one shot installer #178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
76 commits
Select commit
Hold shift + click to select a range
079598b
fix(plugins): Remove compatible_versions requirement from single plug…
5241bbf
fix(7-segment-clock): Update submodule with separator and spacing fixes
6b81873
fix(plugins): Add onchange handlers to existing custom feed inputs
d01c343
Add array-of-objects widget support to web UI
668fadb
Update plugins_manager.js cache-busting version
d7b9c47
Fix: Move array-of-objects detection before file-upload/checkbox checks
a9351f1
Update cache-busting version for array-of-objects fix
7d67495
Remove duplicate array-of-objects check
893436f
Update cache version again
4d7274b
Add array-of-objects widget support to server-side template
6da2059
Use window. prefix for array-of-objects JavaScript functions
ecea139
Fix syntax error: Missing indentation for html += in array else block
be62ac6
Update cache version for syntax fix
2993e67
Add debug logging to diagnose addArrayObjectItem availability
b38027d
Fix: Wrap array-of-objects functions in window check and move outside…
e2b0ab2
Update cache version for array-of-objects fix
1fa8e6a
Move array-of-objects functions outside IIFE to make them globally av…
8e86e58
Update cache version for IIFE fix
8803556
Fix: Add array-of-objects functions after IIFE ends
63bf148
Update cache version for array-of-objects fix
16928c0
Fix: Remove all orphaned code and properly add array-of-objects funct…
927b893
Add array-of-objects functions after IIFE ends
e0fff2c
Update cache version for syntax fix
f7d77de
Fix syntax error: Add missing closing brace for else block
1b14e4e
Update cache version for syntax fix
a920784
Replace complex array-of-objects widget with simple table interface
cefe17b
Add simple table interface for custom feeds
a8c262f
Fix custom feeds table issues
a50afed
Add fallback fix for feeds.custom_feeds dict-to-array conversion
a9a4281
feat(web): Add checkbox-group widget support for plugin config arrays
19b6fc2
feat(install): Add one-shot installation script
38ffaf0
fix: Remove accidental plugins/7-segment-clock submodule entry
b88842e
fix(array-objects): Fix schema lookup, reindexing, and disable file u…
c80c23c
fix(security): Fix XSS vulnerability in handleCustomFeedLogoUpload
0eb457f
fix: Update upload button onclick when reindexing custom feed rows
89f07b8
fix: Make custom feeds table widget-specific instead of generic fallback
3f36c3a
fix: Add image/gif to custom feed logo upload accept attribute
89f9876
fix: Add hidden input for enabled checkbox to ensure false is submitted
520b87a
fix: Expose renderArrayObjectItem to window for addArrayObjectItem
77c68ce
fix: Reorder array type checks to match template order
fc33bcf
fix: Handle None value for feeds config to prevent TypeError
57aa7d1
fix: Add default value for AVAILABLE_SPACE to prevent TypeError
8c2e350
fix: Wrap debug console.log in debug flag check
deef9a1
fix: Expose getSchemaProperty, disable upload widget, handle bracket …
97c684a
fix: Remove duplicate submit handler to prevent double POSTs
f17214f
fix: Use indexed names for checkbox-group to work with existing parser
6f6b42c
fix: Set values from item data in fallback array-of-objects rendering
9416f1b
fix: Remove extra closing brace breaking if/else chain
d7b4299
fix: Remove local logger assignments to prevent UnboundLocalError
fba7769
Merge remote-tracking branch 'origin/main' into feature/one-shot-inst…
37eaafe
fix: Fix checkbox-group serialization and array-of-objects key leakage
36f948a
fix: Make _data field matching more specific to prevent false positives
52d835c
fix: Add HTML escaping to prevent XSS in fallback code and checkbox-g…
c198fec
fix: Recreate one-shot install script with APT permission and non-int…
7b90abd
fix: Pass both -y flag and env var to first_time_install.sh for non-i…
17cc0ae
fix: Improve /tmp permission handling and non-interactive mode detection
885e49c
refactor: Simplify /tmp permission handling - only fix if actually wrong
a05c503
fix: Remove user confirmation prompts in install_wifi_monitor.sh for …
f2db1d2
fix: Explicitly pass ASSUME_YES to install_wifi_monitor.sh and simpli…
4e7342c
refactor: Remove all prompts from install_wifi_monitor.sh - install p…
50e54c1
fix: Address multiple issues in debug script, array rendering, and cu…
2f199fd
fix: Make install_wifi_monitor.sh more resilient to failures
31faac6
fix: Make WiFi monitor installation failure non-fatal in first_time_i…
550ab42
fix: Use JSON encoding for bracket-notation arrays and add sentinel f…
16f0702
fix: Harden upload flow - HTTP status check, path normalization, prop…
60aad56
fix: Add bracket notation to checkbox-group input names
a315693
fix: Swap order of enabled checkbox and hidden input in custom-feeds
a482a9e
fix: Enable upload buttons for existing custom feed rows in template
f148bc2
fix: Expose escapeHtml to window object for use by global functions
2d7704a
fix: Escape single quotes in checkbox-group JSON value attribute
5315c8f
fix: Move hidden input before checkbox for enabled field in custom-feeds
1172e97
fix: Use dataset-driven indices for custom feed row reindexing
94f77d7
fix: Reset file input value to allow re-uploading same file
7d708ab
fix: Add proper attribute escaping for renderArrayObjectItem
80e5798
fix: Expose escapeAttribute to window object
aca5ae7
Merge origin/main into feature/one-shot-installer
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,85 @@ | ||
| #!/bin/bash | ||
| # Quick diagnostic script to check why first_time_install.sh is failing | ||
| # Run this on the Pi: bash debug_install.sh | ||
|
|
||
| echo "=== Diagnostic Script for Installation Failure ===" | ||
| echo "" | ||
|
|
||
| echo "1. Checking if running as root:" | ||
| if [ "$EUID" -eq 0 ]; then | ||
| echo " ✓ Running as root (EUID=$EUID)" | ||
| else | ||
| echo " ✗ NOT running as root (EUID=$EUID, user=$(whoami))" | ||
| fi | ||
| echo "" | ||
|
|
||
| echo "2. Checking if first_time_install.sh exists:" | ||
| if [ -f "./first_time_install.sh" ]; then | ||
| echo " ✓ Found ./first_time_install.sh" | ||
| echo " Checking if executable:" | ||
| if [ -x "./first_time_install.sh" ]; then | ||
| echo " ✓ Is executable" | ||
| else | ||
| echo " ✗ NOT executable (fix with: chmod +x first_time_install.sh)" | ||
| fi | ||
| else | ||
| echo " ✗ NOT found in current directory" | ||
| echo " Current directory: $(pwd)" | ||
| fi | ||
| echo "" | ||
|
|
||
| echo "3. Testing argument passing with -y flag:" | ||
| echo " Running: bash ./first_time_install.sh -y --help 2>&1 | head -20" | ||
| if [ -f "./first_time_install.sh" ]; then | ||
| bash ./first_time_install.sh -y --help 2>&1 | head -20 || echo " ✗ Script failed or not found" | ||
| else | ||
| echo " ✗ first_time_install.sh not found" | ||
| fi | ||
| echo "" | ||
|
|
||
| echo "4. Checking environment variable:" | ||
| echo " LEDMATRIX_ASSUME_YES=${LEDMATRIX_ASSUME_YES:-not set}" | ||
| echo " Testing with env: env LEDMATRIX_ASSUME_YES=1 bash -c 'echo ASSUME_YES would be set'" | ||
| env LEDMATRIX_ASSUME_YES=1 bash -c 'echo " ASSUME_YES would be: ${LEDMATRIX_ASSUME_YES:-not set}"' | ||
| echo "" | ||
|
|
||
| echo "5. Testing sudo with arguments:" | ||
| echo " Command: sudo -E env LEDMATRIX_ASSUME_YES=1 bash ./first_time_install.sh -y --help 2>&1 | head -20" | ||
| if [ -f "./first_time_install.sh" ]; then | ||
| sudo -E env LEDMATRIX_ASSUME_YES=1 bash ./first_time_install.sh -y --help 2>&1 | head -20 || echo " ✗ Sudo command failed" | ||
| else | ||
| echo " ✗ first_time_install.sh not found" | ||
| fi | ||
| echo "" | ||
|
|
||
| echo "6. Checking /tmp permissions:" | ||
| echo " /tmp is writable: $([ -w /tmp ] && echo 'YES' || echo 'NO')" | ||
| echo " /tmp permissions: $(stat -c '%a' /tmp 2>/dev/null || echo 'unknown')" | ||
| echo " TMPDIR: ${TMPDIR:-not set}" | ||
| echo "" | ||
|
|
||
| echo "7. Checking stdin/TTY:" | ||
| if [ -t 0 ]; then | ||
| echo " ✓ stdin is a TTY (interactive)" | ||
| else | ||
| echo " ✗ stdin is NOT a TTY (non-interactive/pipe)" | ||
| echo " This is expected when running via curl | bash" | ||
| fi | ||
| echo "" | ||
|
|
||
| echo "8. Latest installation log:" | ||
| # Determine project root directory (parent of scripts/install/) | ||
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||
| PROJECT_ROOT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)" | ||
| LOG_DIR="$PROJECT_ROOT_DIR/logs" | ||
| LOG_FILE=$(ls -t "$LOG_DIR"/first_time_install_*.log 2>/dev/null | head -1) | ||
| if [ -n "$LOG_FILE" ]; then | ||
| echo " Found: $LOG_FILE" | ||
| echo " Last 30 lines:" | ||
| tail -30 "$LOG_FILE" | sed 's/^/ /' | ||
| else | ||
| echo " No log files found in $LOG_DIR/" | ||
| fi | ||
| echo "" | ||
|
|
||
| echo "=== Diagnostic Complete ===" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.