pages-server/cmd/certs.go

47 lines
970 B
Go
Raw Normal View History

2021-12-03 02:12:51 +01:00
package cmd
import (
2021-12-03 04:15:48 +01:00
"fmt"
2021-12-03 02:12:51 +01:00
"github.com/urfave/cli/v2"
2021-12-03 04:15:48 +01:00
"codeberg.org/codeberg/pages/server/database"
2021-12-03 02:12:51 +01:00
)
var Certs = &cli.Command{
2022-01-25 20:56:48 +01:00
Name: "certs",
Usage: "manage certs manually",
Subcommands: []*cli.Command{
&cli.Command{
Name: "remove",
Usage: "remove a certificate from the database",
Action: removeCert,
},
},
2021-12-03 02:12:51 +01:00
}
2022-01-25 20:56:48 +01:00
func removeCert(ctx *cli.Context) error {
if ctx.Args().Len() < 1 {
return fmt.Errorf("'certs remove' requires at least one domain as an argument")
}
2021-12-03 02:12:51 +01:00
2022-01-25 20:56:48 +01:00
domains := ctx.Args().Slice()
2021-12-03 02:12:51 +01:00
2022-01-25 20:56:48 +01:00
// TODO: make "key-database.pogreb" set via flag
keyDatabase, err := database.New("key-database.pogreb")
if err != nil {
return fmt.Errorf("could not create database: %v", err)
}
2021-12-03 04:15:48 +01:00
2022-01-25 20:56:48 +01:00
for _, domain := range domains {
fmt.Printf("Removing domain %s from the database...\n", domain)
if err := keyDatabase.Delete([]byte(domain)); err != nil {
return err
2021-12-03 02:12:51 +01:00
}
2022-01-25 20:56:48 +01:00
}
if err := keyDatabase.Close(); err != nil {
return err
2021-12-03 02:12:51 +01:00
}
return nil
}