Compare commits
13 Commits
sneak-patc
...
9e36462a38
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e36462a38 | |||
| 587f9420ea | |||
| 17ad86642a | |||
| d3a92e398b | |||
| 6f74522513 | |||
| 86d724ee35 | |||
| b0c16462c4 | |||
| aa3c159521 | |||
| a2bf7ee607 | |||
| ec3e7c23eb | |||
| a9f23c79d2 | |||
| bd4b135e17 | |||
| bc5b2b039a |
@@ -1,3 +1,2 @@
|
|||||||
*.tmp
|
*.tmp
|
||||||
*.dockerimage
|
*.dockerimage
|
||||||
.git
|
|
||||||
|
|||||||
@@ -7,13 +7,11 @@ steps:
|
|||||||
network_mode: bridge
|
network_mode: bridge
|
||||||
settings:
|
settings:
|
||||||
repo: sneak/mfer
|
repo: sneak/mfer
|
||||||
build_args_from_env: [ DRONE_COMMIT_SHA ]
|
|
||||||
dry_run: true
|
dry_run: true
|
||||||
custom_dns: [ 116.202.204.30 ]
|
custom_dns: [ 116.202.204.30 ]
|
||||||
tags:
|
tags:
|
||||||
- ${DRONE_COMMIT_SHA:0:7}
|
- ${DRONE_COMMIT_SHA}
|
||||||
- ${DRONE_BRANCH}
|
- ${DRONE_BRANCH}
|
||||||
- latest
|
|
||||||
- name: notify
|
- name: notify
|
||||||
image: plugins/slack
|
image: plugins/slack
|
||||||
settings:
|
settings:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
FROM sneak/builder:2022-12-08 AS builder
|
FROM sneak/builder:2022-12-08 AS builder
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY ./Makefile ./.golangci.yml ./go.mod ./go.sum /build/
|
COPY ./Makefile ./.golangci.yml ./go.mod ./go.sum .
|
||||||
COPY ./vendor.tzst /build/vendor.tzst
|
COPY ./vendor.tzst /build/vendor.tzst
|
||||||
COPY ./modcache.tzst /build/modcache.tzst
|
COPY ./modcache.tzst /build/modcache.tzst
|
||||||
COPY ./internal ./internal
|
COPY ./internal ./internal
|
||||||
@@ -12,7 +12,6 @@ COPY ./bin/gitrev.sh ./bin/gitrev.sh
|
|||||||
COPY ./mfer ./mfer
|
COPY ./mfer ./mfer
|
||||||
COPY ./cmd ./cmd
|
COPY ./cmd ./cmd
|
||||||
ARG GITREV unknown
|
ARG GITREV unknown
|
||||||
ARG DRONE_COMMIT_SHA unknown
|
|
||||||
|
|
||||||
RUN mkdir -p "$(go env GOMODCACHE)" && cd "$(go env GOMODCACHE)" && \
|
RUN mkdir -p "$(go env GOMODCACHE)" && cd "$(go env GOMODCACHE)" && \
|
||||||
zstdmt -d --stdout /build/modcache.tzst | tar xf - && \
|
zstdmt -d --stdout /build/modcache.tzst | tar xf - && \
|
||||||
|
|||||||
4
Makefile
4
Makefile
@@ -44,9 +44,9 @@ mfer.cmd: $(SOURCEFILES) mfer/mf.pb.go
|
|||||||
cd cmd/mfer && go build -tags urfave_cli_no_docs -o ../../mfer.cmd $(GOFLAGS) .
|
cd cmd/mfer && go build -tags urfave_cli_no_docs -o ../../mfer.cmd $(GOFLAGS) .
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rfv mfer/*.pb.go mfer.cmd cmd/mfer/mfer *.dockerimage
|
rm -rfv mfer/*.pb.go mfer.cmd cmd/mfer/mfer
|
||||||
|
|
||||||
fmt: mfer/mf.pb.go
|
fmt:
|
||||||
gofumpt -l -w mfer internal cmd
|
gofumpt -l -w mfer internal cmd
|
||||||
golangci-lint run --fix
|
golangci-lint run --fix
|
||||||
-prettier -w *.json
|
-prettier -w *.json
|
||||||
|
|||||||
56
README.md
56
README.md
@@ -1,50 +1,11 @@
|
|||||||
# mfer
|
# mfer
|
||||||
|
|
||||||
[mfer](https://git.eeqj.de/sneak/mfer) is a reference implementation library
|
Manifest file generator and checker.
|
||||||
and thin wrapper command-line utility written in [Go](https://golang.org)
|
|
||||||
and first published in 2022 under the [WTFPL](https://wtfpl.net) (public
|
|
||||||
domain) license. It specifies and generates `.mf` manifest files over a
|
|
||||||
directory tree of files to encapsulate metadata about them (such as
|
|
||||||
cryptographic checksums or signatures over same) to aid in archiving,
|
|
||||||
downloading, and streaming, or mirroring. The manifest files' data is
|
|
||||||
serialized with Google's [protobuf serialization
|
|
||||||
format](https://developers.google.com/protocol-buffers). The structure of
|
|
||||||
these files can be found [in the format
|
|
||||||
specification](https://git.eeqj.de/sneak/mfer/src/branch/main/mfer/mf.proto)
|
|
||||||
which is included in the [project
|
|
||||||
repository](https://git.eeqj.de/sneak/mfer).
|
|
||||||
|
|
||||||
The current version is pre-1.0 and while the repo was published in 2022,
|
|
||||||
there has not yet been any versioned release. [SemVer](https://semver.org)
|
|
||||||
will be used for releases.
|
|
||||||
|
|
||||||
This project was started by [@sneak](https://sneak.berlin) to scratch an
|
|
||||||
itch in 2022 and is currently a one-person effort, though the goal is for
|
|
||||||
this to emerge as a de-facto standard and be incorporated into other
|
|
||||||
software. A compatible javascript library is planned.
|
|
||||||
|
|
||||||
# Build Status
|
# Build Status
|
||||||
|
|
||||||
[](https://drone.datavi.be/sneak/mfer)
|
[](https://drone.datavi.be/sneak/mfer)
|
||||||
|
|
||||||
# Participation
|
|
||||||
|
|
||||||
The community is as yet nonexistent so there are no defined policies or
|
|
||||||
norms yet. Primary development happens on a privately-run Gitea instance at
|
|
||||||
[https://git.eeqj.de/sneak/mfer](https://git.eeqj.de/sneak/mfer) and issues
|
|
||||||
are [tracked there](https://git.eeqj.de/sneak/mfer/issues).
|
|
||||||
|
|
||||||
Changes must always be formatted with a standard `go fmt`, syntactically
|
|
||||||
valid, and must pass the linting defined in the repository (presently only
|
|
||||||
the `golangci-lint` defaults), which can be run with a `make lint`. The
|
|
||||||
`main` branch is protected and all changes must be made via [pull
|
|
||||||
requests](https://git.eeqj.de/sneak/mfer/pulls) and pass CI to be merged.
|
|
||||||
Any changes submitted to this project must also be
|
|
||||||
[WTFPL-licensed](https://wtfpl.net) to be considered.
|
|
||||||
|
|
||||||
Ideally, contributions conform to @sneak's personal
|
|
||||||
[code styleguide](https://git.eeqj.de/sneak/styleguide).
|
|
||||||
|
|
||||||
# Problem Statement
|
# Problem Statement
|
||||||
|
|
||||||
Given a plain URL, there is no standard way to safely and programmatically
|
Given a plain URL, there is no standard way to safely and programmatically
|
||||||
@@ -209,15 +170,6 @@ regardless of filesystem format.
|
|||||||
Please email [`sneak@sneak.berlin`](mailto:sneak@sneak.berlin) with your
|
Please email [`sneak@sneak.berlin`](mailto:sneak@sneak.berlin) with your
|
||||||
desired username for an account on this Gitea instance.
|
desired username for an account on this Gitea instance.
|
||||||
|
|
||||||
## Links
|
I am currently interested in hiring a contractor skilled with the Go
|
||||||
|
standard library interfaces to specify this tool in full and develop a
|
||||||
* Repo: [https://git.eeqj.de/sneak/mfer](https://git.eeqj.de/sneak/mfer)
|
prototype implementation.
|
||||||
* Issues: [https://git.eeqj.de/sneak/mfer/issues](https://git.eeqj.de/sneak/mfer/issues)
|
|
||||||
|
|
||||||
# Authors
|
|
||||||
|
|
||||||
* [@sneak <sneak@sneak.berlin>](mailto:sneak@sneak.berlin)
|
|
||||||
|
|
||||||
# License
|
|
||||||
|
|
||||||
* [WTFPL](https://wtfpl.net)
|
|
||||||
|
|||||||
@@ -1,10 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
|
||||||
if [[ ! -z "$DRONE_COMMIT_SHA" ]]; then
|
|
||||||
echo "${DRONE_COMMIT_SHA:0:7}"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -z "$GITREV" ]]; then
|
if [[ ! -z "$GITREV" ]]; then
|
||||||
echo $GITREV
|
echo $GITREV
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user