1 | #!/usr/bin/env bash
|
2 | #
|
3 | # Usage:
|
4 | # trees/silo.sh <function name>
|
5 |
|
6 | set -o nounset
|
7 | set -o pipefail
|
8 | set -o errexit
|
9 |
|
10 | die() {
|
11 | echo "$@" >&2
|
12 | exit 1
|
13 | }
|
14 |
|
15 | main() {
|
16 | local action=${1:-}
|
17 |
|
18 | case $action in
|
19 |
|
20 | init)
|
21 | local dir=${2:-'.'}
|
22 |
|
23 | # Set up repo structure
|
24 | mkdir -v -p $dir/{objects,pack,derived}
|
25 |
|
26 | # Make the 00 objects on demand
|
27 | ;;
|
28 |
|
29 | verify)
|
30 | local dir=${2:-'.'}
|
31 |
|
32 | # TODO: decompress and checksum file?
|
33 | #
|
34 | # Note that git-hash-object takes -t blob, and that --literally bypasses
|
35 | # the check
|
36 | find primary -name '*.blob.gz' | xargs echo TODO
|
37 | ;;
|
38 |
|
39 | *)
|
40 | die "Invalid action '$action'"
|
41 | ;;
|
42 |
|
43 | esac
|
44 | }
|
45 |
|
46 | main "$@"
|