Hfsutils
HFS is the “Hierarchical File System,” the native volume format used on modern Macintosh computers. hfsutils is the name of a comprehensive software package being developed to permit manipulation of HFS volumes from UNIX and other systems.
Install / Use
/learn @JotaRandom/HfsutilsREADME
GitHub Workflows for hfsutils
This directory contains GitHub Actions workflows for continuous integration and testing.
Workflows
CI Workflow (.github/workflows/ci.yml)
Comprehensive continuous integration workflow that builds and tests hfsutils on multiple platforms.
Jobs
-
build-and-test-ubuntu
- Platform: Ubuntu Latest
- Builds complete project using
build.sh - Creates symlinks for filesystem utilities
- Runs comprehensive test suite:
- Basic functionality tests
- Integration workflow tests
- HFS+ specific tests
- Error handling tests
- Specification conformance tests
- Tests installation to verify package structure
- Uploads artifacts on failure for debugging
-
build-and-test-archlinux
- Platform: Arch Linux (container)
- Same test suite as Ubuntu
- Validates compatibility with rolling-release distribution
- Uses latest Arch Linux packages
- Independent artifact upload for debugging
-
test-specification-conformance
- Platform: Ubuntu Latest
- Runs after successful Ubuntu build
- Validates HFS/HFS+ specification compliance:
- HFS Alternate MDB Location: Verifies signature
0x4244atdevice_size - 1024 - HFS+ Alternate Volume Header: Verifies signature
0x482Bor0x4244atdevice_size - 1024 - HFS+ attributes Field: Validates
kHFSVolumeUnmountedBit(0x0100) is set
- HFS Alternate MDB Location: Verifies signature
- Uses
hexdumpto inspect binary structures - Ensures conformance to Apple TN1150 specification
-
cross-platform-compatibility
- Platform: Ubuntu Latest
- Runs after all builds complete
- Summary job to verify all platforms passed
- Provides single checkpoint for PR approval
Test Categories
The test suite (test/run_tests.sh) includes:
- basic: Core functionality (mount, ls, copy, etc.)
- integration: Real-world workflows (backup, migration, archive)
- hfsplus: HFS+ specific features (formatting, detection, journaling)
- errors: Error handling and edge cases
- all: Complete test suite
Triggers
- Push: Any push to
masterbranch - Pull Request: Any PR targeting
masterbranch
Dependencies
Ubuntu:
- build-essential
- gcc
- make
- perl
- hexdump
- util-linux
Arch Linux:
- base-devel
- gcc
- make
- perl
- git
- util-linux
Running Tests Locally
Ubuntu/Debian
sudo apt-get install build-essential gcc make perl hexdump
./build.sh
cd test
./run_tests.sh all
Arch Linux
sudo pacman -S base-devel gcc make perl util-linux
./build.sh
cd test
./run_tests.sh all
Quick Tests
cd test
./run_tests.sh basic # Basic functionality only
Specification Tests
cd test
./test_hfs_spec_validation.sh
./test_hfsplus_complete.sh
Artifacts
On test failure, the following artifacts are uploaded:
test/temp/- Temporary test files and imagestest/*.log- Test execution logs*.img- HFS/HFS+ disk images created during tests
Artifacts are kept for 90 days and can be downloaded from the Actions tab.
Status Badges
Add to README.md:

Maintenance
Adding New Tests
- Add test function to
test/run_tests.sh - Update workflow to include new test category if needed
- Test locally before pushing
Updating Dependencies
- Update package lists in workflow file
- Test in container locally:
docker run -it --rm -v $(pwd):/workspace -w /workspace ubuntu:latest bash # or docker run -it --rm -v $(pwd):/workspace -w /workspace archlinux:latest bash
Debugging Failures
- Check Actions tab for logs
- Download artifacts if available
- Reproduce locally using same commands
- Check specification conformance with
hexdump
References
Related Skills
node-connect
352.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
