No description
  • Go 98.4%
  • Makefile 0.9%
  • Shell 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jacob Blain Christen f93269e0d5
Merge pull request #1 from dweomer/copy-with-xattr-excludes
fs: ability to filter xattr when copying directory
2021-03-09 10:07:10 -07:00
.github/workflows ci: add cross-compile for FreeBSD 2020-12-07 23:11:58 -08:00
cmd/continuity Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
commands Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
continuityfs Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
devices freebsd: fix compilation error 2020-12-07 23:11:51 -08:00
driver Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
fs fs: ability to filter xattr when copying directory 2021-03-02 13:23:10 -07:00
pathdriver Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
proto Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
sysx Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
testutil fix gofmt issues 2020-07-04 02:29:23 -05:00
vendor go.mod: sirupsen/logrus v1.7.0 2021-02-08 11:07:04 +01:00
version Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
.gitignore build: add makefile and version file 2016-02-03 19:37:06 -08:00
.golangci.yml Update linting to use golangci-lint 2020-07-08 10:16:44 -04:00
.mailmap Update mailmap and travil config 2017-03-21 12:56:37 -07:00
AUTHORS update AUTHORS 2020-12-07 23:12:04 -08:00
context.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
digests.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
digests_test.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
go.mod go.mod: sirupsen/logrus v1.7.0 2021-02-08 11:07:04 +01:00
go.sum go.mod: sirupsen/logrus v1.7.0 2021-02-08 11:07:04 +01:00
groups_unix.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
hardlinks.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
hardlinks_unix.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
hardlinks_windows.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
ioutils.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
ioutils_test.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
LICENSE Add references to common project docs 2018-10-19 12:36:25 -04:00
Makefile Update CI to use GitHub Actions 2020-07-08 10:16:44 -04:00
manifest.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
manifest_test.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
manifest_test_darwin.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
README.md readme: add note about support on other platforms 2020-12-07 23:12:02 -08:00
resource.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
resource_test.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00
resource_unix.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
resource_windows.go Add fileheaders with ltag tool 2018-09-11 10:45:52 -04:00
testutil_test.go Fix golangci-lint errors 2020-07-08 10:16:38 -04:00

continuity

GoDoc Build Status

A transport-agnostic, filesystem metadata manifest system

This project is a staging area for experiments in providing transport agnostic metadata storage.

Please see https://github.com/opencontainers/specs/issues/11 for more details.

Manifest Format

A continuity manifest encodes filesystem metadata in Protocol Buffers. Please refer to proto/manifest.proto.

Usage

Build:

$ make

Create a manifest (of this repo itself):

$ ./bin/continuity build . > /tmp/a.pb

Dump a manifest:

$ ./bin/continuity ls /tmp/a.pb
...
-rw-rw-r--      270 B   /.gitignore
-rw-rw-r--      88 B    /.mailmap
-rw-rw-r--      187 B   /.travis.yml
-rw-rw-r--      359 B   /AUTHORS
-rw-rw-r--      11 kB   /LICENSE
-rw-rw-r--      1.5 kB  /Makefile
...
-rw-rw-r--      986 B   /testutil_test.go
drwxrwxr-x      0 B     /version
-rw-rw-r--      478 B   /version/version.go

Verify a manifest:

$ ./bin/continuity verify . /tmp/a.pb

Break the directory and restore using the manifest:

$ chmod 777 Makefile
$ ./bin/continuity verify . /tmp/a.pb
2017/06/23 08:00:34 error verifying manifest: resource "/Makefile" has incorrect mode: -rwxrwxrwx != -rw-rw-r--
$ ./bin/continuity apply . /tmp/a.pb
$ stat -c %a Makefile
664
$ ./bin/continuity verify . /tmp/a.pb

Platforms

continuity primarily targets Linux. continuity may compile for and work on other operating systems, but those platforms are not tested.

Contribution Guide

Building Proto Package

If you change the proto file you will need to rebuild the generated Go with go generate.

$ go generate ./proto

Project details

continuity is a containerd sub-project, licensed under the Apache 2.0 license. As a containerd sub-project, you will find the:

information in our containerd/project repository.