Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,9 @@ jobs:

- name: Prepare binary for DALEC
run: |
mkdir -p src/src
mkdir -p src/src/man
cp spry src/src/spry
cp man/spry.1 src/src/man/spry.1
chmod +x src/src/spry

echo "✅ Binary prepared in src/src/ directory."
Expand Down
13 changes: 10 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ build-windows: download-deps ## Build Windows package (native Deno compilation)
@echo "Compiling spry for Windows..."
deno compile \
--allow-all \
--import-map=import_map.json \
--target x86_64-pc-windows-msvc \
--output=spry.exe \
spry.ts
Expand All @@ -60,7 +59,6 @@ compile-local: download-deps ## Compile spry locally with Deno
echo "Compiling spry..."; \
deno compile \
--allow-all \
--import-map=import_map.json \
--output=spry \
spry.ts; \
echo "✅ Done! Binary created: ./spry"; \
Expand All @@ -70,8 +68,9 @@ compile-local: download-deps ## Compile spry locally with Deno

prepare-src: compile-local ## Prepare src directory for DALEC
@echo "Preparing src directory for DALEC..."
@mkdir -p src/src
@mkdir -p src/src/man
@cp spry src/src/spry
@cp man/spry.1 src/src/man/spry.1
@chmod +x src/src/spry
@echo "✅ Binary prepared in src/src/ directory"

Expand All @@ -92,10 +91,18 @@ install: ## Install spry locally (requires sudo)
@echo "Installing spry to /usr/local/bin..."
sudo cp spry /usr/local/bin/spry
sudo chmod +x /usr/local/bin/spry
@echo "Installing man page..."
sudo mkdir -p /usr/local/share/man/man1
sudo cp man/spry.1 /usr/local/share/man/man1/spry.1
@echo "Updating man database..."
sudo mandb
@echo "Installation complete. Run 'spry --help' to verify."

uninstall: ## Uninstall spry from system
@echo "Uninstalling spry..."
sudo rm -f /usr/local/bin/spry
sudo rm -f /usr/local/share/man/man1/spry.1
@echo "Updating man database..."
sudo mandb
@echo "Uninstall complete."

12 changes: 8 additions & 4 deletions dalec-spry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,18 @@ build:
cp -p src/src/src/spry ./spry
chmod +x spry

# Handle man page
cp src/src/src/man/spry.1 ./spry.1

# Verify the binary works before packaging
file ./spry
ls -lh ./spry

artifacts:
binaries:
spry:
manpages:
spry.1:

tests:
- name: Check spry binary exists
Expand All @@ -52,13 +57,12 @@ tests:
- command: test -x /usr/bin/spry

targets:
jammy: # Ubuntu 22.04 DEB
jammy: # Ubuntu 22.04 DEB
dependencies:
runtime:
ca-certificates:
bookworm: # Debian 12 DEB
bookworm: # Debian 12 DEB
dependencies:
runtime:
ca-certificates:
windowscross: # Windows cross-compilation

windowscross: # Windows cross-compilation
30 changes: 30 additions & 0 deletions man/spry.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.TH SPRY 1 "December 2025" "0.106.0" "Spry Manual"
.SH NAME
spry \- Spry CLI - A declarative web application framework
.SH SYNOPSIS
.B spry
[\fIOPTIONS\fR] [\fICOMMAND\fR]
.SH DESCRIPTION
Spry CLI is a command-line interface for managing Spry applications.
.SH OPTIONS
.TP
.BR \-h ", " \-\-help
Show this help message and exit.
.TP
.BR \-V ", " \-\-version
Show the version number.
.SH COMMANDS
.TP
.B axiom
Spry Axiom Explorer CLI.
.TP
.B rb
Spry Runbook operator.
.TP
.B sp
Spry SQLPage Playbook operator.
.TP
.B completions
Generate shell completions.
.SH AUTHOR
Spry Team
9 changes: 8 additions & 1 deletion scripts/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,16 @@ sed -i.bak -E "s|/v[0-9]+\.[0-9]+\.[0-9]+/|/v$VERSION/|g" DEPLOYMENT.md
sed -i.bak -E "s|_[0-9]+\.[0-9]+\.[0-9]+-|_${VERSION}-|g" DEPLOYMENT.md
rm -f DEPLOYMENT.md.bak

# Update version and date in man/spry.1 header
echo "Updating version and date in man/spry.1..."
CURRENT_DATE=$(date +"%B %Y")
# Update header line: .TH SPRY 1 "Date" "Version" "Manual Name"
sed -i.bak -E "s/^(\.TH SPRY 1 \")[^\"]+(\" \")[^\"]+(\".*)$/\1$CURRENT_DATE\2$VERSION\3/" man/spry.1
rm -f man/spry.1.bak

# Commit changes
echo "Committing version changes..."
git add dalec-spry.yaml spry.ts README.md QUICKSTART.md DEPLOYMENT.md
git add dalec-spry.yaml spry.ts README.md QUICKSTART.md DEPLOYMENT.md man/spry.1
git commit -m "Release v$VERSION" || echo "No changes to commit"
git push origin main

Expand Down
1 change: 1 addition & 0 deletions spry.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env -S deno run -A --node-modules-dir=auto
// Use `deno run -A --watch` in the shebang if you're contributing / developing Spry itself.

// import { CLI } from "https://raw.githubusercontent.com/sijucj/spry_private/refs/tags/v0.106.0/bin/spry.ts";
import { CLI } from "https://raw.githubusercontent.com/programmablemd/spry/refs/tags/v0.106.0/bin/spry.ts";

await CLI({ defaultFiles: ["Spryfile.md"] }).parse(Deno.args);
30 changes: 30 additions & 0 deletions src/src/man/spry.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.TH SPRY 1 "December 2025" "0.102.1" "Spry Manual"
.SH NAME
spry \- Spry CLI - A declarative web application framework
.SH SYNOPSIS
.B spry
[\fIOPTIONS\fR] [\fICOMMAND\fR]
.SH DESCRIPTION
Spry CLI is a command-line interface for managing Spry applications.
.SH OPTIONS
.TP
.BR \-h ", " \-\-help
Show this help message and exit.
.TP
.BR \-V ", " \-\-version
Show the version number.
.SH COMMANDS
.TP
.B axiom
Spry Axiom Explorer CLI.
.TP
.B rb
Spry Runbook operator.
.TP
.B sp
Spry SQLPage Playbook operator.
.TP
.B completions
Generate shell completions.
.SH AUTHOR
Spry Team
Loading