Browse Source

chore(cmd): clean up commands (#9705)

Move infrastructure related commands to under `cmd/infra` and
development stuff to `cmd/dev`. The default build command builds the
regular user facing binaries: syncthing, stdiscosrv, and strelaysrv.
Jakob Borg 1 year ago
parent
commit
d4770ddc77
49 changed files with 21 additions and 25 deletions
  1. 1 1
      .github/workflows/build-syncthing.yaml
  2. 13 17
      build.go
  3. 0 0
      cmd/dev/stcompdirs/main.go
  4. 0 0
      cmd/dev/stdisco/main.go
  5. 0 0
      cmd/dev/stevents/main.go
  6. 0 0
      cmd/dev/stfileinfo/main.go
  7. 0 0
      cmd/dev/stfinddevice/main.go
  8. 0 0
      cmd/dev/stfindignored/main.go
  9. 0 0
      cmd/dev/stgenfiles/main.go
  10. 0 0
      cmd/dev/stsigtool/main.go
  11. 0 0
      cmd/dev/stvanity/main.go
  12. 0 0
      cmd/dev/stwatchfile/main.go
  13. 0 0
      cmd/infra/stcrashreceiver/_testdata/panic.log
  14. 0 0
      cmd/infra/stcrashreceiver/diskstore.go
  15. 0 0
      cmd/infra/stcrashreceiver/main.go
  16. 0 0
      cmd/infra/stcrashreceiver/metrics.go
  17. 0 0
      cmd/infra/stcrashreceiver/sentry.go
  18. 0 0
      cmd/infra/stcrashreceiver/sentry_test.go
  19. 0 0
      cmd/infra/stcrashreceiver/sourcecodeloader.go
  20. 0 0
      cmd/infra/stcrashreceiver/stcrashreceiver.go
  21. 0 0
      cmd/infra/stcrashreceiver/util.go
  22. 0 0
      cmd/infra/strelaypoolsrv/LICENSE
  23. 0 0
      cmd/infra/strelaypoolsrv/README.md
  24. 0 0
      cmd/infra/strelaypoolsrv/auto/.gitignore
  25. 1 1
      cmd/infra/strelaypoolsrv/auto/doc.go
  26. 0 0
      cmd/infra/strelaypoolsrv/auto/noassets.go
  27. 0 0
      cmd/infra/strelaypoolsrv/gui/index.html
  28. 1 1
      cmd/infra/strelaypoolsrv/main.go
  29. 0 0
      cmd/infra/strelaypoolsrv/main_test.go
  30. 0 0
      cmd/infra/strelaypoolsrv/stats.go
  31. 0 0
      cmd/infra/strelaypoolsrv/stats_test.go
  32. 0 0
      cmd/infra/stupgrades/main.go
  33. 0 0
      cmd/infra/ursrv/aggregate/aggregate.go
  34. 2 2
      cmd/infra/ursrv/main.go
  35. 0 0
      cmd/infra/ursrv/serve/analytics.go
  36. 0 0
      cmd/infra/ursrv/serve/compiler_test.go
  37. 0 0
      cmd/infra/ursrv/serve/formatting.go
  38. 0 0
      cmd/infra/ursrv/serve/metrics.go
  39. 0 0
      cmd/infra/ursrv/serve/serve.go
  40. 0 0
      cmd/infra/ursrv/serve/static/assets/img/favicon.png
  41. 0 0
      cmd/infra/ursrv/serve/static/bootstrap/css/bootstrap-theme.min.css
  42. 0 0
      cmd/infra/ursrv/serve/static/bootstrap/css/bootstrap.min.css
  43. 0 0
      cmd/infra/ursrv/serve/static/bootstrap/js/bootstrap.min.js
  44. 0 0
      cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.eot
  45. 0 0
      cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.svg
  46. 0 0
      cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.ttf
  47. 0 0
      cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.woff
  48. 1 1
      cmd/infra/ursrv/serve/static/index.html
  49. 2 2
      lib/upgrade/upgrade_common.go

+ 1 - 1
.github/workflows/build-syncthing.yaml

@@ -516,7 +516,7 @@ jobs:
 
       - name: Install signing tool
         run: |
-          go install ./cmd/stsigtool
+          go install ./cmd/dev/stsigtool
 
       - name: Sign archives
         run: |

+ 13 - 17
build.go

@@ -193,37 +193,37 @@ var targets = map[string]target{
 		debname:     "syncthing-relaypoolsrv",
 		debdeps:     []string{"libc6"},
 		description: "Syncthing Relay Pool Server",
-		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/strelaypoolsrv"},
+		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/infra/strelaypoolsrv"},
 		binaryName:  "strelaypoolsrv", // .exe will be added automatically for Windows builds
 		archiveFiles: []archiveFile{
 			{src: "{{binary}}", dst: "{{binary}}", perm: 0755},
-			{src: "cmd/strelaypoolsrv/README.md", dst: "README.txt", perm: 0644},
-			{src: "cmd/strelaypoolsrv/LICENSE", dst: "LICENSE.txt", perm: 0644},
+			{src: "cmd/infra/strelaypoolsrv/README.md", dst: "README.txt", perm: 0644},
+			{src: "cmd/infra/strelaypoolsrv/LICENSE", dst: "LICENSE.txt", perm: 0644},
 			{src: "AUTHORS", dst: "AUTHORS.txt", perm: 0644},
 		},
 		installationFiles: []archiveFile{
 			{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
-			{src: "cmd/strelaypoolsrv/README.md", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/README.txt", perm: 0644},
-			{src: "cmd/strelaypoolsrv/LICENSE", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/LICENSE.txt", perm: 0644},
+			{src: "cmd/infra/strelaypoolsrv/README.md", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/README.txt", perm: 0644},
+			{src: "cmd/infra/strelaypoolsrv/LICENSE", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/LICENSE.txt", perm: 0644},
 			{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/AUTHORS.txt", perm: 0644},
 		},
 	},
 	"stupgrades": {
 		name:        "stupgrades",
 		description: "Syncthing Upgrade Check Server",
-		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/stupgrades"},
+		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/infra/stupgrades"},
 		binaryName:  "stupgrades",
 	},
 	"stcrashreceiver": {
 		name:        "stcrashreceiver",
 		description: "Syncthing Crash Server",
-		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/stcrashreceiver"},
+		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/infra/stcrashreceiver"},
 		binaryName:  "stcrashreceiver",
 	},
 	"ursrv": {
 		name:        "ursrv",
 		description: "Syncthing Usage Reporting Server",
-		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/ursrv"},
+		buildPkgs:   []string{"github.com/syncthing/syncthing/cmd/infra/ursrv"},
 		binaryName:  "ursrv",
 	},
 }
@@ -232,15 +232,11 @@ func initTargets() {
 	all := targets["all"]
 	pkgs, _ := filepath.Glob("cmd/*")
 	for _, pkg := range pkgs {
-		pkg = filepath.Base(pkg)
-		if strings.HasPrefix(pkg, ".") {
-			// ignore dotfiles
+		if files, err := filepath.Glob(pkg + "/*.go"); err != nil || len(files) == 0 {
+			// No go files in the directory
 			continue
 		}
-		if noupgrade && pkg == "stupgrades" {
-			continue
-		}
-		all.buildPkgs = append(all.buildPkgs, fmt.Sprintf("github.com/syncthing/syncthing/cmd/%s", pkg))
+		all.buildPkgs = append(all.buildPkgs, fmt.Sprintf("github.com/syncthing/syncthing/%s", pkg))
 	}
 	targets["all"] = all
 
@@ -838,12 +834,12 @@ func listFiles(dir string) []string {
 
 func rebuildAssets() {
 	os.Setenv("SOURCE_DATE_EPOCH", fmt.Sprint(buildStamp()))
-	runPrint(goCmd, "generate", "github.com/syncthing/syncthing/lib/api/auto", "github.com/syncthing/syncthing/cmd/strelaypoolsrv/auto")
+	runPrint(goCmd, "generate", "github.com/syncthing/syncthing/lib/api/auto", "github.com/syncthing/syncthing/cmd/infra/strelaypoolsrv/auto")
 }
 
 func lazyRebuildAssets() {
 	shouldRebuild := shouldRebuildAssets("lib/api/auto/gui.files.go", "gui") ||
-		shouldRebuildAssets("cmd/strelaypoolsrv/auto/gui.files.go", "cmd/strelaypoolsrv/gui")
+		shouldRebuildAssets("cmd/infra/strelaypoolsrv/auto/gui.files.go", "cmd/infra/strelaypoolsrv/gui")
 
 	if withNextGenGUI {
 		shouldRebuild = buildNextGenGUI() || shouldRebuild

+ 0 - 0
cmd/stcompdirs/main.go → cmd/dev/stcompdirs/main.go


+ 0 - 0
cmd/stdisco/main.go → cmd/dev/stdisco/main.go


+ 0 - 0
cmd/stevents/main.go → cmd/dev/stevents/main.go


+ 0 - 0
cmd/stfileinfo/main.go → cmd/dev/stfileinfo/main.go


+ 0 - 0
cmd/stfinddevice/main.go → cmd/dev/stfinddevice/main.go


+ 0 - 0
cmd/stfindignored/main.go → cmd/dev/stfindignored/main.go


+ 0 - 0
cmd/stgenfiles/main.go → cmd/dev/stgenfiles/main.go


+ 0 - 0
cmd/stsigtool/main.go → cmd/dev/stsigtool/main.go


+ 0 - 0
cmd/stvanity/main.go → cmd/dev/stvanity/main.go


+ 0 - 0
cmd/stwatchfile/main.go → cmd/dev/stwatchfile/main.go


+ 0 - 0
cmd/stcrashreceiver/_testdata/panic.log → cmd/infra/stcrashreceiver/_testdata/panic.log


+ 0 - 0
cmd/stcrashreceiver/diskstore.go → cmd/infra/stcrashreceiver/diskstore.go


+ 0 - 0
cmd/stcrashreceiver/main.go → cmd/infra/stcrashreceiver/main.go


+ 0 - 0
cmd/stcrashreceiver/metrics.go → cmd/infra/stcrashreceiver/metrics.go


+ 0 - 0
cmd/stcrashreceiver/sentry.go → cmd/infra/stcrashreceiver/sentry.go


+ 0 - 0
cmd/stcrashreceiver/sentry_test.go → cmd/infra/stcrashreceiver/sentry_test.go


+ 0 - 0
cmd/stcrashreceiver/sourcecodeloader.go → cmd/infra/stcrashreceiver/sourcecodeloader.go


+ 0 - 0
cmd/stcrashreceiver/stcrashreceiver.go → cmd/infra/stcrashreceiver/stcrashreceiver.go


+ 0 - 0
cmd/stcrashreceiver/util.go → cmd/infra/stcrashreceiver/util.go


+ 0 - 0
cmd/strelaypoolsrv/LICENSE → cmd/infra/strelaypoolsrv/LICENSE


+ 0 - 0
cmd/strelaypoolsrv/README.md → cmd/infra/strelaypoolsrv/README.md


+ 0 - 0
cmd/strelaypoolsrv/auto/.gitignore → cmd/infra/strelaypoolsrv/auto/.gitignore


+ 1 - 1
cmd/strelaypoolsrv/auto/doc.go → cmd/infra/strelaypoolsrv/auto/doc.go

@@ -4,7 +4,7 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this file,
 // You can obtain one at https://mozilla.org/MPL/2.0/.
 
-//go:generate go run ../../../script/genassets.go -o gui.files.go ../gui
+//go:generate go run ../../../../script/genassets.go -o gui.files.go ../gui
 
 // Package auto contains auto generated files for web assets.
 package auto

+ 0 - 0
cmd/strelaypoolsrv/auto/noassets.go → cmd/infra/strelaypoolsrv/auto/noassets.go


+ 0 - 0
cmd/strelaypoolsrv/gui/index.html → cmd/infra/strelaypoolsrv/gui/index.html


+ 1 - 1
cmd/strelaypoolsrv/main.go → cmd/infra/strelaypoolsrv/main.go

@@ -23,7 +23,7 @@ import (
 	lru "github.com/hashicorp/golang-lru/v2"
 	"github.com/prometheus/client_golang/prometheus"
 	"github.com/prometheus/client_golang/prometheus/promhttp"
-	"github.com/syncthing/syncthing/cmd/strelaypoolsrv/auto"
+	"github.com/syncthing/syncthing/cmd/infra/strelaypoolsrv/auto"
 	"github.com/syncthing/syncthing/lib/assets"
 	_ "github.com/syncthing/syncthing/lib/automaxprocs"
 	"github.com/syncthing/syncthing/lib/geoip"

+ 0 - 0
cmd/strelaypoolsrv/main_test.go → cmd/infra/strelaypoolsrv/main_test.go


+ 0 - 0
cmd/strelaypoolsrv/stats.go → cmd/infra/strelaypoolsrv/stats.go


+ 0 - 0
cmd/strelaypoolsrv/stats_test.go → cmd/infra/strelaypoolsrv/stats_test.go


+ 0 - 0
cmd/stupgrades/main.go → cmd/infra/stupgrades/main.go


+ 0 - 0
cmd/ursrv/aggregate/aggregate.go → cmd/infra/ursrv/aggregate/aggregate.go


+ 2 - 2
cmd/ursrv/main.go → cmd/infra/ursrv/main.go

@@ -11,8 +11,8 @@ import (
 	"os"
 
 	"github.com/alecthomas/kong"
-	"github.com/syncthing/syncthing/cmd/ursrv/aggregate"
-	"github.com/syncthing/syncthing/cmd/ursrv/serve"
+	"github.com/syncthing/syncthing/cmd/infra/ursrv/aggregate"
+	"github.com/syncthing/syncthing/cmd/infra/ursrv/serve"
 	_ "github.com/syncthing/syncthing/lib/automaxprocs"
 )
 

+ 0 - 0
cmd/ursrv/serve/analytics.go → cmd/infra/ursrv/serve/analytics.go


+ 0 - 0
cmd/ursrv/serve/compiler_test.go → cmd/infra/ursrv/serve/compiler_test.go


+ 0 - 0
cmd/ursrv/serve/formatting.go → cmd/infra/ursrv/serve/formatting.go


+ 0 - 0
cmd/ursrv/serve/metrics.go → cmd/infra/ursrv/serve/metrics.go


+ 0 - 0
cmd/ursrv/serve/serve.go → cmd/infra/ursrv/serve/serve.go


+ 0 - 0
cmd/ursrv/serve/static/assets/img/favicon.png → cmd/infra/ursrv/serve/static/assets/img/favicon.png


+ 0 - 0
cmd/ursrv/serve/static/bootstrap/css/bootstrap-theme.min.css → cmd/infra/ursrv/serve/static/bootstrap/css/bootstrap-theme.min.css


+ 0 - 0
cmd/ursrv/serve/static/bootstrap/css/bootstrap.min.css → cmd/infra/ursrv/serve/static/bootstrap/css/bootstrap.min.css


+ 0 - 0
cmd/ursrv/serve/static/bootstrap/js/bootstrap.min.js → cmd/infra/ursrv/serve/static/bootstrap/js/bootstrap.min.js


+ 0 - 0
cmd/ursrv/serve/static/fonts/glyphicons-halflings-regular.eot → cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.eot


+ 0 - 0
cmd/ursrv/serve/static/fonts/glyphicons-halflings-regular.svg → cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.svg


+ 0 - 0
cmd/ursrv/serve/static/fonts/glyphicons-halflings-regular.ttf → cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.ttf


+ 0 - 0
cmd/ursrv/serve/static/fonts/glyphicons-halflings-regular.woff → cmd/infra/ursrv/serve/static/fonts/glyphicons-halflings-regular.woff


+ 1 - 1
cmd/ursrv/serve/static/index.html → cmd/infra/ursrv/serve/static/index.html

@@ -611,7 +611,7 @@ found in the LICENSE file.
   </div>
   <hr>
   <p>
-    <a href="https://github.com/syncthing/syncthing/tree/main/cmd/ursrv">Source code</a>.
+    <a href="https://github.com/syncthing/syncthing/">Source code</a>.
     This product includes GeoLite2 data created by MaxMind, available from
     <a href="http://www.maxmind.com">http://www.maxmind.com</a>.
   </p>

+ 2 - 2
lib/upgrade/upgrade_common.go

@@ -25,7 +25,7 @@ type Release struct {
 	Assets     []Asset `json:"assets"`
 
 	// The HTML URL is needed for human readable links in the output created
-	// by cmd/stupgrades.
+	// by cmd/infra/stupgrades.
 	HTMLURL string `json:"html_url"`
 }
 
@@ -34,7 +34,7 @@ type Asset struct {
 	Name string `json:"name"`
 
 	// The browser URL is needed for human readable links in the output created
-	// by cmd/stupgrades.
+	// by cmd/infra/stupgrades.
 	BrowserURL string `json:"browser_download_url,omitempty"`
 }