@@ -38,15 +38,7 @@ private function getLogFile(string $screenName): string
3838
3939 public function start (ScreenInterface |string $ nameOrScreen ): bool
4040 {
41- if (\is_string ($ nameOrScreen )) {
42- if (!$ this ->provider ->has ($ nameOrScreen )) {
43- throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
44- }
45-
46- $ screen = $ this ->provider ->get ($ nameOrScreen );
47- } else {
48- $ screen = $ nameOrScreen ;
49- }
41+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
5042
5143 if ($ this ->isRunning ($ nameOrScreen )) {
5244 return true ;
@@ -110,18 +102,23 @@ public function start(ScreenInterface|string $nameOrScreen): bool
110102 return $ process ->isSuccessful ();
111103 }
112104
113- public function stop (ScreenInterface |string $ nameOrScreen ): bool
105+ protected function resolveScreen (ScreenInterface |string $ nameOrScreen ): ScreenInterface
114106 {
115107 if (\is_string ($ nameOrScreen )) {
116108 if (!$ this ->provider ->has ($ nameOrScreen )) {
117109 throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
118110 }
119111
120- $ screen = $ this ->provider ->get ($ nameOrScreen );
121- } else {
122- $ screen = $ nameOrScreen ;
112+ return $ this ->provider ->get ($ nameOrScreen );
123113 }
124114
115+ return $ nameOrScreen ;
116+ }
117+
118+ public function stop (ScreenInterface |string $ nameOrScreen ): bool
119+ {
120+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
121+
125122 if (!$ this ->isRunning ($ screen )) {
126123 return true ;
127124 }
@@ -142,15 +139,7 @@ public function stop(ScreenInterface|string $nameOrScreen): bool
142139 */
143140 public function gracefullyStop (ScreenInterface |string $ nameOrScreen , int $ timeout = 5 , int $ sleep = 1000 ): bool
144141 {
145- if (\is_string ($ nameOrScreen )) {
146- if (!$ this ->provider ->has ($ nameOrScreen )) {
147- throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
148- }
149-
150- $ screen = $ this ->provider ->get ($ nameOrScreen );
151- } else {
152- $ screen = $ nameOrScreen ;
153- }
142+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
154143
155144 if (!$ this ->isRunning ($ screen )) {
156145 return true ;
@@ -175,21 +164,9 @@ public function gracefullyStop(ScreenInterface|string $nameOrScreen, int $timeou
175164 return true ;
176165 }
177166
178- /**
179- * @param int $timeout - Time to wait in seconds for the screen to kill after trying to gracefully stop it
180- * @param int $sleep - Time to sleep in microseconds between checks
181- */
182- public function kill (ScreenInterface |string $ nameOrScreen , int $ timeout = 5 , int $ sleep = 1000 ): bool
167+ public function kill (ScreenInterface |string $ nameOrScreen ): bool
183168 {
184- if (\is_string ($ nameOrScreen )) {
185- if (!$ this ->provider ->has ($ nameOrScreen )) {
186- throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
187- }
188-
189- $ screen = $ this ->provider ->get ($ nameOrScreen );
190- } else {
191- $ screen = $ nameOrScreen ;
192- }
169+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
193170
194171 if (!$ this ->isRunning ($ screen )) {
195172 return true ;
@@ -205,16 +182,7 @@ public function kill(ScreenInterface|string $nameOrScreen, int $timeout = 5, int
205182
206183 public function isRunning (ScreenInterface |string $ nameOrScreen ): bool
207184 {
208- if (\is_string ($ nameOrScreen )) {
209- if (!$ this ->provider ->has ($ nameOrScreen )) {
210- throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
211- }
212-
213- $ screen = $ this ->provider ->get ($ nameOrScreen );
214- } else {
215- $ screen = $ nameOrScreen ;
216- }
217-
185+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
218186 $ screenName = $ this ->generateScreenName ($ screen );
219187
220188 $ process = new Process (['screen ' , '-ls ' ]);
@@ -226,16 +194,7 @@ public function isRunning(ScreenInterface|string $nameOrScreen): bool
226194
227195 public function getLogs (ScreenInterface |string $ nameOrScreen ): ?string
228196 {
229- if (\is_string ($ nameOrScreen )) {
230- if (!$ this ->provider ->has ($ nameOrScreen )) {
231- throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
232- }
233-
234- $ screen = $ this ->provider ->get ($ nameOrScreen );
235- } else {
236- $ screen = $ nameOrScreen ;
237- }
238-
197+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
239198 $ screenName = $ this ->generateScreenName ($ screen );
240199
241200 $ logFile = $ this ->getLogFile ($ screenName );
@@ -249,16 +208,7 @@ public function getLogs(ScreenInterface|string $nameOrScreen): ?string
249208
250209 public function attach (ScreenInterface |string $ nameOrScreen ): void
251210 {
252- if (\is_string ($ nameOrScreen )) {
253- if (!$ this ->provider ->has ($ nameOrScreen )) {
254- throw new \InvalidArgumentException (\sprintf ('Screen "%s" not found. ' , $ nameOrScreen ));
255- }
256-
257- $ screen = $ this ->provider ->get ($ nameOrScreen );
258- } else {
259- $ screen = $ nameOrScreen ;
260- }
261-
211+ $ screen = $ this ->resolveScreen ($ nameOrScreen );
262212 $ screenName = $ this ->generateScreenName ($ screen );
263213
264214 $ process = new Process (['screen ' , '-r ' , $ screenName ]);
0 commit comments