iratusmachina f7ff8eb6b7 | ||
---|---|---|
templates | ||
testData | ||
.gitignore | ||
Makefile | ||
README.md | ||
app.go | ||
bytesize.go | ||
bytesize_test.go | ||
conf.go | ||
conf_test.go | ||
embed.go | ||
go.mod | ||
go.sum | ||
handlers.go | ||
logger.go | ||
logger_test.go | ||
main.go | ||
middleware.go | ||
testUtils_test.go |
README.md
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.
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)
Sample logrotate config
Initial
~/.gocustomurls/logs/app.log {
size 20M
copytruncate
compress
notifempty
delaycompress
}
To fix this error
rotating pattern: /home/bloguser/.gocustomurls/logs/app.log forced from command line (no old logs will be kept)
empty log files are not rotated, old logs are removed
considering log /home/bloguser/.gocustomurls/logs/app.log
error: skipping "/home/bloguser/.gocustomurls/logs/app.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
do this instead
~/.gocustomurls/logs/app.log {
su bloguser bloguser
size 20M
copytruncate
compress
notifempty
delaycompress
}
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