cmd/pkgserver: use IR cache for ident

This removes requirement to open full cache.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-02 03:32:43 +09:00
parent 6d8fd7ec3b
commit 4ed20098c9
5 changed files with 36 additions and 54 deletions

View File

@@ -10,12 +10,9 @@ import (
"syscall"
"time"
"hakurei.app/check"
"hakurei.app/cmd/pkgserver/internal/ui"
"hakurei.app/command"
"hakurei.app/internal/pkg"
"hakurei.app/internal/rosa"
"hakurei.app/message"
)
const shutdownTimeout = 15 * time.Second
@@ -25,17 +22,14 @@ func main() {
log.SetPrefix("pkgserver: ")
var (
flagBaseDir string
flagAddr string
flagAddr string
)
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
defer stop()
msg := message.New(log.Default())
c := command.New(os.Stderr, log.Printf, "pkgserver", func(args []string) error {
var (
cache *pkg.Cache
report *rosa.Report
)
switch len(args) {
@@ -43,17 +37,8 @@ func main() {
break
case 1:
baseDir, err := check.NewAbs(flagBaseDir)
if err != nil {
return err
}
cache, err = pkg.Open(ctx, msg, 0, 0, 0, baseDir)
if err != nil {
return err
}
defer cache.Close()
var err error
rosa.DropCaches(rosa.OptLLVMNoLTO)
report, err = rosa.OpenReport(args[0])
if err != nil {
return err
@@ -61,12 +46,11 @@ func main() {
default:
return errors.New("pkgserver requires 1 argument")
}
var index packageIndex
index.search = make(searchCache)
if err := index.populate(cache, report); err != nil {
if err := index.populate(report); err != nil {
return err
}
ticker := time.NewTicker(1 * time.Minute)
@@ -98,10 +82,6 @@ func main() {
}()
return server.ListenAndServe()
}).Flag(
&flagBaseDir,
"b", command.StringFlag(""),
"base directory for cache",
).Flag(
&flagAddr,
"addr", command.StringFlag(":8067"),
"TCP network address to listen on",