49 lines
821 B
Go
49 lines
821 B
Go
// Copyright (C) 2022 Marius Schellenberger
|
|
|
|
package main
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"cachefs/pkg/fs"
|
|
"cachefs/pkg/provider/parse"
|
|
)
|
|
|
|
var (
|
|
version string
|
|
|
|
dst string
|
|
dstkey string
|
|
metadata string
|
|
)
|
|
|
|
func main() {
|
|
flag.StringVar(&dst, "dst", "", "url path to cache files (example: file:///mnt/cache)")
|
|
flag.StringVar(&dstkey, "dstkey", "", "hex encoded encryption key for dst")
|
|
flag.StringVar(&metadata, "data", "", "path to metadata file")
|
|
flag.Parse()
|
|
|
|
var (
|
|
dstk []byte
|
|
err error
|
|
)
|
|
if dstkey != "" {
|
|
dstk, err = hex.DecodeString(dstkey)
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
dstfs, err := parse.FS(dst, dstk)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
err = fs.MetadataGenerator(metadata, dstfs)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
os.Exit(0)
|
|
}
|