cl-magic 1.2.9 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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