Lindenii Project Forge
Add sqlc
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org> # # TODO: This Makefile utilizes a lot of GNU extensions. Some of them are # unfortunately difficult to avoid as POSIX Make's pattern rules are not # sufficiently expressive. This needs to be fixed sometime (or we might move to # some other build system). # .PHONY: clean all CFLAGS = -Wall -Wextra -pedantic -std=c99 -D_GNU_SOURCE all: dist/forged dist/git2d dist/hookc
dist/forged: $(shell git ls-files forged)
dist/forged: $(shell git ls-files forged) $(shell git ls-files sql)
mkdir -p dist
sqlc generate
CGO_ENABLED=0 go build -o dist/forged -ldflags '-extldflags "-f no-PIC -static"' -tags 'osusergo netgo static_build' ./forged dist/git2d: $(wildcard git2d/*.c) mkdir -p dist $(CC) $(CFLAGS) -o dist/git2d $^ $(shell pkg-config --cflags --libs libgit2) -lpthread dist/hookc: $(wildcard hookc/*.c) mkdir -p dist $(CC) $(CFLAGS) -o dist/hookc $^ clean: rm -rf dist
/*.go
-- name: GetGroupIDDescByPath :one WITH RECURSIVE group_path_cte AS ( SELECT id, parent_group, name, 1 AS depth FROM groups WHERE name = ($1::text[])[1] AND parent_group IS NULL UNION ALL SELECT g.id, g.parent_group, g.name, group_path_cte.depth + 1 FROM groups g JOIN group_path_cte ON g.parent_group = group_path_cte.id WHERE g.name = ($1::text[])[group_path_cte.depth + 1] AND group_path_cte.depth + 1 <= cardinality($1::text[]) ) SELECT c.id, COALESCE(g.description, '') FROM group_path_cte c JOIN groups g ON g.id = c.id WHERE c.depth = cardinality($1::text[]);
version: "2" sql: - engine: "postgresql" schema: "sql/schema.sql" queries: "sql/queries" gen: go: package: "queries" out: "forged/internal/database/queries" sql_package: "pgx/v5" emit_json_tags: true emit_db_tags: true emit_prepared_queries: true emit_pointers_for_null_types: true emit_enum_valid_method: true