aboutsummaryrefslogtreecommitdiff
path: root/internal/cli/export_feeds.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cli/export_feeds.go')
-rw-r--r--internal/cli/export_feeds.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/cli/export_feeds.go b/internal/cli/export_feeds.go
new file mode 100644
index 00000000..0d0d5da5
--- /dev/null
+++ b/internal/cli/export_feeds.go
@@ -0,0 +1,30 @@
+// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
+// SPDX-License-Identifier: Apache-2.0
+
+package cli // import "miniflux.app/v2/internal/cli"
+
+import (
+ "fmt"
+
+ "miniflux.app/v2/internal/reader/opml"
+ "miniflux.app/v2/internal/storage"
+)
+
+func exportUserFeeds(store *storage.Storage, username string) {
+ user, err := store.UserByUsername(username)
+ if err != nil {
+ printErrorAndExit(fmt.Errorf("unable to find user: %w", err))
+ }
+
+ if user == nil {
+ printErrorAndExit(fmt.Errorf("user %q not found", username))
+ }
+
+ opmlHandler := opml.NewHandler(store)
+ opmlExport, err := opmlHandler.Export(user.ID)
+ if err != nil {
+ printErrorAndExit(fmt.Errorf("unable to export feeds: %w", err))
+ }
+
+ fmt.Println(opmlExport)
+}