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