gocustomurls/README.md

1.8 KiB

GocustomUrls

This is a homespun implementation of the practice of using custom import paths for go modules.

This package basically returns a html document with a prefilled meta tag

<meta name="go-import" content="{package} git {url location of the package}">

There are ways to do this with nginx or hugo but I wanted to:

  • host on a subdomain
  • not muck up my ngnix config

So I used golang for this project.

Running

$ ./artifacts/gocustomurls --conf <PATH_TO_CONF_FILE>

A sample config file is located here

SystemD

A sample systemd file is located here

Testing

You can test with

(a) httpie

$ http --body "https://{domain.name}/{package}?go-get=1"
...Truncated output

(b) With the go-get command

$ go get -v -u jbowen.dev/cereal
get "jbowen.dev/cereal": found meta tag get.metaImport{Prefix:"jbowen.dev/cereal", VCS:"git", RepoRoot:"https://github.com/jamesbo13/cereal"} at //jbowen.dev/cereal?go-get=1
jbowen.dev/cereal (download)

TODOs

  • Fix permission errors around opening the app.log and rules.json.
  • Make the flags (config, rules) required instead of optional.
  • Figure how to use logrotate (a linux utility)
  • Figure how to do log rotation as part of this app's function
  • Add tests
  • Add systemd.service and explanation
  • Add Dockerfile and explanation
  • Figure how to use goreleaser here to release deb and rpm packages (so basically split it, goreleaser for github and woodpecker for Woodpecker)
  • Add mirror to Github
  • Add Github action
  • Update README.md