awesome-omarchy-tui 0.5.1

A beautiful terminal UI for browsing the awesome-omarchy repository with search, navigation, and GitHub integration
Documentation
# AUR PKGBUILD Generator Scripts

This directory contains scripts for generating Arch User Repository (AUR) package files for the awesome-omarchy-tui project.

## Scripts

### `generate-aur-pkgbuild.sh`

A comprehensive script that generates compliant PKGBUILD files for both source and binary variants of awesome-omarchy-tui, following AUR submission guidelines.

#### Features

- **Dual Package Support**: Generates both source (`awesome-omarchy-tui`) and binary (`awesome-omarchy-tui-bin`) packages
- **AUR Compliance**: Follows all AUR submission guidelines and package standards
- **Automatic Version Detection**: Extracts version information from `Cargo.toml`
- **Dynamic Checksums**: Calculates SHA256 checksums for source and binary packages
- **Comprehensive Validation**: Includes PKGBUILD validation using makepkg
- **Flexible Output**: Configurable output directory and generation options
- **Error Handling**: Robust error handling and informative logging

#### Quick Start

```bash
# Generate both source and binary PKGBUILDs
./scripts/generate-aur-pkgbuild.sh

# Generate only source package
./scripts/generate-aur-pkgbuild.sh --source-only

# Generate to custom directory
./scripts/generate-aur-pkgbuild.sh --output ./my-aur-packages

# Use specific version
./scripts/generate-aur-pkgbuild.sh --version 1.0.0

# Generate and validate
./scripts/generate-aur-pkgbuild.sh --validate
```

#### Generated Files

The script generates the following files:

- `PKGBUILD-source`: Source package PKGBUILD for building from Rust source
- `PKGBUILD-bin`: Binary package PKGBUILD for pre-compiled binaries
- `.SRCINFO-source`: Source package metadata for AUR submission
- `.SRCINFO-bin`: Binary package metadata for AUR submission

#### AUR Package Details

**Source Package (`awesome-omarchy-tui`)**
- **Package Name**: `awesome-omarchy-tui`
- **Build Method**: Compiles from Rust source using cargo
- **Dependencies**: `rust`, `cargo`
- **Architecture**: `x86_64`
- **License**: `MIT`

**Binary Package (`awesome-omarchy-tui-bin`)**
- **Package Name**: `awesome-omarchy-tui-bin`
- **Build Method**: Installs pre-compiled binary from GitHub releases
- **Dependencies**: None (beyond system libraries)
- **Architecture**: `x86_64`
- **License**: `MIT`
- **Provides**: `awesome-omarchy-tui` (conflicts with source package)

#### Usage Examples

```bash
# Basic usage - generate both packages
./scripts/generate-aur-pkgbuild.sh

# Generate for testing without network calls
./scripts/generate-aur-pkgbuild.sh --no-checksums

# Generate source package only with validation
./scripts/generate-aur-pkgbuild.sh --source-only --validate

# Force overwrite existing files
./scripts/generate-aur-pkgbuild.sh --force

# Custom output directory
./scripts/generate-aur-pkgbuild.sh --output /path/to/aur-packages
```

#### Testing Generated PKGBUILDs

After generation, you can test the PKGBUILDs locally:

```bash
# Navigate to output directory
cd aur-pkgbuilds

# Test source package build
cp PKGBUILD-source PKGBUILD
makepkg -si --nocheck

# Or test binary package
cp PKGBUILD-bin PKGBUILD
makepkg -si --nocheck
```

#### AUR Submission Workflow

1. **Generate PKGBUILDs**: Run the script to generate current package files
2. **Review Files**: Check generated PKGBUILDs and .SRCINFO files
3. **Test Locally**: Build packages locally to verify functionality
4. **Submit to AUR**: Upload to AUR using git or web interface

```bash
# Example AUR submission workflow
./scripts/generate-aur-pkgbuild.sh --validate
cd aur-pkgbuilds

# Test source package
cp PKGBUILD-source PKGBUILD
cp .SRCINFO-source .SRCINFO
makepkg --printsrcinfo > .SRCINFO
git add PKGBUILD .SRCINFO
git commit -m "Update to version X.Y.Z"
git push
```

#### Integration with CI/CD

The script is designed to work with GitHub Actions and other CI/CD systems:

```yaml
- name: Generate AUR PKGBUILDs
  run: |
    ./scripts/generate-aur-pkgbuild.sh --validate
    
- name: Upload to AUR
  run: |
    # Custom logic for AUR submission
```

#### Dependencies

- **Required**: `bash`, `curl`, `sha256sum`
- **Optional**: `makepkg` (for validation and .SRCINFO generation)

#### Troubleshooting

**Common Issues:**

1. **Version extraction fails**: Ensure `Cargo.toml` exists and has proper version format
2. **Checksum calculation fails**: Check network connectivity and release availability
3. **Validation fails**: Install `base-devel` package group for makepkg

**Debug Mode:**

Use `bash -x` to run the script in debug mode:

```bash
bash -x ./scripts/generate-aur-pkgbuild.sh
```

#### Architecture Notes

The script currently supports `x86_64` architecture. Additional architectures can be added by:

1. Updating the `arch` array in PKGBUILDs
2. Adding checksum calculation for additional architectures
3. Updating the binary download URLs

#### License

This script is part of the awesome-omarchy-tui project and is licensed under the MIT License.