@@ -35,7 +35,8 @@ func writeTemplates(dir, gopkg, debsrc, debLib, debProg, debversion string,
35
35
return err
36
36
}
37
37
38
- if err := writeDebianWatch (dir , gopkg , debsrc , u .hasRelease ); err != nil {
38
+ var repack bool = len (u .vendorDirs ) > 0 || u .hasGodeps
39
+ if err := writeDebianWatch (dir , gopkg , debsrc , u .hasRelease , repack ); err != nil {
39
40
return err
40
41
}
41
42
@@ -295,7 +296,7 @@ func writeDebianGbpConf(dir string, dep14, pristineTar bool) error {
295
296
return nil
296
297
}
297
298
298
- func writeDebianWatch (dir , gopkg , debsrc string , hasRelease bool ) error {
299
+ func writeDebianWatch (dir , gopkg , debsrc string , hasRelease bool , repack bool ) error {
299
300
// TODO: Support other hosters too
300
301
host := "github.com"
301
302
@@ -314,16 +315,29 @@ func writeDebianWatch(dir, gopkg, debsrc string, hasRelease bool) error {
314
315
}
315
316
defer f .Close ()
316
317
318
+ filenamemanglePattern := `s%%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%%%s-$1.tar.gz%%`
319
+ uversionmanglePattern := `s/(\d)[_\.\-\+]?(RC|rc|pre|dev|beta|alpha)[.]?(\d*)$/\$1~\$2\$3/`
320
+
317
321
if hasRelease {
318
322
log .Printf ("Setting debian/watch to track release tarball" )
319
323
fmt .Fprintf (f , "version=4\n " )
320
- fmt .Fprintf (f , `opts="filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/%s-\$1\.tar\.gz/, \` + "\n " , debsrc )
321
- fmt .Fprintf (f , ` uversionmangle=s/(\d)[_\.\-\+]?(RC|rc|pre|dev|beta|alpha)[.]?(\d*)$/\$1~\$2\$3/" \` + "\n " )
324
+ fmt .Fprintf (f , `opts="filenamemangle=` + filenamemanglePattern + `,\` + "\n " , debsrc )
325
+ fmt .Fprintf (f , ` uversionmangle=` + uversionmanglePattern )
326
+ if repack {
327
+ fmt .Fprintf (f , `,\` + "\n " )
328
+ fmt .Fprintf (f , ` dversionmangle=s/\+ds\d*$//,repacksuffix=+ds1` )
329
+ }
330
+ fmt .Fprintf (f , `" \` + "\n " )
322
331
fmt .Fprintf (f , ` https://%s/%s/%s/tags .*/v?(\d\S*)\.tar\.gz debian` + "\n " , host , owner , repo )
323
332
} else {
324
333
log .Printf ("Setting debian/watch to track git HEAD" )
325
334
fmt .Fprintf (f , "version=4\n " )
326
- fmt .Fprintf (f , `opts="mode=git, pgpmode=none" \` + "\n " )
335
+ fmt .Fprintf (f , `opts="mode=git, pgpmode=none` )
336
+ if repack {
337
+ fmt .Fprintf (f , `,\` + "\n " )
338
+ fmt .Fprintf (f , ` dversionmangle=s/\+ds\d*$//,repacksuffix=+ds1` )
339
+ }
340
+ fmt .Fprintf (f , `" \` + "\n " )
327
341
fmt .Fprintf (f , ` https://%s/%s/%s.git \` + "\n " , host , owner , repo )
328
342
fmt .Fprintf (f , " HEAD debian\n " )
329
343
@@ -332,8 +346,13 @@ func writeDebianWatch(dir, gopkg, debsrc string, hasRelease bool) error {
332
346
fmt .Fprintf (f , "# Use the following when upstream starts to tag releases:\n " )
333
347
fmt .Fprintf (f , "#\n " )
334
348
fmt .Fprintf (f , "#version=4\n " )
335
- fmt .Fprintf (f , `#opts="filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/%s-\$1\.tar\.gz/, \` + "\n " , debsrc )
336
- fmt .Fprintf (f , `# uversionmangle=s/(\d)[_\.\-\+]?(RC|rc|pre|dev|beta|alpha)[.]?(\d*)$/\$1~\$2\$3/" \` + "\n " )
349
+ fmt .Fprintf (f , `#opts="filenamemangle=` + filenamemanglePattern + `,\` + "\n " , debsrc )
350
+ fmt .Fprintf (f , `# uversionmangle=` + uversionmanglePattern )
351
+ if repack {
352
+ fmt .Fprintf (f , `,\` + "\n " )
353
+ fmt .Fprintf (f , `# dversionmangle=s/\+ds\d*$//,repacksuffix=+ds1` )
354
+ }
355
+ fmt .Fprintf (f , `" \` + "\n " )
337
356
fmt .Fprintf (f , `# https://%s/%s/%s/tags .*/v?(\d\S*)\.tar\.gz debian` + "\n " , host , owner , repo )
338
357
}
339
358
0 commit comments