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.
- checksums.yaml +4 -4
- data/Dockerfile +24 -0
- data/README.md +94 -7
- data/Rakefile +1 -2
- data/docker-compose.yml +39 -0
- data/gemfiles/rails_5.2.gemfile.lock +63 -65
- data/gemfiles/rails_6.0.gemfile.lock +76 -74
- data/gemfiles/rails_6.1.gemfile.lock +79 -77
- data/is_this_used.gemspec +1 -1
- data/lib/generators/is_this_used/migration_generator.rb +5 -0
- data/lib/generators/is_this_used/templates/create_potential_cruft_arguments.rb.erb +12 -0
- data/lib/is_this_used/cruft_tracker.rb +29 -1
- data/lib/is_this_used/models/potential_cruft.rb +2 -0
- data/lib/is_this_used/models/potential_cruft_argument.rb +7 -0
- data/lib/is_this_used/version.rb +1 -1
- data/lib/is_this_used.rb +1 -0
- data/wait-for-it.sh +182 -0
- metadata +10 -5
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.
|
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-
|
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
|
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
|
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.
|