is_this_used 0.1.5 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/wait-for-it.sh ADDED
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env bash
2
+ # Use this script to test if a given TCP host/port are available
3
+
4
+ WAITFORIT_cmdname=${0##*/}
5
+
6
+ echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }
7
+
8
+ usage()
9
+ {
10
+ cat << USAGE >&2
11
+ Usage:
12
+ $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args]
13
+ -h HOST | --host=HOST Host or IP under test
14
+ -p PORT | --port=PORT TCP port under test
15
+ Alternatively, you specify the host and port as host:port
16
+ -s | --strict Only execute subcommand if the test succeeds
17
+ -q | --quiet Don't output any status messages
18
+ -t TIMEOUT | --timeout=TIMEOUT
19
+ Timeout in seconds, zero for no timeout
20
+ -- COMMAND ARGS Execute command with args after the test finishes
21
+ USAGE
22
+ exit 1
23
+ }
24
+
25
+ wait_for()
26
+ {
27
+ if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
28
+ echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
29
+ else
30
+ echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout"
31
+ fi
32
+ WAITFORIT_start_ts=$(date +%s)
33
+ while :
34
+ do
35
+ if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then
36
+ nc -z $WAITFORIT_HOST $WAITFORIT_PORT
37
+ WAITFORIT_result=$?
38
+ else
39
+ (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1
40
+ WAITFORIT_result=$?
41
+ fi
42
+ if [[ $WAITFORIT_result -eq 0 ]]; then
43
+ WAITFORIT_end_ts=$(date +%s)
44
+ echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds"
45
+ break
46
+ fi
47
+ sleep 1
48
+ done
49
+ return $WAITFORIT_result
50
+ }
51
+
52
+ wait_for_wrapper()
53
+ {
54
+ # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
55
+ if [[ $WAITFORIT_QUIET -eq 1 ]]; then
56
+ timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
57
+ else
58
+ timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
59
+ fi
60
+ WAITFORIT_PID=$!
61
+ trap "kill -INT -$WAITFORIT_PID" INT
62
+ wait $WAITFORIT_PID
63
+ WAITFORIT_RESULT=$?
64
+ if [[ $WAITFORIT_RESULT -ne 0 ]]; then
65
+ echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
66
+ fi
67
+ return $WAITFORIT_RESULT
68
+ }
69
+
70
+ # process arguments
71
+ while [[ $# -gt 0 ]]
72
+ do
73
+ case "$1" in
74
+ *:* )
75
+ WAITFORIT_hostport=(${1//:/ })
76
+ WAITFORIT_HOST=${WAITFORIT_hostport[0]}
77
+ WAITFORIT_PORT=${WAITFORIT_hostport[1]}
78
+ shift 1
79
+ ;;
80
+ --child)
81
+ WAITFORIT_CHILD=1
82
+ shift 1
83
+ ;;
84
+ -q | --quiet)
85
+ WAITFORIT_QUIET=1
86
+ shift 1
87
+ ;;
88
+ -s | --strict)
89
+ WAITFORIT_STRICT=1
90
+ shift 1
91
+ ;;
92
+ -h)
93
+ WAITFORIT_HOST="$2"
94
+ if [[ $WAITFORIT_HOST == "" ]]; then break; fi
95
+ shift 2
96
+ ;;
97
+ --host=*)
98
+ WAITFORIT_HOST="${1#*=}"
99
+ shift 1
100
+ ;;
101
+ -p)
102
+ WAITFORIT_PORT="$2"
103
+ if [[ $WAITFORIT_PORT == "" ]]; then break; fi
104
+ shift 2
105
+ ;;
106
+ --port=*)
107
+ WAITFORIT_PORT="${1#*=}"
108
+ shift 1
109
+ ;;
110
+ -t)
111
+ WAITFORIT_TIMEOUT="$2"
112
+ if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi
113
+ shift 2
114
+ ;;
115
+ --timeout=*)
116
+ WAITFORIT_TIMEOUT="${1#*=}"
117
+ shift 1
118
+ ;;
119
+ --)
120
+ shift
121
+ WAITFORIT_CLI=("$@")
122
+ break
123
+ ;;
124
+ --help)
125
+ usage
126
+ ;;
127
+ *)
128
+ echoerr "Unknown argument: $1"
129
+ usage
130
+ ;;
131
+ esac
132
+ done
133
+
134
+ if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then
135
+ echoerr "Error: you need to provide a host and port to test."
136
+ usage
137
+ fi
138
+
139
+ WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15}
140
+ WAITFORIT_STRICT=${WAITFORIT_STRICT:-0}
141
+ WAITFORIT_CHILD=${WAITFORIT_CHILD:-0}
142
+ WAITFORIT_QUIET=${WAITFORIT_QUIET:-0}
143
+
144
+ # Check to see if timeout is from busybox?
145
+ WAITFORIT_TIMEOUT_PATH=$(type -p timeout)
146
+ WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH)
147
+
148
+ WAITFORIT_BUSYTIMEFLAG=""
149
+ if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then
150
+ WAITFORIT_ISBUSY=1
151
+ # Check if busybox timeout uses -t flag
152
+ # (recent Alpine versions don't support -t anymore)
153
+ if timeout &>/dev/stdout | grep -q -e '-t '; then
154
+ WAITFORIT_BUSYTIMEFLAG="-t"
155
+ fi
156
+ else
157
+ WAITFORIT_ISBUSY=0
158
+ fi
159
+
160
+ if [[ $WAITFORIT_CHILD -gt 0 ]]; then
161
+ wait_for
162
+ WAITFORIT_RESULT=$?
163
+ exit $WAITFORIT_RESULT
164
+ else
165
+ if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
166
+ wait_for_wrapper
167
+ WAITFORIT_RESULT=$?
168
+ else
169
+ wait_for
170
+ WAITFORIT_RESULT=$?
171
+ fi
172
+ fi
173
+
174
+ if [[ $WAITFORIT_CLI != "" ]]; then
175
+ if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then
176
+ echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess"
177
+ exit $WAITFORIT_RESULT
178
+ fi
179
+ exec "${WAITFORIT_CLI[@]}"
180
+ else
181
+ exit $WAITFORIT_RESULT
182
+ fi
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: is_this_used
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doug Hughes
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-02 00:00:00.000000000 Z
11
+ date: 2022-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.17'
47
+ version: '2.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.17'
54
+ version: '2.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: generator_spec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -218,12 +218,14 @@ files:
218
218
  - ".rspec"
