Skip to content

volodymyrprokopyuk/bayanguru

Repository files navigation

Sheet music library for bayan

Dependencies

Install dependencies

# Build bayanguru command with Go
yay -S go golangci-lint
# Automate bayanguru commands with Fish
yay -S fish
# Engrave pieces and books with LilyPond
yay -S ghostscript gsfonts fontforge t1utils texlive-{metapost,langcyrillic}
# Upload scores to Cloudflare R2 object store with rclone
yay -S rclone
# Style bayanguru website with TailwindCSS
bun install tailwindcss @tailwindcss/cli
# Index bayanguru website for searching with pagefind
yay -S pagefind
# Validate bayanguru website HTML locally with html-validate
bun install html-validate
# Serve bayanguru website locally with Caddy
yay -S caddy
# Deploy bayanguru website to Cloudflare Pages with wrangler
bun install wrangler

Usage

Install bayanguru

go install github.com/volodymyrprokopyuk/bayanguru@latest

Author, engrave, and publish pieces

# Generate random piece ID
tr -dc a-z0-9 </dev/urandom | head -c 4
# Initialize piece source code
./bin/bayanguru engrave pieceID -i
# Initialize lyrics source code
./bin/bayanguru engrave pieceID -i --lyr
# Lint piece source code, engrave piece, optimize piece PDF
./bin/bayanguru engrave pieceID -lo
# Publish piece PDF to Cloudflare
./bin/bayanguru publish pieceID -u

Development

Bayanguru development workflow

# Lint Go code
./bayanguru.fish lint
# Build Go code
./bayanguru.fish build
# Validate website HTML
./bayanguru.fish validate
# Publish website locally
./bayanguru.fish publish
# Server website locally
./bayanguru.fish serve
# Deploy website to Cloudflare
./bayanguru.fish deploy
# Install bayanguru Fish completions
./bayanguru.fish completions

License

GPLv3 GNU General Public License v3.0

Contributors

Languages