is_this_used 0.1.3 → 0.1.7

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.
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.3
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doug Hughes
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-31 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,15 +234,18 @@ 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
@@ -260,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
265
  - !ruby/object:Gem::Version
261
266
  version: '0'
262
267
  requirements: []
263
- rubygems_version: 3.0.3
268
+ rubygems_version: 3.0.3.1
264
269
  signing_key:
265
270
  specification_version: 4
266
271
  summary: Provides a system to track method usage somewhat unobtrusively.