cl-magic 1.2.9 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +17 -10
  3. data/README.md +10 -2
  4. data/bin/cl +2 -1
  5. data/bin/common/process_pids +19 -0
  6. data/bin/install_gem +4 -4
  7. data/bin/world-scripts/build +135 -0
  8. data/bin/world-scripts/down +78 -0
  9. data/bin/world-scripts/get +112 -0
  10. data/bin/world-scripts/rm +76 -0
  11. data/bin/world-scripts/up +83 -0
  12. data/cl-magic.gemspec +1 -1
  13. data/lib/cl/magic/cl +1 -1
  14. data/lib/cl/magic/cl-ai-chat +1 -2
  15. data/lib/cl/magic/cl-ai-query +1 -2
  16. data/lib/cl/magic/cl-ai-store-jira +1 -2
  17. data/lib/cl/magic/cl-auth +1 -2
  18. data/lib/cl/magic/cl-chrome +108 -0
  19. data/lib/cl/magic/cl-curl +130 -0
  20. data/lib/cl/magic/cl-dk +4 -0
  21. data/lib/cl/magic/cl-dk-make +5 -3
  22. data/lib/cl/magic/cl-dk-make-world +10 -19
  23. data/lib/cl/magic/cl-dk-parts +1 -2
  24. data/lib/cl/magic/cl-dk-world +33 -20
  25. data/lib/cl/magic/cl-envkey +1 -2
  26. data/lib/cl/magic/cl-gc-sql +1 -2
  27. data/lib/cl/magic/cl-gc-tags +1 -2
  28. data/lib/cl/magic/cl-glab-commit +1 -2
  29. data/lib/cl/magic/cl-history +1 -2
  30. data/lib/cl/magic/cl-jira-fetch +1 -2
  31. data/lib/cl/magic/cl-jira-fetch-by-epics +1 -2
  32. data/lib/cl/magic/cl-jira-to-elastic +1 -2
  33. data/lib/cl/magic/cl-jira-to-markdown +1 -2
  34. data/lib/cl/magic/cl-jira-to-stats +1 -2
  35. data/lib/cl/magic/cl-kube-cp +1 -2
  36. data/lib/cl/magic/cl-kube-deployment +1 -2
  37. data/lib/cl/magic/cl-kube-ktx +1 -2
  38. data/lib/cl/magic/cl-kube-logs +1 -2
  39. data/lib/cl/magic/cl-kube-restart +1 -2
  40. data/lib/cl/magic/cl-kube-search +1 -2
  41. data/lib/cl/magic/cl-kube-search-all +1 -2
  42. data/lib/cl/magic/cl-kube-ssh +1 -2
  43. data/lib/cl/magic/cl-poll +1 -2
  44. data/lib/cl/magic/cl-sandbox +1 -2
  45. data/lib/cl/magic/cl-vault +1 -2
  46. data/lib/cl/magic/common/load_runner.rb +127 -0
  47. data/lib/cl/magic/common/sub_command.rb +51 -0
  48. data/lib/cl/magic/dk/world_settings.rb +26 -0
  49. data/lib/cl/magic/dk/yaml_arg_munger.rb +87 -8
  50. data/lib/cl/magic/version.rb +1 -1
  51. metadata +26 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6967402db7c32f3077e4ae254f3ac3654375440e41a66f8225d66fb204e1f8f5
4
- data.tar.gz: 88c12801db8a8a1a02f767e42e7eb8dd846b0da697faa052c9222e4abeeff2fb
3
+ metadata.gz: bb8d14f6e383683f5e14fe5ada204b1f78c7024b22663ff05080fddfa7d23f40
4
+ data.tar.gz: 2ab5fb3e7faca8be5fae4d9e2c9ea503cab062d7fc496496574ba21e4dbfdd29
5
5
  SHA512:
