Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
ffb8c26
Add CachyOS logo and package support
ruxir-ig Dec 8, 2025
1d033eb
Update .gitignore and add non-Nerd Font version functionality
ruxir-ig Jan 2, 2026
2939d38
Update README.md to reflect repository ownership and maintainability
ruxir-ig Jan 2, 2026
6cc6d4c
Bump version to 0.2.3
ruxir-ig Jan 2, 2026
c214791
Add PKGBUILD and update setup.sh for v0.2.3
ruxir-ig Jan 2, 2026
5b53f06
Update .gitignore and improve README.md formatting for clarity
ruxir-ig Jan 2, 2026
e0e7ea5
Update README.md to enhance Nerd Font version preview with updated ic…
ruxir-ig Jan 2, 2026
f5b3864
Fix PKGBUILD version to 0.2.2 and update checksum placeholder
ruxir-ig Jan 2, 2026
6d034ee
Add .SRCINFO file for package metadata and dependencies
ruxir-ig Jan 2, 2026
a131fae
Bump version to v0.2.4: update nitch.nimble, PKGBUILD, setup.sh, .SRC…
ruxir-ig Jan 2, 2026
6d48619
Update PKGBUILD and .SRCINFO with release tarball sha256
ruxir-ig Jan 2, 2026
cd39d2e
Add CI workflow (build & packaging sanity) and release workflow (buil…
ruxir-ig Jan 2, 2026
05b98e4
Run makepkg as non-root in Arch container for packaging sanity check
ruxir-ig Jan 2, 2026
6c83449
Run packaging check inside container using a repo clone (avoid chown …
ruxir-ig Jan 2, 2026
32d46be
Fix git clone URL in packaging sanity check
ruxir-ig Jan 2, 2026
a8c3f30
Fix Verify binaries run block formatting
ruxir-ig Jan 5, 2026
d02d414
Pass GITHUB_TOKEN to actions/create-release
ruxir-ig Jan 5, 2026
4e72d99
Provide GITHUB_TOKEN via env to create-release step
ruxir-ig Jan 5, 2026
f780104
Mark '-ci-test' tag releases as prerelease
ruxir-ig Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
pkgbase = nitch
pkgdesc = Incredibly fast system fetch written in Nim
pkgver = 0.2.4
pkgrel = 1
url = https://github.com/ruxir-ig/nitch
arch = x86_64
license = MIT
makedepends = nim
makedepends = nimble
source = nitch-0.2.4.tar.gz::https://github.com/ruxir-ig/nitch/archive/refs/tags/v0.2.4.tar.gz
sha256sums = 8e386ba7cbf53cc1a5017d209e5b369cbd16df3f47f7e3cf1af9bb28d12aec44

pkgname = nitch
pkgdesc = Incredibly fast system fetch written in Nim (Nerd Font icons)
optdepends = nerd-fonts: for icon support

pkgname = nitch-nonerd
pkgdesc = Incredibly fast system fetch written in Nim (no Nerd Font icons)
provides = nitch
conflicts = nitch
58 changes: 58 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
name: Build binaries
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install choosenim (Nim toolchain)
run: |
curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
echo "$HOME/.nim/bin" >> $GITHUB_PATH

- name: Show Nim version
run: nim --version

- name: Build Nerd Font binary
run: nimble build -d:release -y

- name: Build Non-Nerd Font binary
run: nim c -d:release -o:nitchNoNerd src/nitchNoNerd.nim

- name: Upload binaries as workflow artifacts
uses: actions/upload-artifact@v4
with:
name: nitch-binaries
path: |
./nitch
./nitchNoNerd

packaging-sanity:
name: Packaging sanity check
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Validate .SRCINFO matches PKGBUILD (run in Arch container)
run: |
docker pull archlinux:latest
docker run --rm -e GITHUB_REPOSITORY='${{ github.repository }}' -e GITHUB_SHA='${{ github.sha }}' archlinux:latest /bin/bash -lc "\
pacman -Sy --noconfirm --needed base-devel git nim && \
useradd -m builder && \
git clone https://github.com/\$GITHUB_REPOSITORY /tmp/nitch && \
cd /tmp/nitch && git checkout \$GITHUB_SHA || true && \
chown -R builder:builder /tmp/nitch && \
su builder -c 'cd /tmp/nitch && makepkg --printsrcinfo > .SRCINFO.new' && \
diff -u .SRCINFO .SRCINFO.new || (echo '.SRCINFO mismatch' && exit 1)"
56 changes: 56 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install choosenim (Nim toolchain)
run: |
curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
echo "$HOME/.nim/bin" >> $GITHUB_PATH

- name: Build Nerd Font binary
run: nimble build -d:release -y

- name: Build Non-Nerd Font binary
run: nim c -d:release -o:nitchNoNerd src/nitchNoNerd.nim

- name: Verify binaries
run: |
ls -la nitch nitchNoNerd || (echo "build failed: binaries missing" && exit 1)
chmod +x nitch nitchNoNerd || true

- name: Create GitHub release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
release_name: ${{ github.ref_name }}
body: "Release ${{ github.ref_name }}"
draft: false
prerelease: ${{ contains(github.ref_name, '-ci-test') }}

- name: Upload release assets
uses: softprops/action-gh-release@v1
with:
files: |
nitch
nitchNoNerd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
nitch*
# Compiled binaries
/nitch
/nitchNoNerd

# Packaging artifacts
/pkg/
/nitch-*.tar.gz
/src/nitch-*.tar.gz
/src/nitch-*/

# Arch package artifacts
/*.pkg.tar.zst
/*.pkg.tar.zst.sig
43 changes: 43 additions & 0 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Maintainer: ruxir-ig <ruchirkalokhe@gmail.com.com>
# Contributor: unxsh (original author)

pkgbase=nitch
pkgname=('nitch' 'nitch-nonerd')
pkgver=0.2.4
pkgrel=1
pkgdesc="Incredibly fast system fetch written in Nim"
arch=('x86_64')
url="https://github.com/ruxir-ig/nitch"
license=('MIT')
makedepends=('nim' 'nimble')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/ruxir-ig/nitch/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('8e386ba7cbf53cc1a5017d209e5b369cbd16df3f47f7e3cf1af9bb28d12aec44') # Release tarball sha256

build() {
cd "$pkgbase-$pkgver"

# Build Nerd Font version
nimble build -d:release -y

# Build Non-Nerd Font version
nim c -d:release -o:nitchNoNerd src/nitchNoNerd.nim
}

package_nitch() {
pkgdesc="Incredibly fast system fetch written in Nim (Nerd Font icons)"
optdepends=('nerd-fonts: for icon support')

cd "$pkgbase-$pkgver"
install -Dm755 nitch "$pkgdir/usr/bin/nitch"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

package_nitch-nonerd() {
pkgdesc="Incredibly fast system fetch written in Nim (no Nerd Font icons)"
conflicts=('nitch')
provides=('nitch')

cd "$pkgbase-$pkgver"
install -Dm755 nitchNoNerd "$pkgdir/usr/bin/nitch"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
Loading