| @ -0,0 +1,58 @@ | |||||
| <?php | |||||
| namespace App\Commands; | |||||
| use Illuminate\Console\Scheduling\Schedule; | |||||
| use LaravelZero\Framework\Commands\Command; | |||||
| use App\Facades\Install; | |||||
| /** | |||||
| * | |||||
| * | |||||
| * | |||||
| */ | |||||
| class NodejsInstallCommand extends Command | |||||
| { | |||||
| /** | |||||
| * The signature of the command. | |||||
| * | |||||
| * @var string | |||||
| */ | |||||
| protected $signature = 'nodejs:install {version}'; | |||||
| /** | |||||
| * The description of the command. | |||||
| * | |||||
| * @var string | |||||
| */ | |||||
| protected $description = 'Install Nodejs'; | |||||
| /** | |||||
| * Execute the console command. | |||||
| * | |||||
| * @return mixed | |||||
| */ | |||||
| public function handle() | |||||
| { | |||||
| // getting configuration | |||||
| $version = $this->argument('version'); | |||||
| exec('useradd -d /home/nodejs -m nodejs'); | |||||
| exec('curl -sL https://deb.nodesource.com/setup_'.$version.'.x | sudo -E bash -'); | |||||
| exec('apt-get install -y nodejs -qq'); | |||||
| exec('sudo -Hu nodejs mkdir /home/nodejs/.npm'); | |||||
| exec('sudo -Hu nodejs npm config set prefix /home/nodejs/.npm'); | |||||
| exec('echo -e "export PATH=/home/nodejs/.npm/bin:\$PATH" >> /home/nodejs/.bashrc'); | |||||
| exec('npm install -g npm && npm install -g pm2'); | |||||
| // check if nginx is ready and installed | |||||
| if (Install::isReady('nodejs')) { | |||||
| $this->info("Success!"); | |||||
| } else { | |||||
| $this->error("Failed! Please check log-file!"); | |||||
| } | |||||
| } | |||||
| } | |||||