about summary refs log tree commit diff
path: root/tools/tvlc/common.sh
diff options
context:
space:
mode:
authorKane York <kanepyork@gmail.com>2020-08-17T01·03-0700
committerkanepyork <rikingcoding@gmail.com>2020-08-19T01·23+0000
commit92d4554b622ea85ca08d351f696f48a37c67e8b0 (patch)
treed7f5d041acef637f6e805daaac2550b7719c9f44 /tools/tvlc/common.sh
parentd6f17f48de91538c5b3623484672c1a81d207cba (diff)
feat(tools/tvlc): init project r/1681
tvlc is a tool for managing sparse git worktrees of the TVL depot.
It is still in development; near-term tasks include a setup script,
Nix dependency resolution, worktree removal, and the dispatch
script.

See cs.tvl.fyi/depot/docs/designs/SPARSE_CHECKOUTS.md for more info.

Change-Id: Iad96656f0206178980fe7dcadd3dffe70d690f8f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1760
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'tools/tvlc/common.sh')
-rw-r--r--tools/tvlc/common.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/tvlc/common.sh b/tools/tvlc/common.sh
new file mode 100644
index 000000000000..2c8cc603cb97
--- /dev/null
+++ b/tools/tvlc/common.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -eu
+set -o pipefail
+
+XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
+tvlc_root="$XDG_DATA_HOME/tvlc"
+
+if [ -f "$tvlc_root"/nice_checkout_root ]; then
+  nice_checkout_root="$(cat "$tvlc_root"/nice_checkout_root)"
+fi
+nice_checkout_root="${nice_checkout_root:-$HOME/tvlc}"
+
+depot_root=
+if [ -f "$tvlc_root/depot_root" ]; then
+  depot_root="$(cat "$tvlc_root/depot_root")"
+fi
+if [ -d /depot ]; then
+  # don't require config on tvl nixos servers
+  depot_root="${depot_root:-/depot}"
+fi
+if [ -n "$depot_root" ]; then
+  export DEPOT_ROOT="$depot_root"
+fi
+
+if [ ! -d "$tvlc_root" ]; then
+  echo "tvlc: setup required"
+  echo "please run 'tvlc setup' from the depot root"
+  exit 1
+fi