Skip to content

Commit bb39d0e

Browse files
author
Alex J Lennon
committed
Initial release: WIC Editor v1.0.0
- Add comprehensive WIC image modification tool with GPLv3 license - Support for compressed (.wic.gz) and uncompressed (.wic) images - Interactive file conflict resolution with diff capabilities - Force and non-interactive modes for automation - Automatic partition detection and safe loop device handling - Complete documentation with examples and troubleshooting - GitHub templates and CI/CD workflow - SEO-optimized for embedded Linux community - Tested with NXP i.MX8MM EVK and Yocto Project Features: - Safe WIC image unpacking and repacking - Custom file addition with permission preservation - Intelligent conflict detection and resolution - UUU tool integration for NXP platforms - Comprehensive error handling and cleanup - Professional documentation and community guidelines Closes: Initial implementation milestone
0 parents  commit bb39d0e

File tree

12 files changed

+1258
-0
lines changed

12 files changed

+1258
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve WIC Editor
4+
title: ''
5+
labels: 'bug'
6+
assignees: ''
7+
---
8+
9+
**Describe the bug**
10+
A clear and concise description of what the bug is.
11+
12+
**To Reproduce**
13+
Steps to reproduce the behavior:
14+
1. Command used: `./wic-editor.sh ...`
15+
2. Input WIC image details (size, source, etc.)
16+
3. Custom files structure
17+
4. Error occurred
18+
19+
**Expected behavior**
20+
A clear and concise description of what you expected to happen.
21+
22+
**Environment (please complete the following information):**
23+
- OS: [e.g. Ubuntu 22.04]
24+
- WIC Editor version: [e.g. v1.0.0]
25+
- Target hardware: [e.g. NXP i.MX8MM EVK]
26+
- WIC image source: [e.g. Yocto dunfell]
27+
28+
**Screenshots**
29+
If applicable, add screenshots to help explain your problem.
30+
31+
**Log output**
32+
Please include the complete output from the script (remove any sensitive information).
33+
34+
**Additional context**
35+
Add any other context about the problem here.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for WIC Editor
4+
title: ''
5+
labels: 'enhancement'
6+
assignees: ''
7+
---
8+
9+
**Is your feature request related to a problem? Please describe.**
10+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
11+
12+
**Describe the solution you'd like**
13+
A clear and concise description of what you want to happen.
14+
15+
**Describe alternatives you've considered**
16+
A clear and concise description of any alternative solutions or features you've considered.
17+
18+
**Target hardware/platform**
19+
What embedded platform would this feature support? [e.g. NXP i.MX8MM, Raspberry Pi, etc.]
20+
21+
**Additional context**
22+
Add any other context or screenshots about the feature request here.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: Hardware support request
3+
about: Request support for new hardware platform
4+
title: 'Hardware support: [PLATFORM NAME]'
5+
labels: 'hardware-support'
6+
assignees: ''
7+
---
8+
9+
**Hardware platform**
10+
- Manufacturer: [e.g. NXP, Raspberry Pi Foundation]
11+
- Model: [e.g. i.MX8MM EVK]
12+
- Architecture: [e.g. ARM64, ARM32]
13+
14+
**WIC image details**
15+
- Source: [e.g. Yocto Project, vendor BSP]
16+
- Typical size: [e.g. 2GB]
17+
- Partition layout: [describe if known]
18+
19+
**Use case**
20+
Describe what you want to accomplish with WIC Editor on this platform.
21+
22+
**Testing capability**
23+
Do you have the hardware available for testing? Can you provide test WIC images?
24+
25+
**Additional information**
26+
Any other relevant information about the platform or special requirements.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## Description
2+
Brief description of the changes in this PR.
3+
4+
## Type of change
5+
- [ ] Bug fix (non-breaking change which fixes an issue)
6+
- [ ] New feature (non-breaking change which adds functionality)
7+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
8+
- [ ] Documentation update
9+
- [ ] Hardware support addition
10+
11+
## Testing
12+
- [ ] Tested on development hardware
13+
- [ ] Tested with compressed WIC images
14+
- [ ] Tested with uncompressed WIC images
15+
- [ ] Tested file conflict handling
16+
- [ ] Tested automated mode
17+
- [ ] Added/updated documentation
18+
19+
**Test Environment:**
20+
- OS: [e.g. Ubuntu 22.04]
21+
- Hardware: [e.g. NXP i.MX8MM EVK]
22+
- WIC image source: [e.g. Yocto dunfell]
23+
24+
## Checklist
25+
- [ ] My code follows the style guidelines of this project
26+
- [ ] I have performed a self-review of my own code
27+
- [ ] I have commented my code, particularly in hard-to-understand areas
28+
- [ ] I have made corresponding changes to the documentation
29+
- [ ] My changes generate no new warnings
30+
- [ ] I have added tests that prove my fix is effective or that my feature works
31+
- [ ] New and existing unit tests pass locally with my changes
32+
33+
## Screenshots (if applicable)
34+
Add screenshots to help explain your changes.

