From 4f5d298c8e8e8007566e44d7eec9beec4c23baa3 Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Mon, 6 Dec 2021 21:01:41 +0100 Subject: [PATCH] refactor: Start implementation of public API --- Makefile | 2 +- cmd/stbak/cmd/archive.go | 14 ++--- cmd/stbak/cmd/delete.go | 14 ++--- cmd/stbak/cmd/drive_eject.go | 2 +- cmd/stbak/cmd/drive_tell.go | 2 +- cmd/stbak/cmd/find.go | 6 +- cmd/stbak/cmd/list.go | 6 +- cmd/stbak/cmd/move.go | 10 ++-- cmd/stbak/cmd/recovery_fetch.go | 6 +- cmd/stbak/cmd/recovery_index.go | 14 ++--- cmd/stbak/cmd/recovery_query.go | 6 +- cmd/stbak/cmd/restore.go | 8 +-- cmd/stbak/cmd/update.go | 12 ++-- {pkg => internal}/adapters/darwin.go | 0 {pkg => internal}/adapters/dragonfly.go | 0 {pkg => internal}/adapters/freebsd.go | 0 {pkg => internal}/adapters/js.go | 0 {pkg => internal}/adapters/linux.go | 0 {pkg => internal}/controllers/tape.go | 0 {pkg => internal}/converters/header.go | 2 +- {pkg => internal}/counters/read_write.go | 0 .../sqlite/migrations/metadata/migrations.go | 0 .../sqlite/models/metadata/boil_main_test.go | 0 .../db/sqlite/models/metadata/boil_queries.go | 0 .../models/metadata/boil_queries_test.go | 0 .../models/metadata/boil_suites_test.go | 0 .../models/metadata/boil_table_names.go | 0 .../db/sqlite/models/metadata/boil_types.go | 0 .../sqlite/models/metadata/gorp_migrations.go | 0 .../models/metadata/gorp_migrations_test.go | 0 .../db/sqlite/models/metadata/headers.go | 0 .../db/sqlite/models/metadata/headers_test.go | 0 .../models/metadata/sqlite3_main_test.go | 0 {pkg => internal}/formatting/csv.go | 0 {pkg => internal}/noop/flusher.go | 0 {pkg => internal}/noop/write.go | 0 {pkg => internal}/pax/stfs.go | 0 {pkg => internal}/persisters/metadata.go | 4 +- {pkg => internal}/persisters/sqlite.go | 0 pkg/config/config.go | 18 ++++++ pkg/hardware/hardware.go | 13 ++++ pkg/inventory/inventory.go | 19 ++++++ pkg/operations/operations.go | 59 +++++++++++++++++++ pkg/recovery/recovery.go | 40 +++++++++++++ pkg/utility/utility.go | 8 +++ 45 files changed, 211 insertions(+), 54 deletions(-) rename {pkg => internal}/adapters/darwin.go (100%) rename {pkg => internal}/adapters/dragonfly.go (100%) rename {pkg => internal}/adapters/freebsd.go (100%) rename {pkg => internal}/adapters/js.go (100%) rename {pkg => internal}/adapters/linux.go (100%) rename {pkg => internal}/controllers/tape.go (100%) rename {pkg => internal}/converters/header.go (95%) rename {pkg => internal}/counters/read_write.go (100%) rename {pkg => internal}/db/sqlite/migrations/metadata/migrations.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/boil_main_test.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/boil_queries.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/boil_queries_test.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/boil_suites_test.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/boil_table_names.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/boil_types.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/gorp_migrations.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/gorp_migrations_test.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/headers.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/headers_test.go (100%) rename {pkg => internal}/db/sqlite/models/metadata/sqlite3_main_test.go (100%) rename {pkg => internal}/formatting/csv.go (100%) rename {pkg => internal}/noop/flusher.go (100%) rename {pkg => internal}/noop/write.go (100%) rename {pkg => internal}/pax/stfs.go (100%) rename {pkg => internal}/persisters/metadata.go (97%) rename {pkg => internal}/persisters/sqlite.go (100%) create mode 100644 pkg/config/config.go create mode 100644 pkg/hardware/hardware.go create mode 100644 pkg/inventory/inventory.go create mode 100644 pkg/operations/operations.go create mode 100644 pkg/recovery/recovery.go create mode 100644 pkg/utility/utility.go diff --git a/Makefile b/Makefile index b901097..c1c4361 100644 --- a/Makefile +++ b/Makefile @@ -3,4 +3,4 @@ generate: go generate ./... clean: - rm -rf pkg/db + rm -rf internal/db diff --git a/cmd/stbak/cmd/archive.go b/cmd/stbak/cmd/archive.go index b456fd6..cbb9a5a 100644 --- a/cmd/stbak/cmd/archive.go +++ b/cmd/stbak/cmd/archive.go @@ -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" diff --git a/cmd/stbak/cmd/delete.go b/cmd/stbak/cmd/delete.go index 86be5f4..fbd2ffa 100644 --- a/cmd/stbak/cmd/delete.go +++ b/cmd/stbak/cmd/delete.go @@ -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" diff --git a/cmd/stbak/cmd/drive_eject.go b/cmd/stbak/cmd/drive_eject.go index cd90a1f..feb02e6 100644 --- a/cmd/stbak/cmd/drive_eject.go +++ b/cmd/stbak/cmd/drive_eject.go @@ -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" diff --git a/cmd/stbak/cmd/drive_tell.go b/cmd/stbak/cmd/drive_tell.go index e71977c..694623c 100644 --- a/cmd/stbak/cmd/drive_tell.go +++ b/cmd/stbak/cmd/drive_tell.go @@ -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" diff --git a/cmd/stbak/cmd/find.go b/cmd/stbak/cmd/find.go index 0a3b6c9..337f9bd 100644 --- a/cmd/stbak/cmd/find.go +++ b/cmd/stbak/cmd/find.go @@ -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" diff --git a/cmd/stbak/cmd/list.go b/cmd/stbak/cmd/list.go index f73abd4..0302847 100644 --- a/cmd/stbak/cmd/list.go +++ b/cmd/stbak/cmd/list.go @@ -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" diff --git a/cmd/stbak/cmd/move.go b/cmd/stbak/cmd/move.go index 84735bc..6b87e9b 100644 --- a/cmd/stbak/cmd/move.go +++ b/cmd/stbak/cmd/move.go @@ -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" diff --git a/cmd/stbak/cmd/recovery_fetch.go b/cmd/stbak/cmd/recovery_fetch.go index 2d008e8..4176deb 100644 --- a/cmd/stbak/cmd/recovery_fetch.go +++ b/cmd/stbak/cmd/recovery_fetch.go @@ -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" diff --git a/cmd/stbak/cmd/recovery_index.go b/cmd/stbak/cmd/recovery_index.go index 3a2bbc2..d87a167 100644 --- a/cmd/stbak/cmd/recovery_index.go +++ b/cmd/stbak/cmd/recovery_index.go @@ -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" diff --git a/cmd/stbak/cmd/recovery_query.go b/cmd/stbak/cmd/recovery_query.go index 499b814..d9dba97 100644 --- a/cmd/stbak/cmd/recovery_query.go +++ b/cmd/stbak/cmd/recovery_query.go @@ -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" diff --git a/cmd/stbak/cmd/restore.go b/cmd/stbak/cmd/restore.go index 39ee4f9..bae5a8d 100644 --- a/cmd/stbak/cmd/restore.go +++ b/cmd/stbak/cmd/restore.go @@ -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" diff --git a/cmd/stbak/cmd/update.go b/cmd/stbak/cmd/update.go index 42c3981..78cd459 100644 --- a/cmd/stbak/cmd/update.go +++ b/cmd/stbak/cmd/update.go @@ -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" diff --git a/pkg/adapters/darwin.go b/internal/adapters/darwin.go similarity index 100% rename from pkg/adapters/darwin.go rename to internal/adapters/darwin.go diff --git a/pkg/adapters/dragonfly.go b/internal/adapters/dragonfly.go similarity index 100% rename from pkg/adapters/dragonfly.go rename to internal/adapters/dragonfly.go diff --git a/pkg/adapters/freebsd.go b/internal/adapters/freebsd.go similarity index 100% rename from pkg/adapters/freebsd.go rename to internal/adapters/freebsd.go diff --git a/pkg/adapters/js.go b/internal/adapters/js.go similarity index 100% rename from pkg/adapters/js.go rename to internal/adapters/js.go diff --git a/pkg/adapters/linux.go b/internal/adapters/linux.go similarity index 100% rename from pkg/adapters/linux.go rename to internal/adapters/linux.go diff --git a/pkg/controllers/tape.go b/internal/controllers/tape.go similarity index 100% rename from pkg/controllers/tape.go rename to internal/controllers/tape.go diff --git a/pkg/converters/header.go b/internal/converters/header.go similarity index 95% rename from pkg/converters/header.go rename to internal/converters/header.go index 561e0fd..d3401f2 100644 --- a/pkg/converters/header.go +++ b/internal/converters/header.go @@ -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) { diff --git a/pkg/counters/read_write.go b/internal/counters/read_write.go similarity index 100% rename from pkg/counters/read_write.go rename to internal/counters/read_write.go diff --git a/pkg/db/sqlite/migrations/metadata/migrations.go b/internal/db/sqlite/migrations/metadata/migrations.go similarity index 100% rename from pkg/db/sqlite/migrations/metadata/migrations.go rename to internal/db/sqlite/migrations/metadata/migrations.go diff --git a/pkg/db/sqlite/models/metadata/boil_main_test.go b/internal/db/sqlite/models/metadata/boil_main_test.go similarity index 100% rename from pkg/db/sqlite/models/metadata/boil_main_test.go rename to internal/db/sqlite/models/metadata/boil_main_test.go diff --git a/pkg/db/sqlite/models/metadata/boil_queries.go b/internal/db/sqlite/models/metadata/boil_queries.go similarity index 100% rename from pkg/db/sqlite/models/metadata/boil_queries.go rename to internal/db/sqlite/models/metadata/boil_queries.go diff --git a/pkg/db/sqlite/models/metadata/boil_queries_test.go b/internal/db/sqlite/models/metadata/boil_queries_test.go similarity index 100% rename from pkg/db/sqlite/models/metadata/boil_queries_test.go rename to internal/db/sqlite/models/metadata/boil_queries_test.go diff --git a/pkg/db/sqlite/models/metadata/boil_suites_test.go b/internal/db/sqlite/models/metadata/boil_suites_test.go similarity index 100% rename from pkg/db/sqlite/models/metadata/boil_suites_test.go rename to internal/db/sqlite/models/metadata/boil_suites_test.go diff --git a/pkg/db/sqlite/models/metadata/boil_table_names.go b/internal/db/sqlite/models/metadata/boil_table_names.go similarity index 100% rename from pkg/db/sqlite/models/metadata/boil_table_names.go rename to internal/db/sqlite/models/metadata/boil_table_names.go diff --git a/pkg/db/sqlite/models/metadata/boil_types.go b/internal/db/sqlite/models/metadata/boil_types.go similarity index 100% rename from pkg/db/sqlite/models/metadata/boil_types.go rename to internal/db/sqlite/models/metadata/boil_types.go diff --git a/pkg/db/sqlite/models/metadata/gorp_migrations.go b/internal/db/sqlite/models/metadata/gorp_migrations.go similarity index 100% rename from pkg/db/sqlite/models/metadata/gorp_migrations.go rename to internal/db/sqlite/models/metadata/gorp_migrations.go diff --git a/pkg/db/sqlite/models/metadata/gorp_migrations_test.go b/internal/db/sqlite/models/metadata/gorp_migrations_test.go similarity index 100% rename from pkg/db/sqlite/models/metadata/gorp_migrations_test.go rename to internal/db/sqlite/models/metadata/gorp_migrations_test.go diff --git a/pkg/db/sqlite/models/metadata/headers.go b/internal/db/sqlite/models/metadata/headers.go similarity index 100% rename from pkg/db/sqlite/models/metadata/headers.go rename to internal/db/sqlite/models/metadata/headers.go diff --git a/pkg/db/sqlite/models/metadata/headers_test.go b/internal/db/sqlite/models/metadata/headers_test.go similarity index 100% rename from pkg/db/sqlite/models/metadata/headers_test.go rename to internal/db/sqlite/models/metadata/headers_test.go diff --git a/pkg/db/sqlite/models/metadata/sqlite3_main_test.go b/internal/db/sqlite/models/metadata/sqlite3_main_test.go similarity index 100% rename from pkg/db/sqlite/models/metadata/sqlite3_main_test.go rename to internal/db/sqlite/models/metadata/sqlite3_main_test.go diff --git a/pkg/formatting/csv.go b/internal/formatting/csv.go similarity index 100% rename from pkg/formatting/csv.go rename to internal/formatting/csv.go diff --git a/pkg/noop/flusher.go b/internal/noop/flusher.go similarity index 100% rename from pkg/noop/flusher.go rename to internal/noop/flusher.go diff --git a/pkg/noop/write.go b/internal/noop/write.go similarity index 100% rename from pkg/noop/write.go rename to internal/noop/write.go diff --git a/pkg/pax/stfs.go b/internal/pax/stfs.go similarity index 100% rename from pkg/pax/stfs.go rename to internal/pax/stfs.go diff --git a/pkg/persisters/metadata.go b/internal/persisters/metadata.go similarity index 97% rename from pkg/persisters/metadata.go rename to internal/persisters/metadata.go index 2b099e6..8ef5c06 100644 --- a/pkg/persisters/metadata.go +++ b/internal/persisters/metadata.go @@ -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" diff --git a/pkg/persisters/sqlite.go b/internal/persisters/sqlite.go similarity index 100% rename from pkg/persisters/sqlite.go rename to internal/persisters/sqlite.go diff --git a/pkg/config/config.go b/pkg/config/config.go new file mode 100644 index 0000000..8671c16 --- /dev/null +++ b/pkg/config/config.go @@ -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 +} diff --git a/pkg/hardware/hardware.go b/pkg/hardware/hardware.go new file mode 100644 index 0000000..b21270c --- /dev/null +++ b/pkg/hardware/hardware.go @@ -0,0 +1,13 @@ +package hardware + +type DriveConfig struct { + Drive string +} + +func Eject( + state DriveConfig, +) error + +func Tell( + state DriveConfig, +) (int, error) diff --git a/pkg/inventory/inventory.go b/pkg/inventory/inventory.go new file mode 100644 index 0000000..e2677fe --- /dev/null +++ b/pkg/inventory/inventory.go @@ -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) diff --git a/pkg/operations/operations.go b/pkg/operations/operations.go new file mode 100644 index 0000000..7449a60 --- /dev/null +++ b/pkg/operations/operations.go @@ -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 diff --git a/pkg/recovery/recovery.go b/pkg/recovery/recovery.go new file mode 100644 index 0000000..111bfa4 --- /dev/null +++ b/pkg/recovery/recovery.go @@ -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) diff --git a/pkg/utility/utility.go b/pkg/utility/utility.go new file mode 100644 index 0000000..46c96b6 --- /dev/null +++ b/pkg/utility/utility.go @@ -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)