aboutsummaryrefslogtreecommitdiff
path: root/gocryptfs-xray/paths_ctlsock.go
diff options
context:
space:
mode:
Diffstat (limited to 'gocryptfs-xray/paths_ctlsock.go')
-rw-r--r--gocryptfs-xray/paths_ctlsock.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/gocryptfs-xray/paths_ctlsock.go b/gocryptfs-xray/paths_ctlsock.go
new file mode 100644
index 0000000..3c69ec3
--- /dev/null
+++ b/gocryptfs-xray/paths_ctlsock.go
@@ -0,0 +1,43 @@
+package main
+
+import (
+ "bufio"
+ "fmt"
+ "os"
+
+ "github.com/rfjakob/gocryptfs/ctlsock"
+)
+
+func decryptPaths(socketPath string) {
+ var req ctlsock.RequestStruct
+ transformPaths(socketPath, &req, &req.DecryptPath)
+}
+
+func encryptPaths(socketPath string) {
+ var req ctlsock.RequestStruct
+ transformPaths(socketPath, &req, &req.EncryptPath)
+}
+
+func transformPaths(socketPath string, req *ctlsock.RequestStruct, in *string) {
+ c, err := ctlsock.New(socketPath)
+ if err != nil {
+ fmt.Printf("fatal: %v\n", err)
+ os.Exit(1)
+ }
+ line := 0
+ scanner := bufio.NewScanner(os.Stdin)
+ for scanner.Scan() {
+ line++
+ *in = scanner.Text()
+ resp, err := c.Query(req)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "error at input line %d %q: %v\n", line, *in, err)
+ continue
+ }
+ if resp.WarnText != "" {
+ fmt.Fprintf(os.Stderr, "warning at input line %d %q: %v\n", line, *in, resp.WarnText)
+ }
+ fmt.Println(resp.Result)
+ }
+ os.Exit(0)
+}