.github/workflows/ci.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
matrix:
15+
os: [ubuntu-20.04, ubuntu-22.04]
16+
17+
steps:
18+
- uses: actions/checkout@v3
19+
20+
- name: Install dependencies
21+
run: |
22+
sudo apt-get update
23+
sudo apt-get install -y gzip util-linux parted
24+
25+
- name: Check script syntax
26+
run: |
27+
bash -n wic-editor.sh
28+
29+
- name: Run shellcheck
30+
run: |
31+
sudo apt-get install -y shellcheck
32+
shellcheck wic-editor.sh
33+
34+
- name: Test help output
35+
run: |
36+
./wic-editor.sh -h
37+
38+
- name: Test with missing arguments
39+
run: |
40+
if ./wic-editor.sh; then
41+
echo "Script should fail with missing arguments"
42+
exit 1
43+
fi

.gitignore

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# WIC Editor working directories
2+
wic_work/
3+
*.wic
4+
*.wic.gz
5+
*_modified.wic*
6+
*_backup.wic*
7+
8+
# Custom files directories (except examples)
9+
custom_files/
10+
!examples/custom_files/
11+
12+
# Temporary files
13+
*.tmp
14+
*.temp
15+
.DS_Store
16+
Thumbs.db
17+
18+
# Editor files
19+
*.swp
20+
*.swo
21+
*~
22+
.vscode/
23+
.idea/
24+
25+
# Log files
26+
*.log
27+
*.out
28+
29+
# Loop devices backup
30+
loop_devices_backup.txt
31+
32+
# OS generated files
33+
.DS_Store
34+
.DS_Store?
35+
._*
36+
.Spotlight-V100
37+
.Trashes
38+
ehthumbs.db
39+
Thumbs.db

CODE_OF_CONDUCT.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in the WIC Editor community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
## Our Standards
8+
9+
Examples of behavior that contributes to a positive environment:
10+
11+
* Using welcoming and inclusive language
12+
* Being respectful of differing viewpoints and experiences
13+
* Gracefully accepting constructive criticism
14+
* Focusing on what is best for the community
15+
* Showing empathy towards other community members
16+
17+
Examples of unacceptable behavior:
18+
19+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
20+
* Trolling, insulting or derogatory comments, and personal or political attacks
21+
* Public or private harassment
22+
* Publishing others' private information without explicit permission
23+
* Other conduct which could reasonably be considered inappropriate in a professional setting
24+
25+
## Enforcement Responsibilities
26+
27+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
28+
29+
## Scope
30+
31+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces.
32+
33+
## Enforcement
34+
35+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [email protected].
36+
37+
All complaints will be reviewed and investigated promptly and fairly.
38+
39+
## Attribution
40+
41+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.0.
42+

CONTRIBUTING.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Contributing to WIC Editor
2+
3+
Thank you for considering contributing to WIC Editor! We welcome contributions from the embedded Linux community.
4+
5+
## How to Contribute
6+
7+
### Reporting Bugs
8+
1. Check existing issues to avoid duplicates
9+
2. Use the bug report template
10+
3. Include detailed reproduction steps
11+
4. Provide system information and logs
12+
13+
### Suggesting Features
14+
1. Use the feature request template
15+
2. Explain the use case clearly
16+
3. Consider implementation complexity
17+
4. Be open to discussion and iteration
18+
19+
### Code Contributions
20+
1. Fork the repository
21+
2. Create a feature branch
22+
3. Follow coding standards
23+
4. Add tests if applicable
24+
5. Update documentation
25+
6. Submit a pull request
26+
27+
## Development Setup
28+
29+
### Prerequisites
30+
- Linux-based system (Ubuntu/Debian preferred)
31+
- bash shell
32+
- sudo privileges
33+
- Git
34+
35+
### Required Tools
36+
```bash
37+
sudo apt-get install gzip util-linux parted

LICENSE

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
GNU GENERAL PUBLIC LICENSE
2+
Version 3, 29 June 2007
3+
4+
Copyright (C) 2025 Dynamic Devices Ltd
5+
6+
This program is free software: you can redistribute it and/or modify
7+
it under the terms of the GNU General Public License as published by
8+
the Free Software Foundation, either version 3 of the License, or
9+
(at your option) any later version.
10+
11+
This program is distributed in the hope that it will be useful,
12+
but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
GNU General Public License for more details.
15+
16+
You should have received a copy of the GNU General Public License
17+
along with this program. If not, see <https://www.gnu.org/licenses/>.

0 commit comments

Comments
 (0)