| @@ 15-88 (lines=74) @@ | ||
| 12 | * |
|
| 13 | * @package Acacha\ForgePublish\Commands |
|
| 14 | */ |
|
| 15 | class PublishArtisan extends Command |
|
| 16 | { |
|
| 17 | use ChecksEnv, RunsSSHCommands; |
|
| 18 | ||
| 19 | /** |
|
| 20 | * Server name |
|
| 21 | * |
|
| 22 | * @var String |
|
| 23 | */ |
|
| 24 | protected $server; |
|
| 25 | ||
| 26 | /** |
|
| 27 | * Domain |
|
| 28 | * |
|
| 29 | * @var String |
|
| 30 | */ |
|
| 31 | protected $domain; |
|
| 32 | ||
| 33 | /** |
|
| 34 | * The name and signature of the console command. |
|
| 35 | * |
|
| 36 | * @var string |
|
| 37 | */ |
|
| 38 | protected $signature = 'publish:artisan {artisan_command?} {--server=} {--domain=}'; |
|
| 39 | ||
| 40 | /** |
|
| 41 | * The console command description. |
|
| 42 | * |
|
| 43 | * @var string |
|
| 44 | */ |
|
| 45 | protected $description = 'Run artisan on production server'; |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Guzzle http client. |
|
| 49 | * |
|
| 50 | * @var Client |
|
| 51 | */ |
|
| 52 | protected $http; |
|
| 53 | ||
| 54 | /** |
|
| 55 | * Create a new command instance. |
|
| 56 | * |
|
| 57 | */ |
|
| 58 | public function __construct(Client $http) |
|
| 59 | { |
|
| 60 | parent::__construct(); |
|
| 61 | $this->http = $http; |
|
| 62 | } |
|
| 63 | ||
| 64 | /** |
|
| 65 | * Execute the console command. |
|
| 66 | * |
|
| 67 | */ |
|
| 68 | public function handle() |
|
| 69 | { |
|
| 70 | $this->abortCommandExecution(); |
|
| 71 | $command = $this->argument('artisan_command'); |
|
| 72 | $this->info("Running php artisan $command on production..."); |
|
| 73 | $this->runSSH("cd $this->domain;php artisan $command"); |
|
| 74 | } |
|
| 75 | ||
| 76 | /** |
|
| 77 | * Abort command execution? |
|
| 78 | */ |
|
| 79 | protected function abortCommandExecution() |
|
| 80 | { |
|
| 81 | $this->server = $this->checkEnv('server', 'ACACHA_FORGE_SERVER'); |
|
| 82 | $this->domain = $this->checkEnv('domain', 'ACACHA_FORGE_DOMAIN'); |
|
| 83 | ||
| 84 | $this->abortIfNoSSHConnection(); |
|
| 85 | } |
|
| 86 | } |
|
| 87 | ||
| @@ 15-89 (lines=75) @@ | ||
| 12 | * |
|
| 13 | * @package Acacha\ForgePublish\Commands |
|
| 14 | */ |
|
| 15 | class PublishComposer extends Command |
|
| 16 | { |
|
| 17 | use ChecksEnv, RunsSSHCommands; |
|
| 18 | ||
| 19 | /** |
|
| 20 | * Server name |
|
| 21 | * |
|
| 22 | * @var String |
|
| 23 | */ |
|
| 24 | protected $server; |
|
| 25 | ||
| 26 | /** |
|
| 27 | * Domain |
|
| 28 | * |
|
| 29 | * @var String |
|
| 30 | */ |
|
| 31 | protected $domain; |
|
| 32 | ||
| 33 | /** |
|
| 34 | * The name and signature of the console command. |
|
| 35 | * |
|
| 36 | * @var string |
|
| 37 | */ |
|
| 38 | protected $signature = 'publish:composer {composer_command} {--server=} {--domain=}'; |
|
| 39 | ||
| 40 | /** |
|
| 41 | * The console command description. |
|
| 42 | * |
|
| 43 | * @var string |
|
| 44 | */ |
|
| 45 | protected $description = 'Run composer on production server'; |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Guzzle http client. |
|
| 49 | * |
|
| 50 | * @var Client |
|
| 51 | */ |
|
| 52 | protected $http; |
|
| 53 | ||
| 54 | /** |
|
| 55 | * Create a new command instance. |
|
| 56 | * |
|
| 57 | */ |
|
| 58 | public function __construct(Client $http) |
|
| 59 | { |
|
| 60 | parent::__construct(); |
|
| 61 | $this->http = $http; |
|
| 62 | } |
|
| 63 | ||
| 64 | /** |
|
| 65 | * Execute the console command. |
|
| 66 | * |
|
| 67 | */ |
|
| 68 | public function handle() |
|
| 69 | { |
|
| 70 | $this->abortCommandExecution(); |
|
| 71 | $command = $this->argument('composer_command'); |
|
| 72 | $this->info("Running composer $command on production..."); |
|
| 73 | ||
| 74 | $this->runSSH("cd $this->domain;composer $command"); |
|
| 75 | } |
|
| 76 | ||
| 77 | /** |
|
| 78 | * Abort command execution? |
|
| 79 | */ |
|
| 80 | protected function abortCommandExecution() |
|
| 81 | { |
|
| 82 | $this->server = $this->checkEnv('server', 'ACACHA_FORGE_SERVER'); |
|
| 83 | $this->domain = $this->checkEnv('domain', 'ACACHA_FORGE_DOMAIN'); |
|
| 84 | ||
| 85 | $this->abortIfNoSSHConnection(); |
|
| 86 | } |
|
| 87 | } |
|
| 88 | ||
| @@ 15-88 (lines=74) @@ | ||
| 12 | * |
|
| 13 | * @package Acacha\ForgePublish\Commands |
|
| 14 | */ |
|
| 15 | class PublishGit extends Command |
|
| 16 | { |
|
| 17 | use ChecksEnv, RunsSSHCommands; |
|
| 18 | ||
| 19 | /** |
|
| 20 | * Server name |
|
| 21 | * |
|
| 22 | * @var String |
|
| 23 | */ |
|
| 24 | protected $server; |
|
| 25 | ||
| 26 | /** |
|
| 27 | * Domain |
|
| 28 | * |
|
| 29 | * @var String |
|
| 30 | */ |
|
| 31 | protected $domain; |
|
| 32 | ||
| 33 | /** |
|
| 34 | * The name and signature of the console command. |
|
| 35 | * |
|
| 36 | * @var string |
|
| 37 | */ |
|
| 38 | protected $signature = 'publish:git {git_command} {--server=} {--domain=}'; |
|
| 39 | ||
| 40 | /** |
|
| 41 | * The console command description. |
|
| 42 | * |
|
| 43 | * @var string |
|
| 44 | */ |
|
| 45 | protected $description = 'Execute git command on production'; |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Guzzle http client. |
|
| 49 | * |
|
| 50 | * @var Client |
|
| 51 | */ |
|
| 52 | protected $http; |
|
| 53 | ||
| 54 | /** |
|
| 55 | * Create a new command instance. |
|
| 56 | * |
|
| 57 | */ |
|
| 58 | public function __construct(Client $http) |
|
| 59 | { |
|
| 60 | parent::__construct(); |
|
| 61 | $this->http = $http; |
|
| 62 | } |
|
| 63 | ||
| 64 | /** |
|
| 65 | * Execute the console command. |
|
| 66 | * |
|
| 67 | */ |
|
| 68 | public function handle() |
|
| 69 | { |
|
| 70 | $this->abortCommandExecution(); |
|
| 71 | $command = $this->argument('git_command'); |
|
| 72 | $this->info("Running git $command on production..."); |
|
| 73 | ||
| 74 | $this->runSSH("cd $this->domain;git $command"); |
|
| 75 | } |
|
| 76 | ||
| 77 | /** |
|
| 78 | * Abort command execution? |
|
| 79 | */ |
|
| 80 | protected function abortCommandExecution() |
|
| 81 | { |
|
| 82 | $this->server = $this->checkEnv('server', 'ACACHA_FORGE_SERVER'); |
|
| 83 | $this->domain = $this->checkEnv('domain', 'ACACHA_FORGE_DOMAIN'); |
|
| 84 | ||
| 85 | $this->abortIfNoSSHConnection(); |
|
| 86 | } |
|
| 87 | } |
|
| 88 | ||
| @@ 15-89 (lines=75) @@ | ||
| 12 | * |
|
| 13 | * @package Acacha\ForgePublish\Commands |
|
| 14 | */ |
|
| 15 | class PublishNpm extends Command |
|
| 16 | { |
|
| 17 | use ChecksEnv, RunsSSHCommands; |
|
| 18 | ||
| 19 | /** |
|
| 20 | * Server name |
|
| 21 | * |
|
| 22 | * @var String |
|
| 23 | */ |
|
| 24 | protected $server; |
|
| 25 | ||
| 26 | /** |
|
| 27 | * Domain |
|
| 28 | * |
|
| 29 | * @var String |
|
| 30 | */ |
|
| 31 | protected $domain; |
|
| 32 | ||
| 33 | /** |
|
| 34 | * The name and signature of the console command. |
|
| 35 | * |
|
| 36 | * @var string |
|
| 37 | */ |
|
| 38 | protected $signature = 'publish:npm {npm_command} {--server=} {--domain=}'; |
|
| 39 | ||
| 40 | /** |
|
| 41 | * The console command description. |
|
| 42 | * |
|
| 43 | * @var string |
|
| 44 | */ |
|
| 45 | protected $description = 'Run npm on production server'; |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Guzzle http client. |
|
| 49 | * |
|
| 50 | * @var Client |
|
| 51 | */ |
|
| 52 | protected $http; |
|
| 53 | ||
| 54 | /** |
|
| 55 | * Create a new command instance. |
|
| 56 | * |
|
| 57 | */ |
|
| 58 | public function __construct(Client $http) |
|
| 59 | { |
|
| 60 | parent::__construct(); |
|
| 61 | $this->http = $http; |
|
| 62 | } |
|
| 63 | ||
| 64 | /** |
|
| 65 | * Execute the console command. |
|
| 66 | * |
|
| 67 | */ |
|
| 68 | public function handle() |
|
| 69 | { |
|
| 70 | $this->abortCommandExecution(); |
|
| 71 | $command = $this->argument('npm_command'); |
|
| 72 | $this->info("Running npm $command on production..."); |
|
| 73 | ||
| 74 | $this->runSSH("cd $this->domain;npm $command"); |
|
| 75 | } |
|
| 76 | ||
| 77 | /** |
|
| 78 | * Abort command execution? |
|
| 79 | */ |
|
| 80 | protected function abortCommandExecution() |
|
| 81 | { |
|
| 82 | $this->server = $this->checkEnv('server', 'ACACHA_FORGE_SERVER'); |
|
| 83 | $this->domain = $this->checkEnv('domain', 'ACACHA_FORGE_DOMAIN'); |
|
| 84 | ||
| 85 | $this->abortIfNoSSHConnection(); |
|
| 86 | } |
|
| 87 | } |
|
| 88 | ||