Restore warning-level ShellCheck and harden install, paths, and first-run docs - #1
Merged
Merged
Conversation
ShellCheck on main was green only because severity was lowered to error. Restore warning-level CI with bash -n, fix the real warnings, and stop install/launchd from running against YourExternalDrive. Co-authored-by: andersyin <andersyin@users.noreply.github.com>
andersyin
marked this pull request as ready for review
August 13, 2026 04:38
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
ShellCheck on
mainlooked green after999fabf, but that commit only dropped severity fromwarningtoerror. The earlier failures at3768fa9and0a26e3dwere real warnings (quoted=~, unused vars, unicode quotes,ls | grep). Community files were already present; this repo did not have the restic-toolkit history-rewrite problem.This PR restores warning-level CI, fixes those lint issues, and lands the same class of first-run safety as restic-backup-toolkit: refuse placeholder paths, do not register launchd until config is edited, and do not
mkdira fake disk under/Volumes.What changed
CI
ludeeus/action-shellcheck@masterwithapt-get install shellcheck.bash -n *.shplusshellcheck --severity=warning.Install / uninstall
install.shrefusesYourExternalDriveplaceholders before Homebrew or launchd./opt/homebrewand/usr/local(Intel Macs).idevice_id/exiftoolafterbrew install.uninstall.shuses one agent list, prints real paths fromconfig.sh, and documents hash /device_seen/.statecleanup without deleting backup files.Script robustness
afcclient/idevicepair/idevice_id/exiftoolfrom Apple Silicon Homebrew, Intel Homebrew, orPATH.PHOTO_EXTENSIONS/VIDEO_EXTENSIONS./Volumes/...target disk is unmounted, notify and exit instead of creating a fake volume directory.rebuild_hash_index.shand legacybackup_safe.shuseconfig.shand the same placeholder/volume checks.Docs
config.sh, theninstall.sh./tmp/iphone_backup_monitor.status.bash -nand ShellCheck; Linux CI cannot exercise USB/launchd.Testing
Linux CI cannot run macOS launchd / USB / libimobiledevice; this PR does not invent those tests.
Locally on this branch:
Please confirm GitHub Actions ShellCheck is green on this PR before merging. After merge, a Mac smoke test is: edit
config.shoff the placeholders,bash install.sh, plug in a trusted iPhone with the disk mounted, thenbash uninstall.sh.Do not merge until you have reviewed — this is the next repo after restic-backup-toolkit.