2024-01-19 06:32:30 +01:00
// Package cmd /*
/ *
2024-02-25 14:40:48 +01:00
Copyright © 2024 Jonas Kaninda
2024-01-19 06:32:30 +01:00
* /
package cmd
import (
2024-01-20 14:03:06 +01:00
"github.com/jkaninda/pg-bkup/utils"
2024-01-19 06:32:30 +01:00
"github.com/spf13/cobra"
2024-01-20 14:03:06 +01:00
"os"
2024-01-19 06:32:30 +01:00
)
// rootCmd represents the base command when called without any subcommands
var rootCmd = & cobra . Command {
2024-01-20 14:03:06 +01:00
Use : "pg-bkup [Command]" ,
2024-08-03 00:49:14 +02:00
Short : "PostgreSQL Backup tool, backup database to AWS S3 or SSH Remote Server" ,
Long : ` PostgreSQL Database backup and restoration tool. Backup database to AWS S3 storage, any S3 Alternatives for Object Storage or SSH remote server. ` ,
2024-01-20 14:03:06 +01:00
Example : utils . MainExample ,
Version : appVersion ,
2024-01-19 06:32:30 +01:00
}
2024-01-20 14:03:06 +01:00
var operation = ""
2024-01-19 06:32:30 +01:00
// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute ( ) {
err := rootCmd . Execute ( )
if err != nil {
os . Exit ( 1 )
}
}
func init ( ) {
2024-08-03 00:49:14 +02:00
rootCmd . PersistentFlags ( ) . StringP ( "storage" , "s" , "local" , "Storage. local or s3" )
rootCmd . PersistentFlags ( ) . StringP ( "path" , "P" , "" , "AWS S3 path without file name. eg: /custom_path or ssh remote path `/home/foo/backup`" )
rootCmd . PersistentFlags ( ) . StringP ( "dbname" , "d" , "" , "Database name" )
rootCmd . PersistentFlags ( ) . IntP ( "port" , "p" , 5432 , "Database port" )
2024-01-20 14:03:06 +01:00
rootCmd . PersistentFlags ( ) . StringVarP ( & operation , "operation" , "o" , "" , "Set operation, for old version only" )
rootCmd . AddCommand ( VersionCmd )
rootCmd . AddCommand ( BackupCmd )
rootCmd . AddCommand ( RestoreCmd )
2024-01-19 06:32:30 +01:00
}