Skip to content

Commit c989d98

Browse files
author
Diego
committed
refactoring
1 parent 21c2f4f commit c989d98

File tree

1 file changed

+30
-43
lines changed

1 file changed

+30
-43
lines changed

src/App/Script.php

Lines changed: 30 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -38,49 +38,40 @@ class Script
3838

3939
public static function install(Event $event): void
4040
{
41-
var_dump('getFlags', $event->getFlags());
42-
var_dump('getArguments', $event->getArguments());
43-
var_dump('getName', $event->getName());
44-
var_dump('isDevMode', $event->isDevMode());
45-
exit;
46-
47-
$serviceName = self::ask('What is the "micro-service" name?');
48-
$resourceName = self::ask('What is the "resource" name?');
49-
$answer = self::ask("Service name is [{$serviceName}] and resource name is [{$resourceName}], do you want to continue? y/n");
50-
51-
if ($answer === 'n' || $answer === 'no') {
52-
echo PHP_EOL . 'Canceling...' . PHP_EOL;
53-
exit(0);
41+
$answers['Service_Name'] = $event->getIO()->ask("\n <question>>>> What is the 'micro-service' name?</question> [default: <comment>my service</comment>] ", 'my service');
42+
$answers['Resource_Name'] = $event->getIO()->ask("\n <question>>>> What is the 'resource' name?</question> [default: <comment>my resource</comment>] ", 'my resource');
43+
$answers['PHPStorm_Config'] = $event->getIO()->askConfirmation("\n <question>>>> Are you using PHPStorm? Do you want to auto add Docker image config?</question> (y/n) [default: <comment>yes</comment>] ", true);
44+
if ($answers['PHPStorm_Config']) {
45+
$event->getIO()->write("\n <info>>>> Please provide your AWS credentials</info>");
46+
$answers['Access_Key_ID'] = $event->getIO()->ask("\n <question>>>> Access Key ID:</question> ", 'not-provided');
47+
$answers['Secret_Access_Key'] = $event->getIO()->ask("\n <question>>>> Secret Access Key:</question> ", 'not-provided');
48+
$answers['PHPStorm_Config'] = 'yes';
49+
} else {
50+
unset($answers['PHPStorm_Config']);
5451
}
5552

56-
self::replaceFilesContentResource($resourceName);
57-
self::replaceFilesContentService($serviceName);
58-
self::renameFiles($resourceName);
59-
60-
$answer = self::ask("Are you using PHPStorm? Want to auto add Docker image config? y/n");
61-
if ($answer === 'y' || $answer === 'yes') {
62-
self::addPHPStormConfig();
53+
$event->getIO()->write("\n ::: Your current configuration:");
54+
$event->getIO()->write(" -------------------------------");
55+
foreach ($answers as $key => $answer) {
56+
$event->getIO()->write(" ::: {$key}: <info>{$answer}</info>");
6357
}
58+
$start = $event->getIO()->askConfirmation("\n <question>>>> Do you want to proceed?</question> (y/n) [default: <comment>yes</comment>] ", true);
6459

65-
self::finishScript();
66-
}
60+
if (!$start) {
61+
$event->getIO()->write("\n <warning>>>> Canceling...</warning>");
62+
exit(0);
63+
}
6764

68-
private static function ask(string $question): string
69-
{
70-
do {
71-
$border = "\033[33m>>>\033[0m";
72-
fwrite(STDOUT, "{$border} \033[33m {$question} \033[0m");
73-
$answer = trim(fgets(STDIN));
74-
} while (empty($answer));
65+
self::replaceFilesContentResource($answers['Resource_Name']);
66+
self::replaceFilesContentService($answers['Service_Name']);
67+
self::renameFiles($answers['Resource_Name']);
7568

76-
return $answer;
77-
}
69+
if (isset($answers['PHPStorm_Config'])) {
70+
$event->getIO()->write("\n <info>>>> Creating PHPStorm Configurations...</info>");
71+
self::addPHPStormConfig($answers);
72+
}
7873

79-
private static function log(string $message, $color = '0'): void
80-
{
81-
// Colors: (0 = White) (31 = Red) (32 = Green) (33 = Yellow) (34 = Blue) (35 = Purple) (36 = Light blue)
82-
$border = "\033[32m:::\033[0m";
83-
fwrite(STDOUT, "{$border} \033[{$color}m {$message} \033[0m {$border}" . PHP_EOL);
74+
self::finishScript();
8475
}
8576

8677
private static function renameFiles($resourceName)
@@ -155,19 +146,15 @@ private static function toUnderscore($string): string
155146
return strtolower(preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', $string));
156147
}
157148

158-
private static function addPHPStormConfig(): void
149+
private static function addPHPStormConfig($answers): void
159150
{
160-
self::log("Please provide your AWS credentials.", '36');
161-
$accessKeyId = self::ask('Access Key ID:');
162-
$secretAccessKey = self::ask('Secret Access Key:');
163-
164151
if (!file_exists('./.idea/runConfigurations')) {
165152
mkdir('./.idea/runConfigurations', 0777, true);
166153
}
167154

168155
$content = file_get_contents('./src/App/docker_image_config.xml');
169-
$content = str_replace('AWS_ACCESS_KEY_ID', $accessKeyId, $content);
170-
$content = str_replace('AWS_SECRET_ACCESS_KEY', $secretAccessKey, $content);
156+
$content = str_replace('AWS_ACCESS_KEY_ID', $answers['Access_Key_ID'], $content);
157+
$content = str_replace('AWS_SECRET_ACCESS_KEY', $answers['Secret_Access_Key'], $content);
171158
file_put_contents('./src/App/docker_image_config.xml', $content);
172159

173160
copy('./src/App/docker_image_config.xml', './.idea/runConfigurations/docker_image_config.xml');

0 commit comments

Comments
 (0)