refactor: Start implementation of public API

This commit is contained in:
Felix Pojtinger
2021-12-06 21:01:41 +01:00
parent e611622199
commit 3efa2fe308
45 changed files with 211 additions and 54 deletions

View File

@@ -3,4 +3,4 @@ generate:
go generate ./...
clean:
rm -rf pkg/db
rm -rf internal/db

View File

@@ -26,13 +26,13 @@ import (
"github.com/klauspost/compress/zstd"
"github.com/klauspost/pgzip"
"github.com/pierrec/lz4/v4"
"github.com/pojntfx/stfs/pkg/adapters"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/pkg/counters"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/noop"
"github.com/pojntfx/stfs/pkg/pax"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/adapters"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/pojntfx/stfs/internal/counters"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/noop"
"github.com/pojntfx/stfs/internal/pax"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -6,13 +6,13 @@ import (
"context"
"os"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/pkg/converters"
"github.com/pojntfx/stfs/pkg/counters"
models "github.com/pojntfx/stfs/pkg/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/pax"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/pojntfx/stfs/internal/converters"
"github.com/pojntfx/stfs/internal/counters"
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/pax"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -3,7 +3,7 @@ package cmd
import (
"os"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"os"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -4,9 +4,9 @@ import (
"context"
"regexp"
"github.com/pojntfx/stfs/pkg/converters"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/converters"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -3,9 +3,9 @@ package cmd
import (
"context"
"github.com/pojntfx/stfs/pkg/converters"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/converters"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -5,11 +5,11 @@ import (
"context"
"strings"
"github.com/pojntfx/stfs/pkg/converters"
models "github.com/pojntfx/stfs/pkg/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/pax"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/converters"
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/pax"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -23,9 +23,9 @@ import (
"github.com/klauspost/compress/zstd"
"github.com/klauspost/pgzip"
"github.com/pierrec/lz4/v4"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/pax"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/pax"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -11,13 +11,13 @@ import (
"strconv"
"strings"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/pkg/converters"
"github.com/pojntfx/stfs/pkg/counters"
models "github.com/pojntfx/stfs/pkg/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/pax"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/pojntfx/stfs/internal/converters"
"github.com/pojntfx/stfs/internal/counters"
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/pax"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -7,9 +7,9 @@ import (
"io/ioutil"
"math"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/pkg/counters"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/pojntfx/stfs/internal/counters"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -8,10 +8,10 @@ import (
"path/filepath"
"strings"
"github.com/pojntfx/stfs/pkg/converters"
models "github.com/pojntfx/stfs/pkg/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/converters"
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -10,12 +10,12 @@ import (
"path/filepath"
"strconv"
"github.com/pojntfx/stfs/pkg/adapters"
"github.com/pojntfx/stfs/pkg/controllers"
"github.com/pojntfx/stfs/pkg/counters"
"github.com/pojntfx/stfs/pkg/formatting"
"github.com/pojntfx/stfs/pkg/pax"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/pojntfx/stfs/internal/adapters"
"github.com/pojntfx/stfs/internal/controllers"
"github.com/pojntfx/stfs/internal/counters"
"github.com/pojntfx/stfs/internal/formatting"
"github.com/pojntfx/stfs/internal/pax"
"github.com/pojntfx/stfs/internal/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/volatiletech/sqlboiler/v4/boil"

View File

@@ -4,7 +4,7 @@ import (
"archive/tar"
"encoding/json"
models "github.com/pojntfx/stfs/pkg/db/sqlite/models/metadata"
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
)
func DBHeaderToTarHeader(dbhdr *models.Header) (*tar.Header, error) {

View File

@@ -9,8 +9,8 @@ import (
"fmt"
"strings"
"github.com/pojntfx/stfs/pkg/db/sqlite/migrations/metadata"
models "github.com/pojntfx/stfs/pkg/db/sqlite/models/metadata"
"github.com/pojntfx/stfs/internal/db/sqlite/migrations/metadata"
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
migrate "github.com/rubenv/sql-migrate"
"github.com/volatiletech/sqlboiler/v4/boil"
"github.com/volatiletech/sqlboiler/v4/queries"

18
pkg/config/config.go Normal file
View File

@@ -0,0 +1,18 @@
package config
type StateConfig struct {
Drive string
Metadata string
}
type PipeConfig struct {
Compression string
Encryption string
Signature string
}
type CryptoConfig struct {
Recipient interface{}
Identity interface{}
Password string
}

13
pkg/hardware/hardware.go Normal file
View File

@@ -0,0 +1,13 @@
package hardware
type DriveConfig struct {
Drive string
}
func Eject(
state DriveConfig,
) error
func Tell(
state DriveConfig,
) (int, error)

View File

@@ -0,0 +1,19 @@
package inventory
import "archive/tar"
type MetadataConfig struct {
Metadata string
}
func Find(
state MetadataConfig,
expression string,
) ([]*tar.Header, error)
func List(
state MetadataConfig,
name string,
) ([]*tar.Header, error)

View File

@@ -0,0 +1,59 @@
package operations
import (
"archive/tar"
"github.com/pojntfx/stfs/pkg/config"
)
func Archive(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
from string,
overwrite bool,
compressionLevel string,
) ([]*tar.Header, error)
func Restore(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
from string,
to string,
flatten bool,
) error
func Update(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
from string,
overwrite bool,
compressionLevel string,
) error
func Delete(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
name string,
) error
func Move(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
from string,
to string,
) error

40
pkg/recovery/recovery.go Normal file
View File

@@ -0,0 +1,40 @@
package recovery
import (
"archive/tar"
"github.com/pojntfx/stfs/pkg/config"
)
func Fetch(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
record int,
block int,
to string,
preview string,
) error
func Index(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
record int,
block int,
overwrite bool,
) error
func Query(
state config.StateConfig,
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
record int,
block int,
) ([]*tar.Header, error)

8
pkg/utility/utility.go Normal file
View File

@@ -0,0 +1,8 @@
package utility
import "github.com/pojntfx/stfs/pkg/config"
func Keygen(
pipes config.PipeConfig,
crypto config.CryptoConfig,
) (privkey []byte, pubkey []byte, err error)