From aaad8a010c331192bb9eda19acbc57225fe523ff Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Fri, 19 Jan 2024 14:12:05 +0100 Subject: [PATCH] chore: clean up code --- cmd/root.go | 4 ++-- cmd/version.go | 22 ++++++++++++++++++++++ main.go | 26 ++++++++++---------------- pkg/backup.go | 6 ++---- pkg/restore.go | 4 ++-- utils/utils.go | 18 ++++++++---------- 6 files changed, 46 insertions(+), 34 deletions(-) create mode 100644 cmd/version.go diff --git a/cmd/root.go b/cmd/root.go index b38322e..64ab1b5 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -14,7 +14,7 @@ import ( var rootCmd = &cobra.Command{ Use: "mysql-bkup", Short: "MySQL Backup tool, backup database to S3 or Object Storage", - Long: `MySQL Backup and Restoration tool. Backup database to AWS S3 storage or any S3 Alternatives for Object Storage.`, + Long: `MySQL Database backup and restoration tool. Backup database to AWS S3 storage or any S3 Alternatives for Object Storage.`, // Uncomment the following line if your bare application // has an action associated with it: // Run: func(cmd *cobra.Command, args []string) { }, @@ -50,5 +50,5 @@ func init() { rootCmd.PersistentFlags().IntP("port", "p", 3306, "Set database port") rootCmd.PersistentFlags().BoolP("help", "h", false, "Print this help message") rootCmd.PersistentFlags().BoolP("version", "v", false, "shows version information") - + rootCmd.AddCommand(VersionCmd) } diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 0000000..3bcf97e --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,22 @@ +package cmd + +import ( + "fmt" + "github.com/spf13/cobra" + "os" +) + +var appVersion = os.Getenv("VERSION") + +var VersionCmd = &cobra.Command{ + Use: "version", + Short: "Show version", + Run: func(cmd *cobra.Command, args []string) { + Version() + }, +} + +func Version() { + fmt.Printf("Version: %s \n", appVersion) + fmt.Print() +} diff --git a/main.go b/main.go index 98be904..62fa9eb 100644 --- a/main.go +++ b/main.go @@ -1,13 +1,14 @@ package main /***** -* MySQL Backup & Restore +* MySQL Backup & Restore * @author Jonas Kaninda * @license MIT License * @link https://github.com/jkaninda/mysql-bkup **/ import ( "fmt" + "github.com/jkaninda/mysql-bkup/cmd" "github.com/jkaninda/mysql-bkup/pkg" "github.com/jkaninda/mysql-bkup/utils" flag "github.com/spf13/pflag" @@ -15,8 +16,6 @@ import ( "os/exec" ) -var appVersion string = os.Getenv("VERSION") - const s3MountPath string = "/s3mnt" var ( @@ -72,10 +71,10 @@ func init() { disableCompression = *disableCompressionFlag flag.Usage = func() { - fmt.Print("MySQL BackupDatabase and Restoration tool. BackupDatabase database to AWS S3 storage or any S3 Alternatives for Object Storage.\n\n") + fmt.Print("MySQL Database backup and restoration tool. Backup database to AWS S3 storage or any S3 Alternatives for Object Storage.\n\n") fmt.Print("Usage: bkup --operation backup -storage s3 --dbname databasename --path /my_path ...\n") fmt.Print(" bkup -o backup -d databasename --disable-compression ...\n") - fmt.Print(" RestoreDatabase: bkup -o restore -d databasename -f db_20231217_051339.sql.gz ...\n\n") + fmt.Print(" Restore: bkup -o restore -d databasename -f db_20231217_051339.sql.gz ...\n\n") flag.PrintDefaults() } @@ -86,7 +85,7 @@ func init() { } if *versionFlag { startBackup = false - version() + cmd.Version() os.Exit(0) } if *dbnameFlag != "" { @@ -137,13 +136,7 @@ func init() { } -func version() { - fmt.Printf("Version: %s \n", appVersion) - fmt.Print() -} func main() { - //cmd.Execute() - err := os.Setenv("STORAGE_PATH", storagePath) if err != nil { return @@ -159,18 +152,18 @@ func start() { if executionMode == "default" { if operation != "backup" { if storage != "s3" { - utils.Info("RestoreDatabase from local") + utils.Info("Restore database from local") pkg.RestoreDatabase(file) } else { - utils.Info("RestoreDatabase from s3") + utils.Info("Restore database from s3") s3Restore() } } else { if storage != "s3" { - utils.Info("BackupDatabase to local storage") + utils.Info("Backup database to local storage") pkg.BackupDatabase(disableCompression) } else { - utils.Info("BackupDatabase to s3 storage") + utils.Info("Backup database to s3 storage") s3Backup() } } @@ -206,6 +199,7 @@ func scheduledMode() { utils.Info("Creating backup job...") pkg.CreateCrontabScript(disableCompression, storage) + //Start Supervisor supervisordCmd := exec.Command("supervisord", "-c", "/etc/supervisor/supervisord.conf") if err := supervisordCmd.Run(); err != nil { utils.Fatalf("Error starting supervisord: %v\n", err) diff --git a/pkg/backup.go b/pkg/backup.go index f8821a0..04550dd 100644 --- a/pkg/backup.go +++ b/pkg/backup.go @@ -63,14 +63,12 @@ func BackupDatabase(disableCompression bool) { if err != nil { log.Fatal(err) } - utils.Info("Database has been backed up") + utils.Done("Database has been backed up") } else { cmd := exec.Command("mysqldump", "-h", dbHost, "-P", dbPort, "-u", dbUserName, "--password="+dbPassword, dbName) stdout, err := cmd.StdoutPipe() if err != nil { - utils.Info("Mysql") - log.Fatal(err) } gzipCmd := exec.Command("gzip") @@ -86,7 +84,7 @@ func BackupDatabase(disableCompression bool) { if err := gzipCmd.Wait(); err != nil { log.Fatal(err) } - utils.Info("Database has been backed up") + utils.Done("Database has been backed up") } diff --git a/pkg/restore.go b/pkg/restore.go index 60ec293..cb19035 100644 --- a/pkg/restore.go +++ b/pkg/restore.go @@ -33,7 +33,7 @@ func RestoreDatabase(file string) { utils.Fatal("Error, in restoring the database") } - utils.Info("Database has been restored") + utils.Done("Database has been restored") } else if extension == ".sql" { //SQL file @@ -43,7 +43,7 @@ func RestoreDatabase(file string) { utils.Fatal("Error, in restoring the database", err) } - utils.Info("Database has been restored") + utils.Done("Database has been restored") } else { utils.Fatal("Unknown file extension ", extension) } diff --git a/utils/utils.go b/utils/utils.go index 3a2a423..7a5d7af 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -14,23 +14,21 @@ import ( ) func Info(v ...any) { - fmt.Println("[INFO] ", fmt.Sprint(v...)) + fmt.Println("⒤ ", fmt.Sprint(v...)) } -func Infof(msg string, v ...any) { - fmt.Printf("[INFO] "+msg, v...) +func Done(v ...any) { + fmt.Println("✔ ", fmt.Sprint(v...)) } -func Warning(message string) { - fmt.Println("[WARNING]", message) -} -func Warningf(msg string, v ...any) { - fmt.Printf("[WARNING] "+msg, v...) +func Warning(v ...any) { + fmt.Println("[Warning: ] ", fmt.Sprint(v...)) } + func Fatal(v ...any) { - fmt.Println("[ERROR] ", fmt.Sprint(v...)) + fmt.Println("✘ ", fmt.Sprint(v...)) os.Exit(1) } func Fatalf(msg string, v ...any) { - fmt.Printf("[ERROR] "+msg, v...) + fmt.Printf("✘ "+msg, v...) os.Exit(1) }