Skip to content

Commit 8694f23

Browse files
committed
Reduce duplicated code
1 parent e1b6c86 commit 8694f23

1 file changed

Lines changed: 16 additions & 66 deletions

File tree

src/Manager/ScreenManager.php

Lines changed: 16 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)