feat: initial scaffold and generator

- Complete project structure with directories for all target platforms
- Template system for CLI tools with color placeholder replacement
- Working generator that processes templates for 6 theme variants
- GitHub workflows for build, snapshots, commitlint, and cli-verify
- Installer and verifier scripts for CLI tool deployment
- Comprehensive documentation and specifications
- Biome 2.x linting and formatting setup
- Husky git hooks for pre-commit validation
This commit is contained in:
2025-09-05 23:06:12 +03:00
commit 11baabe545
53 changed files with 2890 additions and 0 deletions

40
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint code
run: npm run lint
- name: Generate themes
run: npm run generate
- name: Validate output
run: npm run validate
- name: Check for uncommitted changes
run: |
if ! git diff --quiet; then
echo "Generated files have uncommitted changes!"
git diff
exit 1
fi

37
.github/workflows/cli-verify.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: CLI Verify
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
cli-verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Generate themes
run: npm run generate
- name: Run installer
run: |
export HOME=$(mktemp -d)
./cli/install.sh
- name: Run verifier
run: |
export HOME=$(mktemp -d)
./cli/install.sh
ENGINE=docker ./verify/verify.sh

26
.github/workflows/commitlint.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Commitlint
on:
pull_request:
branches: [ main ]
jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint commit messages
run: npx commitlint --from HEAD~${{ github.event.pull_request.commits }} --to HEAD --verbose

40
.github/workflows/snapshots.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Snapshots
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
snapshots:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Generate themes
run: npm run generate
- name: Run Playwright tests
run: npm run snapshots
- name: Upload snapshots
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-report
path: playwright-report/
retention-days: 30