check / check (push) Failing after 15m58s
A command that failed after startup wrote the error twice on stderr: as an ERROR log record and as the final ERROR: line. The failure handlers now log the failure at info level, so the record appears only under --verbose or --debug, next to the records that led up to it. A failed blob upload is logged at info level for the same reason. A restore that stops on a file it cannot restore no longer logs that file's error, which the final line carries; under --skip-errors it is still logged. Model: opus-5-5
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package cli
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
"sneak.berlin/go/vaultik/internal/log"
|
|
"sneak.berlin/go/vaultik/internal/vaultik"
|
|
)
|
|
|
|
// NewInfoCommand creates the info command
|
|
func NewInfoCommand() *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "info",
|
|
Short: "Display system and configuration information",
|
|
Long: `Shows information about the current vaultik configuration, including:
|
|
- System details (OS, architecture, version)
|
|
- Storage configuration (S3 bucket, endpoint)
|
|
- Backup settings (source directories, compression)
|
|
- Encryption configuration (recipients)
|
|
- Local database statistics`,
|
|
Args: cobra.NoArgs,
|
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
|
// Use unified config resolution
|
|
configPath, err := ResolveConfigPath()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Use the app framework
|
|
rootFlags := GetRootFlags()
|
|
|
|
return RunOperation(cmd.Context(), AppOptions{
|
|
ConfigPath: configPath,
|
|
LogOptions: log.Options{
|
|
Verbose: rootFlags.Verbose,
|
|
Debug: rootFlags.Debug,
|
|
Quiet: rootFlags.Quiet,
|
|
},
|
|
Mode: readOnly,
|
|
}, func(v *vaultik.Vaultik) error {
|
|
return v.ShowInfo()
|
|
}, func(err error) {
|
|
log.Info("Failed to show info", "error", err)
|
|
ReportErrorf("Failed to show info: %v", err)
|
|
})
|
|
},
|
|
}
|
|
|
|
return cmd
|
|
}
|