cmd

package
v0.0.0-...-63b751e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var BackupCmd = &cobra.Command{
	Use:   "backup",
	Short: "Backup your database",
	Long:  "Backup your database with the required options depending on the database type",
	Run: func(cmd *cobra.Command, args []string) {
		dbType, _ = cmd.Flags().GetString("type")

		if err = backup.ValidateDbType(dbType); err != nil {
			cmd.PrintErrln(err)
			return
		}

		host, _ = cmd.Flags().GetString("host")
		port, _ = cmd.Flags().GetString("port")
		user, _ = cmd.Flags().GetString("user")
		password, _ = cmd.Flags().GetString("password")
		database, _ = cmd.Flags().GetString("database")
		additionalArgs, _ = cmd.Flags().GetString("args")

		storageType, _ = cmd.Flags().GetString("storage")
		localPath, _ = cmd.Flags().GetString("local-path")
		output, _ = cmd.Flags().GetString("output")

		gDriveFolderId, _ = cmd.Flags().GetString("gdrive-folder-id")
		gDriveSaFile, _ = cmd.Flags().GetString("gdrive-sa-file")

		awsBucket, _ = cmd.Flags().GetString("aws-bucket")
		awsRegion, _ = cmd.Flags().GetString("aws-region")
		awsBucketEndpoint, _ = cmd.Flags().GetString("aws-bucket-endpoint")
		awsAccessKeyID, _ = cmd.Flags().GetString("aws-access-key-id")
		awsSecretAccessKey, _ = cmd.Flags().GetString("aws-secret")

		params := &storage.Params{
			StorageType:          storageType,
			LocalPath:            localPath,
			OutName:              output,
			GoogleServiceAccount: gDriveSaFile,
			GoogleDriveFolderId:  gDriveFolderId,
			AWSBucket:            awsBucket,
			AWSRegion:            awsRegion,
			AWSBucketEndpoint:    awsBucketEndpoint,
			AWSAccessKeyID:       awsAccessKeyID,
			AWSSecretAccessKey:   awsSecretAccessKey,
		}

		if err = storage.ValidateStorage(params); err != nil {
			cmd.PrintErrln(err)
			return
		}

		if dbType == "postgres" {
			compress, _ = cmd.Flags().GetBool("compress")
			pgOutFormat, _ = cmd.Flags().GetString("pg-out-format")
			pgCompressionAlgo, _ = cmd.Flags().GetString("pg-compression-algo")
			pgCompressionLevel, _ = cmd.Flags().GetInt("pg-compression-level")

			pda := &pg_dump.PgDumpArgs{
				Host:                 host,
				Port:                 port,
				Username:             user,
				Password:             password,
				Database:             database,
				PgOutFormat:          pgOutFormat,
				Compress:             compress,
				CompressionAlgorithm: pgCompressionAlgo,
				CompressionLevel:     pgCompressionLevel,
				AdditionalArgs:       additionalArgs,
				Storage:              params,
			}

			err = pg_dump.Backup(pda)
			if err != nil {
				cmd.PrintErrln(err)
				os.Exit(1)
			}
		}

		if dbType == "mysql" {
			mda := &mysql_dump.MySqlDumpArgs{
				Host:           host,
				Port:           port,
				Username:       user,
				Password:       password,
				Database:       database,
				AdditionalArgs: additionalArgs,
				Storage:        params,
			}

			err = mysql_dump.Backup(mda)
			if err != nil {
				cmd.PrintErrln(err)
				os.Exit(1)
			}
		}

		if dbType == "mariadb" {
			mda := &mariadb_dump.MariaDBDumpArgs{
				Host:           host,
				Port:           port,
				Username:       user,
				Password:       password,
				Database:       database,
				AdditionalArgs: additionalArgs,
				Storage:        params,
			}

			err = mariadb_dump.Backup(mda)
			if err != nil {
				cmd.PrintErrln(err)
				os.Exit(1)
			}
		}

		if dbType == "mongodb" {
			compress, _ = cmd.Flags().GetBool("compress")
			uri, _ := cmd.Flags().GetString("uri")

			da := &mongo_dump.DumpMongoArgs{
				Compress:       compress,
				AdditionalArgs: additionalArgs,
				Uri:            uri,
				Storage:        params,
			}

			err = mongo_dump.Backup(da)
			if err != nil {
				cmd.PrintErrln(err)
				os.Exit(1)
			}
		}
	},
}
View Source
var RootCmd = &cobra.Command{
	Use:   "sentinel",
	Short: "Open-source tool for automated backup and restoration supporting SQL and NoSQL databases",
	Long:  longDesc,
}

Functions

func Execute

func Execute()

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL