commit df3ec18a6e9f1c723e28b8f0ac4ed8a19e47779e Author: netbenix Date: Thu Nov 18 15:04:27 2021 +0100 Inital commit diff --git a/Config.go b/Config.go new file mode 100644 index 0000000..db2b0d4 --- /dev/null +++ b/Config.go @@ -0,0 +1,38 @@ +package main + +import ( + "encoding/json" + "os" + "scabiosa/Logging" +) + +type Config struct { + _7zPath string + _7zArgs string + storageType string + localbackup uint8 + localbackupPath string +} + +func readConfig() []byte { + logger := Logging.DetailedLogger("ConfigHandler", "readConfig") + + file, err := os.ReadFile("config/config.json") + if err != nil { + logger.Fatal(err) + } + + return file +} + +func GetConfig() Config { + logger := Logging.DetailedLogger("ConfigHandler", "GetConfig()") + var config Config + + err := json.Unmarshal(readConfig(), &config) + if err != nil { + logger.Fatal(err) + } + + return config +} \ No newline at end of file diff --git a/Logging/Logging.go b/Logging/Logging.go new file mode 100644 index 0000000..0dd5959 --- /dev/null +++ b/Logging/Logging.go @@ -0,0 +1,56 @@ +package Logging + +import ( + "github.com/sirupsen/logrus" + "log" + "os" +) + +func checkIfLogFolderExists(){ + _, dirErr := os.Stat("logs") + if dirErr != nil{ + log.Fatal(dirErr) + } + + permMode, _ := os.Stat("logs") + + + dirCreateErr := os.Mkdir("logs", permMode.Mode().Perm()) + if dirCreateErr != nil{ + log.Fatal(dirCreateErr) + } + +} + +var logger = createLogger(logrus.WarnLevel) + + +func DetailedLogger(name string, section string) *logrus.Entry { + return logger.WithFields(logrus.Fields{ + "loggerName": name, + "section": section, + }) +} + +func Logger(name string) *logrus.Entry { + return logger.WithField("loggerName", name) +} + +func createLogger(logLevel logrus.Level) *logrus.Logger{ + var logger = logrus.New() + + logger.Formatter = new(logrus.TextFormatter) + logger.Formatter.(*logrus.TextFormatter).DisableColors = false + logger.Formatter.(*logrus.TextFormatter).DisableTimestamp = false + logger.Level = logLevel + logger.Out = os.Stdout + + /*file, err := os.OpenFile("logs/" + loggerName + "_" + dt.Format("02-01-2006_15_04_05") + ".log", os.O_CREATE|os.O_WRONLY, 0666) + if err != nil{ + log.Fatal(err) + } + logger.Out = file + */ + + return logger +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a1be600 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Scabiosa Backup Tool \ No newline at end of file diff --git a/StorageTypes/AzureFileStorage.go b/StorageTypes/AzureFileStorage.go new file mode 100644 index 0000000..6799f8e --- /dev/null +++ b/StorageTypes/AzureFileStorage.go @@ -0,0 +1,46 @@ +package StorageTypes + +import ( + "encoding/json" + "errors" + "os" + "scabiosa/Logging" +) + +type AzureFileStorage struct{ + azcopyPath string + storageAccUrl string + targetDirectory string + SASKey string +} + + +func (azure AzureFileStorage) upload() error{ + //Do Stuff here + return errors.New("lelek") +} + +func readConfig() []byte { + logger := Logging.DetailedLogger("AzureFileStorage", "readConfig") + + file, err := os.ReadFile("config/azure.json") + if err != nil{ + logger.Fatal(err) + } + + return file +} + + +func GetAzureStorage() AzureFileStorage { + logger := Logging.DetailedLogger("AzureFileStorage", "GetAzureStorage") + + var azureStorage AzureFileStorage + + jsonErr := json.Unmarshal(readConfig(), &azureStorage) + if jsonErr != nil{ + logger.Fatal(jsonErr) + } + + return azureStorage +} \ No newline at end of file diff --git a/StorageTypes/StorageInterface.go b/StorageTypes/StorageInterface.go new file mode 100644 index 0000000..9346b35 --- /dev/null +++ b/StorageTypes/StorageInterface.go @@ -0,0 +1,14 @@ +package StorageTypes + +import "fmt" + +type Storage interface { + upload() error +} + +func UploadFile(storage Storage){ + err := storage.upload() + if err != nil{ + fmt.Print(err) + } +} \ No newline at end of file diff --git a/config/azure.json b/config/azure.json new file mode 100644 index 0000000..dbcd5ad --- /dev/null +++ b/config/azure.json @@ -0,0 +1,6 @@ +{ + "azcopyPath": "", + "storageAccUrl": "", + "targetDirectory": "", + "SASKey": "" +} \ No newline at end of file diff --git a/config/config.json b/config/config.json new file mode 100644 index 0000000..0a39ce6 --- /dev/null +++ b/config/config.json @@ -0,0 +1,7 @@ +{ + "_7zPath": "", + "_7zArgs": "", + "storageType": "azure", + "localbackup": 0, + "localbackupPath": "" +} \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..a0e4569 --- /dev/null +++ b/go.mod @@ -0,0 +1,7 @@ +module scabiosa + +go 1.17 + +require github.com/sirupsen/logrus v1.8.1 + +require golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..59bd790 --- /dev/null +++ b/go.sum @@ -0,0 +1,10 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/main.go b/main.go new file mode 100644 index 0000000..89b1163 --- /dev/null +++ b/main.go @@ -0,0 +1,9 @@ +package main + +import "scabiosa/StorageTypes" + +func main(){ + azure := StorageTypes.GetAzureStorage() + + StorageTypes.UploadFile(azure) +} diff --git a/scabiosa b/scabiosa new file mode 100644 index 0000000..e687c91 Binary files /dev/null and b/scabiosa differ