1 Star 0 Fork 0

KingFane/certs

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
utils.go 3.04 KB
一键复制 编辑 原始数据 按行查看 历史
digitwin 提交于 2025-02-28 11:55 +08:00 . initial
// Copyright (c) Abstract Machines
// SPDX-License-Identifier: Apache-2.0
package cli
import (
"encoding/json"
"fmt"
"os"
"path/filepath"
"gitee.com/kingfane/certs"
ctxsdk "gitee.com/kingfane/certs/sdk"
"github.com/fatih/color"
"github.com/hokaccha/go-prettyjson"
"github.com/spf13/cobra"
)
const fileMode = 0o644
var (
// Limit query parameter.
Limit uint64 = 10
// Offset query parameter.
Offset uint64 = 0
// Name query parameter.
Name string = ""
// ConfigPath config path parameter.
ConfigPath string = ""
// RawOutput raw output mode.
RawOutput bool = false
)
func logJSONCmd(cmd cobra.Command, iList ...interface{}) {
for _, i := range iList {
m, err := json.Marshal(i)
if err != nil {
logErrorCmd(cmd, err)
return
}
pj, err := prettyjson.Format(m)
if err != nil {
logErrorCmd(cmd, err)
return
}
fmt.Fprintf(cmd.OutOrStdout(), "\n%s\n\n", string(pj))
}
}
func logUsageCmd(cmd cobra.Command, u string) {
fmt.Fprintf(cmd.OutOrStdout(), color.YellowString("\nusage: %s\n\n"), u)
}
func logErrorCmd(cmd cobra.Command, err error) {
boldRed := color.New(color.FgRed, color.Bold)
boldRed.Fprintf(cmd.ErrOrStderr(), "\nerror: ")
fmt.Fprintf(cmd.ErrOrStderr(), "%s\n\n", color.RedString(err.Error()))
}
func logOKCmd(cmd cobra.Command) {
fmt.Fprintf(cmd.OutOrStdout(), "\n%s\n\n", color.BlueString("ok"))
}
func logSaveCertFiles(cmd cobra.Command, certBundle ctxsdk.CertificateBundle) {
files := map[string][]byte{
"ca.pem": certBundle.CA,
"cert.pem": certBundle.Certificate,
"key.pem": certBundle.PrivateKey,
}
for filename, content := range files {
err := saveToFile(filename, content)
if err != nil {
logErrorCmd(cmd, err)
return
}
fmt.Fprintf(cmd.OutOrStdout(), "Saved %s\n", filename)
}
fmt.Fprintf(cmd.OutOrStdout(), "\nAll certificate files have been saved successfully.\n")
}
func logSaveCAFiles(cmd cobra.Command, certBundle ctxsdk.CertificateBundle) {
files := map[string][]byte{
"ca.crt": certBundle.Certificate,
"ca.key": certBundle.PrivateKey,
}
for filename, content := range files {
err := saveToFile(filename, content)
if err != nil {
logErrorCmd(cmd, err)
return
}
fmt.Fprintf(cmd.OutOrStdout(), "Saved %s\n", filename)
}
fmt.Fprintf(cmd.OutOrStdout(), "\nAll certificate files have been saved successfully.\n")
}
func logSaveCSRFiles(cmd cobra.Command, csr certs.CSR) {
files := map[string][]byte{
"file.csr": []byte(csr.CSR),
}
for filename, content := range files {
err := saveToFile(filename, content)
if err != nil {
logErrorCmd(cmd, err)
return
}
fmt.Fprintf(cmd.OutOrStdout(), "Saved %s\n", filename)
}
fmt.Fprintf(cmd.OutOrStdout(), "\nCSR file have been saved successfully.\n")
}
func saveToFile(filename string, content []byte) error {
cwd, err := os.Getwd()
if err != nil {
return fmt.Errorf("failed to get current working directory: %w", err)
}
filePath := filepath.Join(cwd, filename)
if err := os.WriteFile(filePath, content, fileMode); err != nil {
return fmt.Errorf("failed to write file %s: %w", filename, err)
}
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kingfane/certs.git
git@gitee.com:kingfane/certs.git
kingfane
certs
certs
v0.0.1

搜索帮助