feat(prune): add prune files feature
This feature allows you to specify the n latest backups to keep in the bucket.
This commit is contained in:
25
main.go
25
main.go
@@ -1,7 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"backup-tool/pruner"
|
||||
"backup-tool/uploader"
|
||||
"flag"
|
||||
"github.com/joho/godotenv"
|
||||
"log"
|
||||
"os"
|
||||
@@ -11,13 +13,22 @@ const (
|
||||
ENDPOINT = "s3.us-west-004.backblazeb2.com"
|
||||
)
|
||||
|
||||
var skipUpload bool
|
||||
var keepNum int
|
||||
|
||||
func init() {
|
||||
flag.BoolVar(&skipUpload, "skip-upload", false, "do not upload file to S3/Backblaze")
|
||||
flag.IntVar(&keepNum, "keep-backups", 7, "number of backups to keep; 0 to keep all")
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
err := godotenv.Load()
|
||||
if err != nil {
|
||||
log.Fatalf("error loading .env file: (%s)", err.Error())
|
||||
}
|
||||
|
||||
if len(os.Args) < 2 {
|
||||
if len(os.Args) < 2 && !skipUpload {
|
||||
log.Fatalln("missing filename parameter")
|
||||
}
|
||||
|
||||
@@ -26,8 +37,14 @@ func main() {
|
||||
log.Fatalln("missing or empty BUCKET_NAME")
|
||||
}
|
||||
|
||||
err = uploader.UploadFile(bucketName, ENDPOINT, os.Args[1])
|
||||
if err != nil {
|
||||
log.Fatalln(err.Error())
|
||||
if !skipUpload {
|
||||
err = uploader.UploadFile(bucketName, ENDPOINT, os.Args[1])
|
||||
if err != nil {
|
||||
log.Fatalln(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
if keepNum > 0 {
|
||||
err = pruner.PruneFiles(bucketName, ENDPOINT, keepNum)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user