219
219
  - ".travis.yml"
220
220
  - Appraisals
221
+ - Dockerfile
221
222
  - Gemfile
222
223
  - LICENSE.txt
223
224
  - README.md
224
225
  - Rakefile
225
226
  - bin/console
226
227
  - bin/setup
228
+ - docker-compose.yml
227
229
  - gemfiles/rails_5.2.gemfile
228
230
  - gemfiles/rails_5.2.gemfile.lock
229
231
  - gemfiles/rails_6.0.gemfile
@@ -232,20 +234,23 @@ files:
232
234
  - gemfiles/rails_6.1.gemfile.lock
233
235
  - is_this_used.gemspec
234
236
  - lib/generators/is_this_used/migration_generator.rb
237
+ - lib/generators/is_this_used/templates/create_potential_cruft_arguments.rb.erb
235
238
  - lib/generators/is_this_used/templates/create_potential_cruft_stacks.rb.erb
236
239
  - lib/generators/is_this_used/templates/create_potential_crufts.rb.erb
237
240
  - lib/is_this_used.rb
238
241
  - lib/is_this_used/cruft_tracker.rb
239
242
  - lib/is_this_used/models/potential_cruft.rb
243
+ - lib/is_this_used/models/potential_cruft_argument.rb
240
244
  - lib/is_this_used/models/potential_cruft_stack.rb
241
245
  - lib/is_this_used/util/log_suppressor.rb
242
246
  - lib/is_this_used/version.rb
243
247
  - log/test.log
248
+ - wait-for-it.sh
244
249
  homepage: https://github.com/dhughes/is_this_used
245
250
  licenses:
246
251
  - MIT
247
252
  metadata: {}
248
- post_install_message:
253
+ post_install_message:
249
254
  rdoc_options: []
250
255
  require_paths:
251
256
  - lib
@@ -261,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
266
  version: '0'
262
267
  requirements: []
263
268
  rubygems_version: 3.0.3.1
264
- signing_key:
269
+ signing_key:
265
270
  specification_version: 4
266
271
  summary: Provides a system to track method usage somewhat unobtrusively.
267
272
  test_files: []