|
4 | 4 | }: let |
5 | 5 | inherit (inputs) nixpkgs std; |
6 | 6 | inherit (inputs.cells.artifacts) artifacts; |
7 | | - inherit (inputs.cells.lib) constants; |
| 7 | + inherit (inputs.cells.lib) lib; |
8 | 8 | l = nixpkgs.lib // builtins; |
9 | 9 |
|
10 | 10 | package = cell.packages.jormungandr; |
11 | | -in { |
12 | | - jormungandr = std.lib.ops.mkOperable { |
13 | | - inherit package; |
14 | | - # TODO: Remove all the bitte stuff |
15 | | - # TODO: update artifact path to correct mount path |
16 | | - runtimeScript = '' |
17 | | - ulimit -n 1024 |
18 | 11 |
|
19 | | - nodeConfig="$NOMAD_TASK_DIR/node-config.json" |
20 | | - runConfig="$NOMAD_TASK_DIR/running.json" |
21 | | - runYaml="$NOMAD_TASK_DIR/running.yaml" |
22 | | -
|
23 | | - chmod u+rwx -R "$NOMAD_TASK_DIR" || true |
24 | | -
|
25 | | - function convert () { |
| 12 | + mkOperable = namespace: let |
| 13 | + artifacts' = artifacts."artifacts-${namespace}"; |
| 14 | + in |
| 15 | + std.lib.ops.mkOperable { |
| 16 | + inherit package; |
| 17 | + # TODO: Remove all the bitte stuff |
| 18 | + runtimeScript = '' |
| 19 | + ulimit -n 1024 |
| 20 | + nodeConfig="$NOMAD_TASK_DIR/node-config.json" |
| 21 | + runConfig="$NOMAD_TASK_DIR/running.json" |
| 22 | + runYaml="$NOMAD_TASK_DIR/running.yaml" |
26 | 23 | chmod u+rwx -R "$NOMAD_TASK_DIR" || true |
27 | | - cp "$nodeConfig" "$runConfig" |
28 | | - remarshal --if json --of yaml "$runConfig" > "$runYaml" |
29 | | - } |
30 | | -
|
31 | | - if [ "$RESET" = "true" ]; then |
32 | | - echo "RESET is given, will start from scratch..." |
33 | | - rm -rf "$STORAGE_DIR" |
34 | | - elif [ -d "$STORAGE_DIR" ]; then |
35 | | - echo "$STORAGE_DIR found, not restoring from backup..." |
36 | | - else |
37 | | - echo "$STORAGE_DIR not found, restoring backup..." |
38 | | -
|
39 | | - restic restore latest \ |
40 | | - --verbose=5 \ |
41 | | - --no-lock \ |
42 | | - --tag "$NAMESPACE" \ |
43 | | - --target / \ |
44 | | - || echo "couldn't restore backup, continue startup procedure..." |
45 | | - fi |
46 | | -
|
47 | | - set +x |
48 | | - echo "waiting for $REQUIRED_PEER_COUNT peers" |
49 | | - until [ "$(jq -e -r '.p2p.trusted_peers | length' < "$nodeConfig" || echo 0)" -ge "$REQUIRED_PEER_COUNT" ]; do |
50 | | - sleep 1 |
51 | | - done |
52 | | - set -x |
53 | | -
|
54 | | - convert |
55 | | -
|
56 | | - if [ -n "$PRIVATE" ]; then |
57 | | - echo "Running with node with secrets..." |
58 | | - exec ${l.getExe package} \ |
59 | | - --storage "$STORAGE_DIR" \ |
60 | | - --config "$NOMAD_TASK_DIR/running.yaml" \ |
61 | | - --genesis-block "artifacts/block0.bin" \ |
62 | | - --secret "$NOMAD_SECRETS_DIR/bft-secret.yaml" \ |
63 | | - "$@" || true |
64 | | - else |
65 | | - echo "Running with follower node..." |
66 | | - exec ${l.getExe package} \ |
67 | | - --storage "$STORAGE_DIR" \ |
68 | | - --config "$NOMAD_TASK_DIR/running.yaml" \ |
69 | | - --genesis-block "artifacts/block0.bin" \ |
70 | | - "$@" || true |
71 | | - fi |
72 | | - ''; |
73 | | - }; |
74 | | -} |
| 24 | + function convert () { |
| 25 | + chmod u+rwx -R "$NOMAD_TASK_DIR" || true |
| 26 | + cp "$nodeConfig" "$runConfig" |
| 27 | + remarshal --if json --of yaml "$runConfig" > "$runYaml" |
| 28 | + } |
| 29 | + if [ "$RESET" = "true" ]; then |
| 30 | + echo "RESET is given, will start from scratch..." |
| 31 | + rm -rf "$STORAGE_DIR" |
| 32 | + elif [ -d "$STORAGE_DIR" ]; then |
| 33 | + echo "$STORAGE_DIR found, not restoring from backup..." |
| 34 | + else |
| 35 | + echo "$STORAGE_DIR not found, restoring backup..." |
| 36 | + restic restore latest \ |
| 37 | + --verbose=5 \ |
| 38 | + --no-lock \ |
| 39 | + --tag "$NAMESPACE" \ |
| 40 | + --target / \ |
| 41 | + || echo "couldn't restore backup, continue startup procedure..." |
| 42 | + fi |
| 43 | + set +x |
| 44 | + echo "waiting for $REQUIRED_PEER_COUNT peers" |
| 45 | + until [ "$(jq -e -r '.p2p.trusted_peers | length' < "$nodeConfig" || echo 0)" -ge "$REQUIRED_PEER_COUNT" ]; do |
| 46 | + sleep 1 |
| 47 | + done |
| 48 | + set -x |
| 49 | + convert |
| 50 | + if [ -n "$PRIVATE" ]; then |
| 51 | + echo "Running with node with secrets..." |
| 52 | + exec ${l.getExe package} \ |
| 53 | + --storage "$STORAGE_DIR" \ |
| 54 | + --config "$NOMAD_TASK_DIR/running.yaml" \ |
| 55 | + --genesis-block "${artifacts'}/block0.bin" \ |
| 56 | + --secret "$NOMAD_SECRETS_DIR/bft-secret.yaml" \ |
| 57 | + "$@" || true |
| 58 | + else |
| 59 | + echo "Running with follower node..." |
| 60 | + exec ${l.getExe package} \ |
| 61 | + --storage "$STORAGE_DIR" \ |
| 62 | + --config "$NOMAD_TASK_DIR/running.yaml" \ |
| 63 | + --genesis-block "${artifacts'}/block0.bin" \ |
| 64 | + "$@" || true |
| 65 | + fi |
| 66 | + ''; |
| 67 | + }; |
| 68 | +in |
| 69 | + {} |
| 70 | + // lib.mapToNamespaces "jormungandr" mkOperable |
0 commit comments