dennwc / flatpak-go-mod

CLI tool to generate Flatpak sources directives for Go modules

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 and modules.txt.

Contents of go.mod.yml 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

# 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

Options

  • line-pref customizes indentation in YAML file
  • dest-pref sets a prefix for sources.dest paths in YAML file

License

MIT

About

CLI tool to generate Flatpak sources directives for Go modules

License:MIT License


Languages

Language:Go 100.0%