6
- metadata.gz: bf66f0485b1e40ac998168f9ae7420f5d0cd2a14ecc83b6f3336b045349efb2c098ac0c0d9e26e5bf7bebeeedec98e30ecd4901268b47e75df5b8892113a18eb
7
- data.tar.gz: 476128662c389749a19e557fc0ec334f392b0333983bf823b8f91d7e1d06d0bf20e15ba7112a60acc261c4121cb8e393fd3a6887bc39b82cbdaea891329be77e
6
+ metadata.gz: 49d6817adf444b4c77bf546d5d4468cd0fed212e17e27703971a8172561deb58d501ad9f03b3a24d5f00621e009ecc94018ca31f091eb1260353524b8d4752c9
7
+ data.tar.gz: 874d23bca143e1fd4c34ffa77da6e969fa2e4ac3fe5789e9b026712ca6bc8dfb429e969da2025f937d19cc0dff10bf2cb2a4b6753d66783f231920d6e03df69c
data/Gemfile.lock CHANGED
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cl-magic (1.2.9)
4
+ cl-magic (1.3.1)
5
5
  activesupport
6
6
  baran
7
7
  concurrent-ruby
8
- optparse-subcommand
9
8
  pastel
9
+ selenium-webdriver
10
10
  tty-command
11
11
  tty-logger
12
12
  tty-progressbar
@@ -16,21 +16,26 @@ PATH
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- activesupport (7.0.7)
19
+ activesupport (7.0.8)
20
20
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
21
  i18n (>= 1.6, < 2)
22
22
  minitest (>= 5.1)
23
23
  tzinfo (~> 2.0)
24
- baran (0.1.7)
24
+ baran (0.1.9)
25
25
  byebug (11.1.3)
26
- concurrent-ruby (1.2.2)
26
+ concurrent-ruby (1.2.3)
27
27
  i18n (1.14.1)
28
28
  concurrent-ruby (~> 1.0)
29
- minitest (5.18.0)
30
- optparse-subcommand (1.0.0)
29
+ minitest (5.20.0)
31
30
  pastel (0.8.0)
32
31
  tty-color (~> 0.5)
33
32
  rake (13.0.6)
33
+ rexml (3.2.6)
34
+ rubyzip (2.3.2)
35
+ selenium-webdriver (4.14.0)
36
+ rexml (~> 3.2, >= 3.2.5)
37
+ rubyzip (>= 1.2.2, < 3.0)
38
+ websocket (~> 1.0)
34
39
  strings-ansi (0.2.0)
35
40
  tty-color (0.6.0)
36
41
  tty-command (0.10.1)
@@ -55,11 +60,13 @@ GEM
55
60
  tty-cursor (~> 0.7)
56
61
  tzinfo (2.0.6)
57
62
  concurrent-ruby (~> 1.0)
58
- unicode-display_width (2.4.2)
63
+ unicode-display_width (2.5.0)
64
+ websocket (1.2.10)
59
65
  wisper (2.0.1)
60
66
 
61
67
  PLATFORMS
62
- ruby
68
+ arm64-darwin-22
69
+ x86_64-linux
63
70
 
64
71
  DEPENDENCIES
65
72
  byebug
@@ -68,4 +75,4 @@ DEPENDENCIES
68
75
  rake (~> 13.0)
69
76
 
70
77
  BUNDLED WITH
71
- 2.1.4
78
+ 2.3.7
data/README.md CHANGED
@@ -24,14 +24,22 @@ ln -s $MAGIC_DIR/bin/cl /usr/local/bin
24
24
 
25
25
  ## Development
26
26
 
27
- If you installed the gem, you need to remove the simlink
27
+ For local development
28
+
29
+ Remove any previously installed simlink
28
30
 
29
31
  ```
30
32
  rm /usr/local/bin/cl
31
33
  ```
32
34
 
33
- Then sim-link to your cl-magic source code's bin script
35
+ Then sim-link the source code instead
34
36
 
35
37
  ```
36
38
  ln -s $(pwd)/bin/cl /usr/local/bin
37
39
  ```
