Skip to content

Commit adc2f74

Browse files
committed
template: Refactor each generated file to its own function
1 parent 42a9edd commit adc2f74

File tree

1 file changed

+66
-14
lines changed

1 file changed

+66
-14
lines changed

template.go

Lines changed: 66 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,41 @@ func writeTemplates(dir, gopkg, debsrc, debbin, debversion, pkgType string, depe
1414
if err := os.Mkdir(filepath.Join(dir, "debian"), 0755); err != nil {
1515
return err
1616
}
17-
1817
if err := os.Mkdir(filepath.Join(dir, "debian", "source"), 0755); err != nil {
1918
return err
2019
}
2120

21+
if err := writeDebianChangelog(dir, debsrc, debversion); err != nil {
22+
return err
23+
}
24+
if err := writeDebianControl(dir, gopkg, debsrc, debbin, pkgType, dependencies); err != nil {
25+
return err
26+
}
27+
if err := writeDebianCopyright(dir, gopkg, vendorDirs); err != nil {
28+
return err
29+
}
30+
if err := writeDebianRules(dir, pkgType); err != nil {
31+
return err
32+
}
33+
if err := writeDebianSourceFormat(dir); err != nil {
34+
return err
35+
}
36+
if err := writeDebianGbpConf(dir); err != nil {
37+
return err
38+
}
39+
if err := writeDebianWatch(dir, gopkg, debsrc); err != nil {
40+
return err
41+
}
42+
return nil
43+
}
44+
45+
func writeDebianChangelog(dir, debsrc, debversion string) error {
2246
f, err := os.Create(filepath.Join(dir, "debian", "changelog"))
2347
if err != nil {
2448
return err
2549
}
2650
defer f.Close()
51+
2752
fmt.Fprintf(f, "%s (%s) UNRELEASED; urgency=medium\n", debsrc, debversion)
2853
fmt.Fprintf(f, "\n")
2954
fmt.Fprintf(f, " * Initial release (Closes: TODO)\n")
@@ -33,11 +58,16 @@ func writeTemplates(dir, gopkg, debsrc, debbin, debversion, pkgType string, depe
3358
getDebianEmail(),
3459
time.Now().Format("Mon, 02 Jan 2006 15:04:05 -0700"))
3560

36-
f, err = os.Create(filepath.Join(dir, "debian", "control"))
61+
return nil
62+
}
63+
64+
func writeDebianControl(dir, gopkg, debsrc, debbin, pkgType string, dependencies []string) error {
65+
f, err := os.Create(filepath.Join(dir, "debian", "control"))
3766
if err != nil {
3867
return err
3968
}
4069
defer f.Close()
70+
4171
fmt.Fprintf(f, "Source: %s\n", debsrc)
4272
fmt.Fprintf(f, "Maintainer: Debian Go Packaging Team <team+pkg-go@tracker.debian.org>\n")
4373
fprintfControlField(f, "Uploaders", []string{getDebianName() + " <" + getDebianEmail() + ">"})
@@ -88,22 +118,29 @@ func writeTemplates(dir, gopkg, debsrc, debbin, debversion, pkgType string, depe
88118
}
89119
fmt.Fprintf(f, " %s\n", longdescription)
90120

121+
return nil
122+
}
123+
124+
func writeDebianCopyright(dir, gopkg string, vendorDirs []string) error {
91125
license, fulltext, err := getLicenseForGopkg(gopkg)
92126
if err != nil {
93127
log.Printf("Could not determine license for %q: %v\n", gopkg, err)
94128
license = "TODO"
95129
fulltext = "TODO"
96130
}
97-
f, err = os.Create(filepath.Join(dir, "debian", "copyright"))
131+
132+
f, err := os.Create(filepath.Join(dir, "debian", "copyright"))
98133
if err != nil {
99134
return err
100135
}
101136
defer f.Close()
137+
102138
_, copyright, err := getAuthorAndCopyrightForGopkg(gopkg)
103139
if err != nil {
104140
log.Printf("Could not determine copyright for %q: %v\n", gopkg, err)
105141
copyright = "TODO"
106142
}
143+
107144
fmt.Fprintf(f, "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\n")
108145
fmt.Fprintf(f, "Source: %s\n", getHomepageForGopkg(gopkg))
109146
fmt.Fprintf(f, "Upstream-Name: %s\n", filepath.Base(gopkg))
@@ -125,11 +162,16 @@ func writeTemplates(dir, gopkg, debsrc, debbin, debversion, pkgType string, depe
125162
fmt.Fprintf(f, "License: %s\n", license)
126163
fmt.Fprintf(f, fulltext)
127164

128-
f, err = os.Create(filepath.Join(dir, "debian", "rules"))
165+
return nil
166+
}
167+
168+
func writeDebianRules(dir, pkgType string) error {
169+
f, err := os.Create(filepath.Join(dir, "debian", "rules"))
129170
if err != nil {
130171
return err
131172
}
132173
defer f.Close()
174+
133175
fmt.Fprintf(f, "#!/usr/bin/make -f\n")
134176
fmt.Fprintf(f, "\n")
135177
fmt.Fprintf(f, "%%:\n")
@@ -140,44 +182,54 @@ func writeTemplates(dir, gopkg, debsrc, debbin, debversion, pkgType string, depe
140182
fmt.Fprintf(f, "\tdh_auto_install -- --no-source\n")
141183
}
142184

143-
f, err = os.Create(filepath.Join(dir, "debian", "source", "format"))
185+
if err := os.Chmod(filepath.Join(dir, "debian", "rules"), 0755); err != nil {
186+
return err
187+
}
188+
189+
return nil
190+
}
191+
192+
func writeDebianSourceFormat(dir string) error {
193+
f, err := os.Create(filepath.Join(dir, "debian", "source", "format"))
144194
if err != nil {
145195
return err
146196
}
147197
defer f.Close()
198+
148199
fmt.Fprintf(f, "3.0 (quilt)\n")
200+
return nil
201+
}
149202

150-
f, err = os.Create(filepath.Join(dir, "debian", "gbp.conf"))
203+
func writeDebianGbpConf(dir string) error {
204+
f, err := os.Create(filepath.Join(dir, "debian", "gbp.conf"))
151205
if err != nil {
152206
return err
153207
}
154208
defer f.Close()
155-
fmt.Fprintf(f, "[DEFAULT]\n")
156209

210+
fmt.Fprintf(f, "[DEFAULT]\n")
157211
if dep14 {
158212
fmt.Fprintf(f, "debian-branch = debian/sid\n")
159213
}
160-
161214
if pristineTar {
162215
fmt.Fprintf(f, "pristine-tar = True\n")
163216
}
217+
return nil
218+
}
164219

165-
if err := os.Chmod(filepath.Join(dir, "debian", "rules"), 0755); err != nil {
166-
return err
167-
}
168-
220+
func writeDebianWatch(dir, gopkg, debsrc string) error {
169221
if strings.HasPrefix(gopkg, "github.com/") {
170-
f, err = os.Create(filepath.Join(dir, "debian", "watch"))
222+
f, err := os.Create(filepath.Join(dir, "debian", "watch"))
171223
if err != nil {
172224
return err
173225
}
174226
defer f.Close()
227+
175228
fmt.Fprintf(f, "version=4\n")
176229
fmt.Fprintf(f, `opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/%s-\$1\.tar\.gz/,\`+"\n", debsrc)
177230
fmt.Fprintf(f, `uversionmangle=s/(\d)[_\.\-\+]?(RC|rc|pre|dev|beta|alpha)[.]?(\d*)$/\$1~\$2\$3/ \`+"\n")
178231
fmt.Fprintf(f, ` https://%s/tags .*/v?(\d\S*)\.tar\.gz`+"\n", gopkg)
179232
}
180-
181233
return nil
182234
}
183235

0 commit comments

Comments
 (0)