1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
From a957c22f8b63f390fc4289b93a84e921e5c3d64d Mon Sep 17 00:00:00 2001
From: Jeff Carr <[email protected]>
Date: Fri, 27 Dec 2024 22:27:19 -0600
Subject: [PATCH] start work on an applyPatch()
---
Makefile | 5 ++++-
applyPatch.go | 35 +++++++++++++++++++++++++++++++++++
argv.go | 9 +++++----
main.go | 11 +++++++++++
send.go | 13 +++++++++++++
5 files changed, 68 insertions(+), 5 deletions(-)
create mode 100644 applyPatch.go
diff --git a/Makefile b/Makefile
index 409761e..3d6ef21 100644
--- a/Makefile
+++ b/Makefile
@@ -64,7 +64,7 @@ mine: install
all: install
forge list --all
-patches: install
+patches-make: install
forge --patchset "from makefile"
localhost-patches: install
@@ -73,6 +73,9 @@ localhost-patches: install
patches-list: install
forge --list-patchset
+patches-apply-213058: install
+ forge --apply /tmp/2024.12.27.213058.submitted.pb
+
dirty: install
forge dirty --all
diff --git a/applyPatch.go b/applyPatch.go
new file mode 100644
index 0000000..9dccc6c
--- /dev/null
+++ b/applyPatch.go
@@ -0,0 +1,35 @@
+// Copyright 2024 WIT.COM Inc Licensed GPL 3.0
+
+package main
+
+import (
+ "os"
+
+ "go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/log"
+)
+
+func applyPatches(pset *forgepb.Patchs) error {
+ all := pset.SortByFilename()
+ for all.Scan() {
+ p := all.Next()
+ log.Info("pset filename", p.Filename)
+ }
+ return nil
+}
+
+func readPatchFile(pbfile string) (*forgepb.Patchs, error) {
+ bytes, err := os.ReadFile(pbfile)
+ if err != nil {
+ log.Info("readfile error", pbfile, err)
+ return nil, err
+ }
+ var pset *forgepb.Patchs
+ pset = new(forgepb.Patchs)
+ err = pset.Unmarshal(bytes)
+ if err != nil {
+ log.Info("Unmarshal failed", pbfile, err)
+ return nil, err
+ }
+ return pset, nil
+}
diff --git a/argv.go b/argv.go
index 7c19ed4..5b90fc4 100644
--- a/argv.go
+++ b/argv.go
@@ -28,10 +28,11 @@ type args struct {
Delete string `arg:"--delete" help:"delete this repo"`
URL string `arg:"--connect" help:"gowebd url"`
Register string `arg:"--register" help:"register your git URL (foo.com/mystuff) or (github.com/foo/bar)"`
- GitReset bool `arg:"--git-reset" help:"run 'git reset --hard'"`
- Scan bool `arg:"--scan" help:"reload protobuf from .git/"`
- Force bool `arg:"--force" help:"force redo things"`
- PatchSet string `arg:"--patchset" help:"make patch set"`
+ GitReset bool `arg:"--git-reset" help:"run 'git reset --hard'"`
+ Scan bool `arg:"--scan" help:"reload protobuf from .git/"`
+ Force bool `arg:"--force" help:"force redo things"`
+ PatchSet string `arg:"--patchset" help:"make patch set"`
+ Apply string `arg:"--apply" help:"apply a patch set"`
}
func (args) Version() string {
diff --git a/main.go b/main.go
index 1c2db96..25e801e 100644
--- a/main.go
+++ b/main.go
@@ -76,6 +76,17 @@ func main() {
}
}
+ if argv.Apply != "" {
+ pset, err := readPatchFile(argv.Apply)
+ if err != nil {
+ badExit(err)
+ }
+ if err = applyPatches(pset); err == nil {
+ okExit("applied patch ok")
+ }
+ badExit(err)
+ }
+
if argv.Delete != "" {
me.forge.DeleteByGoPath(argv.Delete)
me.forge.SetConfigSave(true)
diff --git a/send.go b/send.go
index 900b3b3..67fec90 100644
--- a/send.go
+++ b/send.go
@@ -3,6 +3,8 @@
package main
import (
+ "os"
+ "path/filepath"
"strings"
"go.wit.com/lib/protobuf/forgepb"
@@ -77,6 +79,17 @@ func getPatch(pbfile string) error {
return err
}
log.Info("getPatch() len(body)", len(body))
+ var pset *forgepb.Patchs
+ pset = new(forgepb.Patchs)
+ err = pset.Unmarshal(body)
+ if err != nil {
+ log.Info("Unmarshal failed", err)
+ return err
+ }
+ filename := filepath.Join("/tmp", pbfile)
+ f, _ := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
+ f.Write(body)
+ f.Close()
return nil
}
--
2.45.2
|