40
+
41
+ NOTE: if using `dk make-world`, you'll need to reset your world path
42
+
43
+ ```
44
+ dk world set --path ./dk-world
45
+ ```
data/bin/cl CHANGED
@@ -11,7 +11,8 @@ while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symli
11
11
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
12
12
  done
13
13
  MAGIC_DIR="$( cd -P "$( dirname "$SOURCE" )/../lib/cl/magic" >/dev/null 2>&1 && pwd )"
14
+ MAGIC_BIN="$MAGIC_DIR/../../../bin"
14
15
 
15
16
  # make magic - with the correct version of ruby & the bundle
16
17
  cd $MAGIC_DIR
17
- RBENV_VERSION=2.7.5 CL_WORKING_DIR=$CL_WORKING_DIR bundle exec cl $@
18
+ RBENV_VERSION=3.1.2 MAGIC_BIN=$MAGIC_BIN CL_WORKING_DIR=$CL_WORKING_DIR bundle exec cl $@
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ LOG_FILEPATHS_ARRAY=()
5
+ PIDS_ARRAY=()
6
+
7
+ process_pids () {
8
+
9
+ for pid in "${PIDS_ARRAY[@]}"
10
+ do
11
+ werr=0
12
+ wait $pid || werr=$?
13
+ if [ "$werr" != 0 ] && [ "$werr" != 127 ] ; then
14
+ echo " ℹ failed - ${LOG_FILEPATHS_ARRAY[$pid]}"
15
+ else
16
+ echo " ✔ ${LOG_FILEPATHS_ARRAY[$pid]}"
17
+ fi
18
+ done
19
+ }
data/bin/install_gem CHANGED
@@ -6,14 +6,14 @@ set -euo pipefail
6
6
  #
7
7
 
8
8
  has_ruby=$(ruby -v)
9
- if [[ $has_ruby != *"2.7.5"* ]]; then
9
+ if [[ $has_ruby != *"3.1.2"* ]]; then
10
10
  echo ""
11
- echo "(missing) ruby 2.7.5"
12
- echo "Please install ruby 2.7.5"
11
+ echo "(missing) ruby 3.1.2"
12
+ echo "Please install ruby 3.1.2"
13
13
  exit 1
14
14
  else
15
15
  echo ""
16
- echo "✅ Ruby 2.7.5"
16
+ echo "✅ Ruby 3.1.2"
17
17
  fi
18
18
 
19
19
  #
