~ knotless Search/
↑↓ move↵ open⇧↵ all results
0
0
main
33 lines · 812 B Raw History
package vaultmain

import (
	"context"
	"fmt"
	"log/slog"

	"github.com/johnandersen777/socialweb-computer-kcp/internal/foldmain"
)

func Main(ctx context.Context, inv foldmain.Invocation) int {
	if err := run(ctx, inv.Args, inv); err != nil {
		fmt.Fprintln(inv.Stderr, "socialweb-vault:", err)
		return 1
	}
	return 0
}

func run(ctx context.Context, args []string, inv foldmain.Invocation) error {
	if len(args) != 1 || args[0] != "apply-root" {
		return fmt.Errorf("usage: vault apply-root")
	}
	cfg, err := load(inv.Env)
	if err != nil {
		return err
	}
	log := slog.New(slog.NewJSONHandler(inv.Stderr, &slog.HandlerOptions{Level: slog.LevelInfo}))
	access, err := ReadRootAccess(ctx, cfg.KCPKubeconfig, cfg.Workspace, cfg.Server)
	if err != nil {
		return err
	}
	return ApplyRoot(ctx, access, cfg, log)
}