Inital commit
This commit is contained in:
commit
df3ec18a6e
11 changed files with 194 additions and 0 deletions
38
Config.go
Normal file
38
Config.go
Normal 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
56
Logging/Logging.go
Normal 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
1
README.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
# Scabiosa Backup Tool
|
||||||
46
StorageTypes/AzureFileStorage.go
Normal file
46
StorageTypes/AzureFileStorage.go
Normal 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
|
||||||
|
}
|
||||||
14
StorageTypes/StorageInterface.go
Normal file
14
StorageTypes/StorageInterface.go
Normal 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
6
config/azure.json
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"azcopyPath": "",
|
||||||
|
"storageAccUrl": "",
|
||||||
|
"targetDirectory": "",
|
||||||
|
"SASKey": ""
|
||||||
|
}
|
||||||
7
config/config.json
Normal file
7
config/config.json
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"_7zPath": "",
|
||||||
|
"_7zArgs": "",
|
||||||
|
"storageType": "azure",
|
||||||
|
"localbackup": 0,
|
||||||
|
"localbackupPath": ""
|
||||||
|
}
|
||||||
7
go.mod
Normal file
7
go.mod
Normal 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
10
go.sum
Normal 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
9
main.go
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "scabiosa/StorageTypes"
|
||||||
|
|
||||||
|
func main(){
|
||||||
|
azure := StorageTypes.GetAzureStorage()
|
||||||
|
|
||||||
|
StorageTypes.UploadFile(azure)
|
||||||
|
}
|
||||||
BIN
scabiosa
Normal file
BIN
scabiosa
Normal file
Binary file not shown.
Reference in a new issue