@@ -0,0 +1,135 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # source world constants
5
+ source "$WORLD_DIR/_bin/common/repo_constants"
6
+
7
+ # script path
8
+ SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9
+ cd $SCRIPT_PATH
10
+
11
+ # source scripts
12
+ source ../common/process_pids
13
+
14
+ # code path
15
+ if [ -z "$CODE_DIR" ]; thenw
16
+ echo "missing CODE_DIR"
17
+ exit 1
18
+ fi
19
+ code_path=$CODE_DIR
20
+
21
+ # ensure shared net
22
+ docker network create shared > /dev/null 2>&1 || true
23
+
24
+ echo ""
25
+ echo "------------------------"
26
+ echo " make build"
27
+ echo "------------------------"
28
+ echo ""
29
+
30
+ REPO_ARRAY=$(get_repo_array "$1")
31
+ for repo in ${REPO_ARRAY[@]};
32
+ do
33
+ repo_base_name=$(basename "${repo##*/}" .git)
34
+ repo_path=$code_path/$repo_base_name
35
+
36
+ echo " $repo_base_name"
37
+
38
+ if [ ! -d $repo_path ]; then
39
+ echo " ℹ skip, project not cloned"
40
+ else
41
+ if [[ "$repo_base_name" =~ $(get_skip_build_regex) ]]; then
42
+ echo " ℹ skip; please build manually"
43
+ else
44
+
45
+ cd $repo_path
46
+
47
+ # compose settings?
48
+ if cl dk config &> /dev/null; then
49
+
50
+ # has make init?
51
+ if echo $(cl dk make) | grep -q init; then
52
+
53
+ # start: make init
54
+ log_filepath="/tmp/make.build.$repo_base_name.output"
55
+ echo " ⌛ start make init"
56
+
57
+ # set command
58
+ MAKE_INIT_CMD="cl dk make init"
59
+
60
+ # log header
61
+ echo "" >> $log_filepath
62
+ echo "start make init..." > $log_filepath
63
+ echo $MAKE_INIT_CMD >> $log_filepath
64
+ echo "" >> $log_filepath
65
+
66
+ # go!
67
+ $MAKE_INIT_CMD >> $log_filepath 2>&1 &
68
+
69
+ # save
70
+ pid=$!
71
+ PIDS_ARRAY+=($pid)
72
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
73
+ else
74
+ echo " ℹ skip, no 'dk make init'"
75
+ fi
76
+ else
77
+
78
+ # docker file?
79
+ dockerfile_filepath="$repo_path/Dockerfile"
80
+ if test -f "$dockerfile_filepath"; then
81
+ cd $repo_path
82
+
83
+ # arm version?
84
+ ARCH=$(uname -m)
85
+ if [[ ${ARCH} == 'arm64' ]]; then
86
+ if test -f "$dockerfile_filepath.arm"; then
87
+ echo " ℹ found Dockerfile.arm"
88
+ dockerfile_filepath="$repo_path/Dockerfile.arm"
89
+ fi
90
+ fi
91
+
92
+ # start: docker build
93
+ log_filepath="/tmp/make.build.$repo_base_name.output"
94
+ echo " ⌛ start docker build"
95
+
96
+ # command
97
+ DOCKER_BUILD_CMD="docker build -t dev-$repo_base_name -f $dockerfile_filepath ."
98
+
99
+ # log header
100
+ echo "" >> $log_filepath
101
+ echo "start docker build..." > $log_filepath
102
+ echo $DOCKER_BUILD_CMD >> $log_filepath
103
+ echo "" >> $log_filepath
104
+
105
+ # go!
106
+ $DOCKER_BUILD_CMD >> $log_filepath 2>&1 &
107
+
108
+ # save
109
+ pid=$!
110
+ PIDS_ARRAY+=($pid)
111
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
112
+ else
113
+ echo " ℹ skip, no docker"
114
+ fi
115
+ fi
116
+ fi
117
+ fi
118
+ echo ""
119
+ done
120
+
121
+ if [ ! -z "${PIDS_ARRAY:-}" ]; then
122
+ echo ""
123
+ echo " waiting"
124
+ echo " 👀 tail -f /tmp/make.build.*.output"
125
+ process_pids
126
+ else
127
+ echo " nothing to do.. did you 'make get' yet?"
128
+ fi
129
+
130
+ #
131
+ # DONE
132
+ #
133
+
134
+ printf " DONE"
135
+ echo ""
@@ -0,0 +1,78 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # source world constants
5
+ source "$WORLD_DIR/_bin/common/repo_constants"
6
+
7
+ # script path
8
+ SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9
+ cd $SCRIPT_PATH
10
+
11
+ # source scripts
12
+ source ../common/process_pids
13
+
14
+ # code path
15
+ if [ -z "$CODE_DIR" ]; then
16
+ echo "missing CODE_DIR"
17
+ exit 1
18
+ fi
19
+ code_path=$CODE_DIR
20
+
21
+
22
+ log_filepaths=()
23
+ pids=()
24
+
25
+ echo ""
26
+ echo "------------------------"
27
+ echo " bring down services"
28
+ echo "------------------------"
29
+ echo ""
30
+
31
+ REPO_ARRAY=$(get_repo_array "$1")
32
+ for repo in ${REPO_ARRAY[@]};
33
+ do
34
+ repo_base_name=$(basename "${repo##*/}" .git)
35
+ repo_path=$code_path/$repo_base_name
36
+
37
+ cd $repo_path
38
+
39
+ # compose settings?
40
+ if cl dk config &> /dev/null; then
41
+
42
+ # has make init?
43
+ if echo $(cl dk make) | grep -q down; then
44
+ echo " $repo_base_name"
45
+ dk_parts=$(get_repo_dk_parts $repo_base_name)
46
+
47
+ # run
48
+ log_filepath="/tmp/make.down.$repo_base_name.output"
49
+ echo " ⌛ running dk down"
50
+ echo ""
51
+
52
+ # clear parts
53
+ cl dk parts clear > /dev/null 2>&1 || true
54
+
55
+ # down stack
56
+ cl dk make $dk_parts down > $log_filepath 2>&1 &
57
+
58
+ # save
59
+ pid=$!
60
+ PIDS_ARRAY+=($pid)
61
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
62
+ fi
63
+ fi
64
+ done
65
+
66
+ if [ ! -z "${PIDS_ARRAY:-}" ]; then
67
+ echo ""
68
+ echo " waiting"
69
+ echo " 👀 tail -f /tmp/make.down.*.output"
70
+ process_pids
71
+ fi
72
+
73
+ #
74
+ # DONE
75
+ #
76
+
77
+ printf " DONE"
78
+ echo ""
@@ -0,0 +1,112 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # source world constants
5
+ source "$WORLD_DIR/_bin/common/repo_constants"
6
+
7
+ # script path
8
+ SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9
+ cd $SCRIPT_PATH
10
+
11
+ # source scripts
12
+ source ../common/process_pids
13
+
14
+ # code path
15
+ if [ -z "$CODE_DIR" ]; then
16
+ echo "missing CODE_DIR"
17
+ exit 1
18
+ fi
19
+ code_path=$CODE_DIR
20
+
21
+ # Check if the SSH agent is running
22
+ if [ -z "$SSH_AUTH_SOCK" ]; then
23
+ SSH_VALID=false
24
+ else
25
+ # Check if the SSH key is added to the agent
26
+ if ssh-add -l > /dev/null 2>&1; then
27
+ SSH_VALID=true
28
+ else
29
+ SSH_VALID=false
30
+ fi
31
+ fi
32
+
33
+ # Check if SSH_VALID is false and display an error message
34
+ if [ "$SSH_VALID" = false ]; then
35
+ echo ""
36
+ echo "ERROR - SSH agent is not running"
37
+ echo ""
38
+ echo "This script clones multiple repositories asyncronously"
39
+ echo "You must have an SSH agent running with a valid key"
40
+ echo ""
41
+ echo "learn more: "
42
+ echo "https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"
43
+ echo ""
44
+ exit 1
45
+ fi
46
+
47
+ echo ""
48
+ echo "------------------------"
49
+ echo " make get"
50
+ echo "------------------------"
51
+ echo ""
52
+
53
+ REPO_ARRAY=$(get_repo_array "$1")
54
+ for repo in ${REPO_ARRAY[@]};
55
+ do
56
+ cd $code_path
57
+ repo_base_name=$(basename "${repo##*/}" .git)
58
+ repo_path=$code_path/$repo_base_name
59
+
60
+ echo " $repo_base_name"
61
+
62
+ log_filepath="/tmp/make.get.$repo_base_name.output"
63
+
64
+ if [ ! -d $repo_path ]; then
65
+ echo " ⌛ clone repo"
66
+ git clone $repo >> $log_filepath 2>&1 &
67
+
68
+ # save
69
+ pid=$!
70
+ PIDS_ARRAY+=($pid)
71
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
72
+ else
73
+ # main branch?
74
+ cd $repo_path
75
+ co_branch_name=$(git rev-parse --abbrev-ref HEAD)
76
+ if echo $co_branch_name | grep -qE 'main|master'; then
77
+
78
+ # no local changes
79
+ if [[ ! `git status --porcelain` ]]; then
80
+
81
+ # then pull latest
82
+ echo " ⌛ pull latest (main)"
83
+ git pull --rebase >> $log_filepath 2>&1 &
84
+
85
+ # save
86
+ pid=$!
87
+ PIDS_ARRAY+=($pid)
88
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
89
+ else
90
+ echo " ℹ skip pull (repo has local changes)"
91
+ fi
92
+ else
93
+ echo " ℹ skip pull ($co_branch_name)"
94
+ fi
95
+ fi
96
+ echo ""
97
+
98
+ done
99
+
100
+ if [ ! -z "${PIDS_ARRAY:-}" ]; then
101
+ echo ""
102
+ echo " waiting"
103
+ echo " 👀 tail -f /tmp/make.get.*.output"
104
+ process_pids
105
+ fi
106
+
107
+ #
108
+ # DONE
109
+ #
110
+
111
+ printf " DONE"
112
+ echo ""
@@ -0,0 +1,76 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # source world constants
5
+ source "$WORLD_DIR/_bin/common/repo_constants"
6
+
7
+ # script path
8
+ SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9
+ cd $SCRIPT_PATH
10
+
11
+ # source scripts
12
+ source ../common/process_pids
13
+
14
+ # code path
15
+ if [ -z "$CODE_DIR" ]; then
16
+ echo "missing CODE_DIR"
17
+ exit 1
18
+ fi
19
+ code_path=$CODE_DIR
20
+
21
+
22
+ echo ""
23
+ echo "🔥 WARNING: This script will delete all the $1."
24
+ echo ""
25
+ read -p "Type \"DELETE EVERYTHING\" to proceed: " confirmation
26
+ echo ""
27
+ if [ "$confirmation" != "DELETE EVERYTHING" ]; then
28
+ echo "Aborting!"
29
+ exit 1
30
+ fi
31
+
32
+ echo ""
33
+ echo "------------------------"
34
+ echo " make rm"
35
+ echo "------------------------"
36
+ echo ""
37
+
38
+ REPO_ARRAY=$(get_repo_array "$1")
39
+ for repo in ${REPO_ARRAY[@]};
40
+ do
41
+ cd $code_path
42
+ repo_base_name=$(basename "${repo##*/}" .git)
43
+ repo_path=$code_path/$repo_base_name
44
+
45
+ echo " $repo_base_name"
46
+
47
+ log_filepath="/tmp/make.rm.$repo_base_name.output"
48
+
49
+ if [ -d $repo_path ]; then
50
+ echo " ⌛ removing project"
51
+ rm -rf $repo_path >> $log_filepath 2>&1 &
52
+
53
+ # save
54
+ pid=$!
55
+ PIDS_ARRAY+=($pid)
56
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
57
+ else
58
+ echo " ℹ skip, no local copy"
59
+ fi
60
+ echo ""
61
+
62
+ done
63
+
64
+ if [ ! -z "${PIDS_ARRAY:-}" ]; then
65
+ echo ""
66
+ echo " waiting"
67
+ echo " 👀 tail -f /tmp/make.rm.*.output"
68
+ process_pids
69
+ fi
70
+
71
+ #
72
+ # DONE
73
+ #
74
+
75
+ printf " DONE"
76
+ echo ""
@@ -0,0 +1,83 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # source world constants
5
+ source "$WORLD_DIR/_bin/common/repo_constants"
6
+
7
+ # script path
8
+ SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9
+ cd $SCRIPT_PATH
10
+
11
+ # source scripts
12
+ source ../common/process_pids
13
+
14
+ # code path
15
+ if [ -z "$CODE_DIR" ]; then
16
+ echo "missing CODE_DIR"
17
+ exit 1
18
+ fi
19
+ code_path=$CODE_DIR
20
+
21
+ # ensure shared net
22
+ docker network create shared > /dev/null 2>&1 || true
23
+
24
+ echo ""
25
+ echo "------------------------"
26
+ echo " bring up compose stacks"
27
+ echo "------------------------"
28
+ echo ""
29
+
30
+ REPO_ARRAY=$(get_repo_array "$1")
31
+ for repo in ${REPO_ARRAY[@]};
32
+ do
33
+ repo_base_name=$(basename "${repo##*/}" .git)
34
+ repo_path=$code_path/$repo_base_name
35
+
36
+ cd $repo_path
37
+
38
+ # compose settings?
39
+ if cl dk config &> /dev/null; then
40
+
41
+ # has make init?
42
+ if echo $(cl dk make) | grep -q up; then
43
+ echo " $repo_base_name"
44
+ dk_parts=$(get_repo_dk_parts $repo_base_name)
45
+
46
+ # run
47
+ log_filepath="/tmp/make.up.$repo_base_name.output"
48
+ echo " ⌛ up compose stack"
49
+
50
+ # set parts
51
+ cl dk parts set $dk_parts > /dev/null 2>&1 || true
52
+
53
+ # up stack
54
+ if [[ "$repo_base_name" =~ $(get_non_async_repo_regex) ]]; then
55
+ echo " 👀 tail -f $log_filepath"
56
+ cl dk make down up > $log_filepath 2>&1
57
+ echo " ✔ complete"
58
+ echo ""
59
+ else
60
+ echo ""
61
+ cl dk make down up > $log_filepath 2>&1 &
62
+
63
+ # save
64
+ pid=$!
65
+ PIDS_ARRAY+=($pid)
66
+ LOG_FILEPATHS_ARRAY[$pid]=$log_filepath
67
+ fi
68
+ fi
69
+ fi
70
+ done
71
+
72
+ if [ ! -z "${PIDS_ARRAY:-}" ]; then
73
+ echo ""
74
+ echo " waiting"
75
+ echo " 👀 tail -f /tmp/make.up.*.output"
76
+ process_pids
77
+ fi
78
+
79
+ #
80
+ # DONE
81
+ #
82
+
83
+ echo ""
data/cl-magic.gemspec CHANGED
@@ -29,7 +29,6 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  # dependencies
31
31
  spec.add_development_dependency "rake"
