Skip to content

CLI tool to generate Flatpak sources directives for Go modules

License

Notifications You must be signed in to change notification settings

dennwc/flatpak-go-mod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flatpak Go modules helper

This CLI tool generates Flatpak sources directives for Go modules.

It helps avoid exposing network access to Flatpak build step, which is one of the requirements for publishing to Flathub.

Usage

go run github.com/dennwc/flatpak-go-mod@latest ./path/to/your/project

It will generate following files: go.mod.yml (or go.mod.json) and modules.txt.

Contents of go.mod.yml (or go.mod.json) should be copied into sources directives of Flatpak YAML. These directives will populate ./vendor during Flatpak build with all dependencies of your project, downloading them directly from Go modules mirror.

The modules.txt file should be copied into your Flatpak directory, which will be added to ./vendor directory during Flatpak build as well.

Then, build your Go project as usual. It should detect vendor directory automatically. You can also pass -mod=vendor to force vendoring mode during build.

Output

YAML

# Workaround for Go modules generated by github.com/dennwc/flatpak-go-mod
- type: file
  path: modules.txt
  dest: vendor
- type: archive
  url: https://proxy.golang.org/golang.org/x/mod/@v/v0.7.0.zip
  strip-components: 3
  dest: vendor/golang.org/x/mod
  sha256: 24abd1db13329873d72034dc27efad09cbc37d39cf28b8ff7bb3c2adc8eedef7

JSON

[
  {
    "type": "file",
    "path": "modules.txt",
    "dest": "vendor"
  },
  {
    "type": "archive",
    "url": "https://proxy.golang.org/golang.org/x/mod/@v/v0.7.0.zip",
    "strip-components": 3,
    "dest": "vendor/golang.org/x/mod",
    "sha256": "24abd1db13329873d72034dc27efad09cbc37d39cf28b8ff7bb3c2adc8eedef7"
  }
]

Options

  • line-pref customizes indentation in YAML/JSON file
  • dest-pref sets a prefix for sources.dest paths in YAML/JSON file
  • json changes the output format to JSON instead of YAML

License

MIT

About

CLI tool to generate Flatpak sources directives for Go modules

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages