Пример
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a: parse postgresql service file and retrieve service settings with pgservicefile
Проверенный пример — golang github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a: parse postgresql service file and retrieve service settings…
sha256:3234ffb0c4b3c593ab29ebfe1cc79d7b7f84f581e2bcbf595efcea3015c77a18
Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла.
Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди.
MIT-0
Свидетельства выполнения
Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.
- Основа свидетельства
- Подписанный контракт пройден
- Квитанции проверки
- 1
- Ключи подписи, собравшие его
- 1
Заявленная среда
linux 24 · ubuntu · glibc 2.39 x64 go
Среды запусков проверки
| Окружение | Контракт | Этапы | Запуск |
|---|---|---|---|
| go 1.26 · linux alpine/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1golang:1.26-alpine@sha256:28d89ee9cc0f… |
2026-08-27 |
Кейс
HOW- Цель
- parse postgresql service file and retrieve service settings with pgservicefile
- Символы
-
- pgservicefile.ParseServicefile
- pgservicefile.ReadServicefile
- pgservicefile.Servicefile.GetService
- Создан
- 2026-08-27T21:44:20Z
Контракт
- pgservicefile.ParseServicefile parses INI-format service definition from io.Reader
- pgservicefile.ReadServicefile reads and parses service file from path
- pgservicefile.Servicefile.GetService retrieves specific service settings by name and returns error for nonexistent service
Файлы
- PROMPT.md
- csx.json
- go.mod
- go.sum
- spec.json
- test/contract.go
Исходный код
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: parse postgresql service file and retrieve service settings with pgservicefile
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/github.com/jackc/pgservicefile@v0.0.0-20221227161230-091c0ba34f0a
Demonstrate these symbols/APIs:
- pgservicefile.ParseServicefile
- pgservicefile.ReadServicefile
- pgservicefile.Servicefile.GetService
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:e15c6b81d973eb7e7a03e25137c6dcff25dbcb86a50ee0cc5824b3949d95c88f","contract":["pgservicefile.ParseServicefile parses INI-format service definition from io.Reader","pgservicefile.ReadServicefile reads and parses service file from path","pgservicefile.Servicefile.GetService retrieves specific service settings by name and returns error for nonexistent service"],"goal":"parse postgresql service file and retrieve service settings with pgservicefile","kind":"HOW","packages":["pkg:golang/github.com/jackc/pgservicefile@v0.0.0-20221227161230-091c0ba34f0a"],"schemaVersion":1,"symbols":["pgservicefile.ParseServicefile","pgservicefile.ReadServicefile","pgservicefile.Servicefile.GetService"]},"contractCommand":["go","run","./test"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"golang","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"go","schemaVersion":1},"license":"MIT-0","packages":["pkg:golang/github.com/jackc/pgservicefile@v0.0.0-20221227161230-091c0ba34f0a"],"schemaVersion":1,"subject":"pkg:golang/github.com/jackc/pgservicefile@v0.0.0-20221227161230-091c0ba34f0a","symbols":["pgservicefile.ParseServicefile","pgservicefile.ReadServicefile","pgservicefile.Servicefile.GetService"],"verifierAdapter":"golang@1"}
module sample
go 1.22
require github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
{
"schemaVersion": 1,
"goal": "parse postgresql service file and retrieve service settings with pgservicefile",
"kind": "HOW",
"packages": [
"pkg:golang/github.com/jackc/pgservicefile@v0.0.0-20221227161230-091c0ba34f0a"
],
"symbols": [
"pgservicefile.ParseServicefile",
"pgservicefile.ReadServicefile",
"pgservicefile.Servicefile.GetService"
]
}
package main
import (
"fmt"
"os"
"path/filepath"
"strings"
"github.com/jackc/pgservicefile"
)
func main() {
serviceContent := `[mydb]
host=localhost
port=5432
user=testuser
dbname=testdb
[otherdb]
host=db.example.com
port=5433
user=otheruser
dbname=otherdb
`
// 1. Verify pgservicefile.ParseServicefile parses INI-format service definition from io.Reader
reader := strings.NewReader(serviceContent)
sfParsed, err := pgservicefile.ParseServicefile(reader)
if err != nil {
fmt.Fprintf(os.Stderr, "pgservicefile.ParseServicefile failed: %v\n", err)
os.Exit(1)
}
if len(sfParsed.Services) != 2 {
fmt.Fprintf(os.Stderr, "expected 2 services from ParseServicefile, got %d\n", len(sfParsed.Services))
os.Exit(1)
}
// 2. Verify pgservicefile.ReadServicefile reads and parses service file from path
tmpDir, err := os.MkdirTemp("", "pgservicefile-test-*")
if err != nil {
fmt.Fprintf(os.Stderr, "failed to create temp dir: %v\n", err)
os.Exit(1)
}
defer os.RemoveAll(tmpDir)
filePath := filepath.Join(tmpDir, "pg_service.conf")
if err := os.WriteFile(filePath, []byte(serviceContent), 0600); err != nil {
fmt.Fprintf(os.Stderr, "failed to write service file: %v\n", err)
os.Exit(1)
}
sfRead, err := pgservicefile.ReadServicefile(filePath)
if err != nil {
fmt.Fprintf(os.Stderr, "pgservicefile.ReadServicefile failed: %v\n", err)
os.Exit(1)
}
if len(sfRead.Services) != 2 {
fmt.Fprintf(os.Stderr, "expected 2 services from ReadServicefile, got %d\n", len(sfRead.Services))
os.Exit(1)
}
// 3. Verify pgservicefile.Servicefile.GetService retrieves specific service and handles missing service
svc, err := sfRead.GetService("mydb")
if err != nil {
fmt.Fprintf(os.Stderr, "GetService('mydb') failed: %v\n", err)
os.Exit(1)
}
if svc == nil {
fmt.Fprintf(os.Stderr, "expected non-nil service for mydb\n")
os.Exit(1)
}
if svc.Name != "mydb" {
fmt.Fprintf(os.Stderr, "expected service Name 'mydb', got %s\n", svc.Name)
os.Exit(1)
}
if svc.Settings["host"] != "localhost" || svc.Settings["port"] != "5432" || svc.Settings["dbname"] != "testdb" {
fmt.Fprintf(os.Stderr, "service settings mismatch: %+v\n", svc.Settings)
os.Exit(1)
}
// Verify nonexistent service returns error
_, err = sfRead.GetService("nonexistent")
if err == nil {
fmt.Fprintf(os.Stderr, "expected error for nonexistent service, got nil\n")
os.Exit(1)
}
fmt.Println("pgservicefile contract verified successfully")
}
Исходный сидер
аноним