32
- spec.add_dependency "optparse-subcommand"
33
32
  spec.add_dependency "tty-logger"
34
33
  spec.add_dependency "tty-command"
35
34
  spec.add_dependency "tty-prompt"
@@ -39,6 +38,7 @@ Gem::Specification.new do |spec|
39
38
  spec.add_dependency "pastel"
40
39
  spec.add_dependency "activesupport"
41
40
  spec.add_dependency "baran"
41
+ spec.add_dependency "selenium-webdriver"
42
42
 
43
43
  spec.add_development_dependency "byebug"
44
44
 
data/lib/cl/magic/cl CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- require 'optparse'
3
2
  require 'tty-command'
4
3
  require 'cl/magic/common/logging.rb'
4
+ require 'cl/magic/common/sub_command.rb'
5
5
 
6
6
  @logger = get_logger()
7
7
 
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  # Call open ai chat api
3
- require 'optparse'
4
- require 'optparse/subcommand'
5
3
  require 'tty-command'
6
4
  require 'tty-prompt'
7
5
 
6
+ require 'cl/magic/common/sub_command.rb'
8
7
  require 'cl/magic/common/common_options.rb'
9
8
  require 'cl/magic/common/logging.rb'
10
9
  require 'cl/magic/common/ai_prompt.rb'
@@ -1,7 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  # Prompt for similar content
3
- require 'optparse'
4
- require 'optparse/subcommand'
5
3
  require 'tty-command'
6
4
  require 'tty-prompt'
7
5
 
@@ -11,6 +9,7 @@ require 'cl/magic/common/jira.rb'
11
9
  require 'cl/magic/common/ai_prompt.rb'
12
10
  require 'cl/magic/common/milvus.rb'
13
11
  require 'cl/magic/common/elastic.rb'
12
+ require 'cl/magic/common/sub_command.rb'
14
13
 
15
14
  @logger = get_logger()
16
15