A low-tech content management system for the web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
decentral1se c18c085d28
feat: x-platform publishing
3 years ago
.gitea/issue_template refactor: less bureaucracy, just use labels 3 years ago
.gitignore feat: x-platform publishing 3 years ago
.goreleaser.yaml feat: x-platform publishing 3 years ago
AUTHORS.md docs: quote & sort 3 years ago
LICENSE docs: add new authors to license 3 years ago
Makefile feat: x-platform publishing 3 years ago
README.md feat: x-platform publishing 3 years ago
distribusi.go feat: x-platform publishing 3 years ago
go.mod init 3 years ago
go.sum init 3 years ago

README.md

distribusi-go

This is still very experimental, please take a backup of your archives if you are running it on files you care about. It hasn't been tested on large archives. There are probably some pretty bad bugs lurking in there. It may still thrash files. Please report issues as you find them 💯 Thanks for testing!

A Go implementation of distribusi.

If you're migrating from the Python version or have experience using it, here are the differences in distribusi-go:

  • It's simpler to install on your computer, just download the binary, chmod +x and run it 💯

  • There is no need to install Pillow for handling images, that is now built-in. The only external dependency is exiftool for image captions from embedded metadata. If you don't have exiftool installed, then it gracefully skips that feature. So, you don't need to install anything else to run distribusi now 🙏

  • The command-line interface is quite different. There are less optional flags and more defaults. I shuffled a number of things around according to my preferences (open to changes, please open a ticket). For example, I always like my images to be thumbnail'd. There's a handy web server built-in now, just run with -s 🤘

Install

🍾 distribusi-go has enterprise cross-platform support! 🍾

If your platform isn't supported, please see the entire listing. If you can't find it, we can probably support it (see $GOOS/$GOARCH on go.dev), please open a ticket.

GNU/Linux

GNU/Linux (amd64)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_linux_amd64/distribusi -o distribusi
chmod +x distribusi
./distribusi -h # check things work
GNU/Linux (386)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_linux_386/distribusi -o distribusi
chmod +x distribusi
./distribusi -h # check things work
GNU/Linux (arm64)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_linux_arm64/distribusi -o distribusi
chmod +x distribusi
./distribusi -h # check things work

Mac OS X

Mac OS X (amd64)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_darwin_amd64/distribusi -o distribusi
chmod +x distribusi
./distribusi -h # check things work
Mac OS X (arm64)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_darwin_arm64/distribusi -o distribusi
chmod +x distribusi
./distribusi -h # check things work

Windows

Windows (386)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_windows_386/distribusi.exe -o distribusi
chmod +x distribusi
./distribusi -h # check things work
Windows (amd64)
curl https://vvvvvvaria.org/~decentral1se/distribusi-go/0.1.0-alpha/distribusi_windows_amd64/ -o distribusi
chmod +x distribusi
./distribusi -h # check things work

Quick start

Run distribusi-go on <path> and serve it locally for viewing:

./distribusi -p <path> -s

If you want to ignore certain paths, you can use -i/--ignore:

./distribusi -p <path> -s -i '*.gif, *.md, mydir'

It supports a list of patterns in a comma separated list, wildcards work, more on pkg.go.dev.

If you run into issues, run with -d/--debug to see what is happening under the hood.

✌️

Hacking

You'll need Go >= 1.11 installed. Run make to build a new ./distribusi executable.

If you wanna learn Go, I've got this book, feel free to take a loan of it 😀

Release

Currently, you have to be @decentral1se to do this:

VERSION=<version> make release

You can build a local-only release by running this:

goreleaser release --snapshot --rm-dist

Binaries are in dist/.

Acknowledgements

AUTHORS.md

License

LICENSE