Last active 1 month ago

Revision c2582841b2d14fde5fc6801232f2b2be5b0e4c77

cue-mod-switch.sh Raw
1#!/bin/bash
2
3set -euo pipefail
4
5switch_to_pkg() {
6 for dep in $(cue export -e deps cue.mod/module.cue | yq -o tsv '. | keys'); do
7 name=$(echo "$dep" | cut -d@ -f1)
8 dir=$(dirname "$name")
9 mod=$(basename "$name")
10 mkdir -vp "cue.mod/pkg/$dir"
11 cd "cue.mod/pkg/$dir"
12 ln -vs "$moduledir/$mod" .
13 cd "$startdir"
14 cue mod edit --drop-require "$dep"
15 done
16 echo "done"
17}
18
19switch_to_registry() {
20 rm -rfv cue.mod/pkg
21 echo "cue mod tidy"
22 cue mod tidy
23 echo "done"
24}
25
26main() {
27 moduledir=/home/mlangner/workspace/cue-workspace/publish
28 startdir=$PWD
29
30 if [[ ! -d cue.mod ]]; then
31 echo "cue.mod not found"
32 exit
33 fi
34
35 if [[ ! -d "$moduledir/libmcs" ]]; then
36 echo "moduledir/libmcs not found"
37 exit
38 fi
39
40 if [[ -d cue.mod/pkg ]]; then
41 echo "switch to registry"
42 switch_to_registry
43 exit
44 else
45 echo "switch to pkg"
46 switch_to_pkg
47 exit
48 fi
49}
50
51main
52