Inital commit

This commit is contained in:
netbenix 2021-11-18 15:04:27 +01:00
commit df3ec18a6e
11 changed files with 194 additions and 0 deletions

38
Config.go Normal file
View file

@ -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
}

56
Logging/Logging.go Normal file
View file

@ -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
}

1
README.md Normal file
View file

@ -0,0 +1 @@
# Scabiosa Backup Tool

View file

@ -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
}

View file

@ -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)
}
}

6
config/azure.json Normal file
View file

@ -0,0 +1,6 @@
{
"azcopyPath": "",
"storageAccUrl": "",
"targetDirectory": "",
"SASKey": ""
}

7
config/config.json Normal file
View file

@ -0,0 +1,7 @@
{
"_7zPath": "",
"_7zArgs": "",
"storageType": "azure",
"localbackup": 0,
"localbackupPath": ""
}

7
go.mod Normal file
View file

@ -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

10
go.sum Normal file
View file

@ -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=

9
main.go Normal file
View file

@ -0,0 +1,9 @@
package main
import "scabiosa/StorageTypes"
func main(){
azure := StorageTypes.GetAzureStorage()
StorageTypes.UploadFile(azure)
}

BIN
scabiosa Normal file

Binary file not shown.