Skip to content

Commit effd276

Browse files
ribeirobrenoBreno Ribeirotaylorotwell
authored
The input device is not a TTY (#353)
* Add failing test for TTY issue * Fix TTY issue in console * Clean up unneeded variable * Move test script to a gist * Update sail Co-authored-by: Breno Ribeiro <brenoribeiro@macOSHighSierra.local> Co-authored-by: Taylor Otwell <taylor@laravel.com>
1 parent 3f4ee92 commit effd276

File tree

1 file changed

+81
-87
lines changed

1 file changed

+81
-87
lines changed

bin/sail

+81-87
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,17 @@ else
7575
EXEC="yes"
7676
fi
7777

78+
ARGS=(-f "$SAIL_FILE")
79+
7880
if [ $# -gt 0 ]; then
7981
# Proxy PHP commands to the "php" binary on the application container...
8082
if [ "$1" == "php" ]; then
8183
shift 1
8284

8385
if [ "$EXEC" == "yes" ]; then
84-
docker-compose -f $SAIL_FILE exec \
85-
-u sail \
86-
"$APP_SERVICE" \
87-
php "$@"
86+
ARGS+=(exec -u sail)
87+
[ ! -t 0 ] && ARGS+=(-T)
88+
ARGS+=("$APP_SERVICE" "php" "$@")
8889
else
8990
sail_is_not_running
9091
fi
@@ -94,10 +95,9 @@ if [ $# -gt 0 ]; then
9495
shift 1
9596

9697
if [ "$EXEC" == "yes" ]; then
97-
docker-compose -f $SAIL_FILE exec \
98-
-u sail \
99-
"$APP_SERVICE" \
100-
./vendor/bin/"$@"
98+
ARGS+=(exec -u sail)
99+
[ ! -t 0 ] && ARGS+=(-T)
100+
ARGS+=("$APP_SERVICE" ./vendor/bin/"$@")
101101
else
102102
sail_is_not_running
103103
fi
@@ -107,10 +107,9 @@ if [ $# -gt 0 ]; then
107107
shift 1
108108

109109
if [ "$EXEC" == "yes" ]; then
110-
docker-compose -f $SAIL_FILE exec \
111-
-u sail \
112-
"$APP_SERVICE" \
113-
composer "$@"
110+
ARGS+=(exec -u sail)
111+
[ ! -t 0 ] && ARGS+=(-T)
112+
ARGS+=("$APP_SERVICE" "composer" "$@")
114113
else
115114
sail_is_not_running
116115
fi
@@ -120,10 +119,9 @@ if [ $# -gt 0 ]; then
120119
shift 1
121120

122121
if [ "$EXEC" == "yes" ]; then
123-
docker-compose -f $SAIL_FILE exec \
124-
-u sail \
125-
"$APP_SERVICE" \
126-
php artisan "$@"
122+
ARGS+=(exec -u sail)
123+
[ ! -t 0 ] && ARGS+=(-T)
124+
ARGS+=("$APP_SERVICE" php artisan "$@")
127125
else
128126
sail_is_not_running
129127
fi
@@ -133,11 +131,9 @@ if [ $# -gt 0 ]; then
133131
shift 1
134132

135133
if [ "$EXEC" == "yes" ]; then
136-
docker-compose -f $SAIL_FILE exec \
137-
-u sail \
138-
-e XDEBUG_SESSION=1 \
139-
"$APP_SERVICE" \
140-
php artisan "$@"
134+
ARGS+=(exec -u sail -e XDEBUG_SESSION=1)
135+
[ ! -t 0 ] && ARGS+=(-T)
136+
ARGS+=("$APP_SERVICE" php artisan "$@")
141137
else
142138
sail_is_not_running
143139
fi
@@ -147,10 +143,9 @@ if [ $# -gt 0 ]; then
147143
shift 1
148144

149145
if [ "$EXEC" == "yes" ]; then
150-
docker-compose -f $SAIL_FILE exec \
151-
-u sail \
152-
"$APP_SERVICE" \
153-
php artisan test "$@"
146+
ARGS+=(exec -u sail)
147+
[ ! -t 0 ] && ARGS+=(-T)
148+
ARGS+=("$APP_SERVICE" php artisan test "$@")
154149
else
155150
sail_is_not_running
156151
fi
@@ -160,10 +155,9 @@ if [ $# -gt 0 ]; then
160155
shift 1
161156

162157
if [ "$EXEC" == "yes" ]; then
163-
docker-compose -f $SAIL_FILE exec \
164-
-u sail \
165-
"$APP_SERVICE" \
166-
php vendor/bin/phpunit "$@"
158+
ARGS+=(exec -u sail)
159+
[ ! -t 0 ] && ARGS+=(-T)
160+
ARGS+=("$APP_SERVICE" php vendor/bin/phpunit "$@")
167161
else
168162
sail_is_not_running
169163
fi
@@ -173,12 +167,11 @@ if [ $# -gt 0 ]; then
173167
shift 1
174168

175169
if [ "$EXEC" == "yes" ]; then
176-
docker-compose -f $SAIL_FILE exec \
177-
-u sail \
178-
-e "APP_URL=http://${APP_SERVICE}" \
179-
-e "DUSK_DRIVER_URL=http://selenium:4444/wd/hub" \
180-
"$APP_SERVICE" \
181-
php artisan dusk "$@"
170+
ARGS+=(exec -u sail)
171+
[ ! -t 0 ] && ARGS+=(-T)
172+
ARGS+=(-e "APP_URL=http://${APP_SERVICE}")
173+
ARGS+=(-e "DUSK_DRIVER_URL=http://selenium:4444/wd/hub")
174+
ARGS+=("$APP_SERVICE" php artisan dusk "$@")
182175
else
183176
sail_is_not_running
184177
fi
@@ -188,12 +181,11 @@ if [ $# -gt 0 ]; then
188181
shift 1
189182

190183
if [ "$EXEC" == "yes" ]; then
191-
docker-compose -f $SAIL_FILE exec \
192-
-u sail \
193-
-e "APP_URL=http://${APP_SERVICE}" \
194-
-e "DUSK_DRIVER_URL=http://selenium:4444/wd/hub" \
195-
"$APP_SERVICE" \
196-
php artisan dusk:fails "$@"
184+
ARGS+=(exec -u sail)
185+
[ ! -t 0 ] && ARGS+=(-T)
186+
ARGS+=(-e "APP_URL=http://${APP_SERVICE}")
187+
ARGS+=(-e "DUSK_DRIVER_URL=http://selenium:4444/wd/hub")
188+
ARGS+=("$APP_SERVICE" php artisan dusk:fails "$@")
197189
else
198190
sail_is_not_running
199191
fi
@@ -203,10 +195,9 @@ if [ $# -gt 0 ]; then
203195
shift 1
204196

205197
if [ "$EXEC" == "yes" ]; then
206-
docker-compose -f $SAIL_FILE exec \
207-
-u sail \
208-
"$APP_SERVICE" \
209-
php artisan tinker
198+
ARGS+=(exec -u sail)
199+
[ ! -t 0 ] && ARGS+=(-T)
200+
ARGS+=("$APP_SERVICE" php artisan tinker)
210201
else
211202
sail_is_not_running
212203
fi
@@ -216,10 +207,9 @@ if [ $# -gt 0 ]; then
216207
shift 1
217208

218209
if [ "$EXEC" == "yes" ]; then
219-
docker-compose -f $SAIL_FILE exec \
220-
-u sail \
221-
"$APP_SERVICE" \
222-
node "$@"
210+
ARGS+=(exec -u sail)
211+
[ ! -t 0 ] && ARGS+=(-T)
212+
ARGS+=("$APP_SERVICE" node "$@")
223213
else
224214
sail_is_not_running
225215
fi
@@ -229,10 +219,9 @@ if [ $# -gt 0 ]; then
229219
shift 1
230220

231221
if [ "$EXEC" == "yes" ]; then
232-
docker-compose -f $SAIL_FILE exec \
233-
-u sail \
234-
"$APP_SERVICE" \
235-
npm "$@"
222+
ARGS+=(exec -u sail)
223+
[ ! -t 0 ] && ARGS+=(-T)
224+
ARGS+=("$APP_SERVICE" npm "$@")
236225
else
237226
sail_is_not_running
238227
fi
@@ -242,10 +231,9 @@ if [ $# -gt 0 ]; then
242231
shift 1
243232

244233
if [ "$EXEC" == "yes" ]; then
245-
docker-compose -f $SAIL_FILE exec \
246-
-u sail \
247-
"$APP_SERVICE" \
248-
npx "$@"
234+
ARGS+=(exec -u sail)
235+
[ ! -t 0 ] && ARGS+=(-T)
236+
ARGS+=("$APP_SERVICE" npx "$@")
249237
else
250238
sail_is_not_running
251239
fi
@@ -255,10 +243,9 @@ if [ $# -gt 0 ]; then
255243
shift 1
256244

257245
if [ "$EXEC" == "yes" ]; then
258-
docker-compose -f $SAIL_FILE exec \
259-
-u sail \
260-
"$APP_SERVICE" \
261-
yarn "$@"
246+
ARGS+=(exec -u sail)
247+
[ ! -t 0 ] && ARGS+=(-T)
248+
ARGS+=("$APP_SERVICE" yarn "$@")
262249
else
263250
sail_is_not_running
264251
fi
@@ -268,9 +255,10 @@ if [ $# -gt 0 ]; then
268255
shift 1
269256

270257
if [ "$EXEC" == "yes" ]; then
271-
docker-compose -f $SAIL_FILE exec \
272-
mysql \
273-
bash -c 'MYSQL_PWD=${MYSQL_PASSWORD} mysql -u ${MYSQL_USER} ${MYSQL_DATABASE}'
258+
ARGS+=(exec)
259+
[ ! -t 0 ] && ARGS+=(-T)
260+
ARGS+=(mysql bash -c)
261+
ARGS+=('MYSQL_PWD=${MYSQL_PASSWORD} mysql -u ${MYSQL_USER} ${MYSQL_DATABASE}')
274262
else
275263
sail_is_not_running
276264
fi
@@ -280,9 +268,10 @@ if [ $# -gt 0 ]; then
280268
shift 1
281269

282270
if [ "$EXEC" == "yes" ]; then
283-
docker-compose -f $SAIL_FILE exec \
284-
mariadb \
285-
bash -c 'MYSQL_PWD=${MYSQL_PASSWORD} mysql -u ${MYSQL_USER} ${MYSQL_DATABASE}'
271+
ARGS+=(exec)
272+
[ ! -t 0 ] && ARGS+=(-T)
273+
ARGS+=(mariadb bash -c)
274+
ARGS+=('MYSQL_PWD=${MYSQL_PASSWORD} mysql -u ${MYSQL_USER} ${MYSQL_DATABASE}')
286275
else
287276
sail_is_not_running
288277
fi
@@ -292,9 +281,10 @@ if [ $# -gt 0 ]; then
292281
shift 1
293282

294283
if [ "$EXEC" == "yes" ]; then
295-
docker-compose -f $SAIL_FILE exec \
296-
pgsql \
297-
bash -c 'PGPASSWORD=${PGPASSWORD} psql -U ${POSTGRES_USER} ${POSTGRES_DB}'
284+
ARGS+=(exec)
285+
[ ! -t 0 ] && ARGS+=(-T)
286+
ARGS+=(pgsql bash -c)
287+
ARGS+=('PGPASSWORD=${PGPASSWORD} psql -U ${POSTGRES_USER} ${POSTGRES_DB}')
298288
else
299289
sail_is_not_running
300290
fi
@@ -304,10 +294,9 @@ if [ $# -gt 0 ]; then
304294
shift 1
305295

306296
if [ "$EXEC" == "yes" ]; then
307-
docker-compose -f $SAIL_FILE exec \
308-
-u sail \
309-
"$APP_SERVICE" \
310-
bash "$@"
297+
ARGS+=(exec -u sail)
298+
[ ! -t 0 ] && ARGS+=(-T)
299+
ARGS+=("$APP_SERVICE" bash "$@")
311300
else
312301
sail_is_not_running
313302
fi
@@ -317,9 +306,9 @@ if [ $# -gt 0 ]; then
317306
shift 1
318307

319308
if [ "$EXEC" == "yes" ]; then
320-
docker-compose -f $SAIL_FILE exec \
321-
"$APP_SERVICE" \
322-
bash "$@"
309+
ARGS+=(exec)
310+
[ ! -t 0 ] && ARGS+=(-T)
311+
ARGS+=("$APP_SERVICE" bash "$@")
323312
else
324313
sail_is_not_running
325314
fi
@@ -329,9 +318,9 @@ if [ $# -gt 0 ]; then
329318
shift 1
330319

331320
if [ "$EXEC" == "yes" ]; then
332-
docker-compose -f $SAIL_FILE exec \
333-
redis \
334-
redis-cli
321+
ARGS+=(exec)
322+
[ ! -t 0 ] && ARGS+=(-T)
323+
ARGS+=(redis redis-cli)
335324
else
336325
sail_is_not_running
337326
fi
@@ -342,19 +331,24 @@ if [ $# -gt 0 ]; then
342331

343332
if [ "$EXEC" == "yes" ]; then
344333
docker run --init --rm -p $SAIL_SHARE_DASHBOARD:4040 -t beyondcodegmbh/expose-server:latest share http://host.docker.internal:"$APP_PORT" \
345-
--server-host="$SAIL_SHARE_SERVER_HOST" \
346-
--server-port="$SAIL_SHARE_SERVER_PORT" \
347-
--auth="$SAIL_SHARE_TOKEN" \
348-
--subdomain="$SAIL_SHARE_SUBDOMAIN" \
349-
"$@"
334+
--server-host="$SAIL_SHARE_SERVER_HOST" \
335+
--server-port="$SAIL_SHARE_SERVER_PORT" \
336+
--auth="$SAIL_SHARE_TOKEN" \
337+
--subdomain="$SAIL_SHARE_SUBDOMAIN" \
338+
"$@"
339+
340+
exit
350341
else
351342
sail_is_not_running
352343
fi
353344

354345
# Pass unknown commands to the "docker-compose" binary...
355346
else
356-
docker-compose -f $SAIL_FILE "$@"
347+
ARGS+=("$@")
357348
fi
358349
else
359-
docker-compose -f $SAIL_FILE ps
350+
ARGS+=(ps)
360351
fi
352+
353+
# Run Docker Compose with the defined arguments...
354+
docker-compose "${ARGS[@]}"

0 commit comments

Comments
 (0)