<?php namespace App\Console\Commands; use Symfony\Component\Console\Input\InputArgument; use Illuminate\Console\Command; class Versioning extends Command { /** * The console command name. * * @var string */ protected $name = 'versioning:update'; /** * The console command description. * * @var string */ protected $description = 'Generate and update app\'s version via git.'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return void */ public function fire() { $versionFile = 'config/version.php'; $hash_version = str_replace("\n", '', shell_exec('git describe --tags')); $version = explode('-', $hash_version); $array = var_export( array( 'app_version' => $version[0], 'build_version' => $version[1], 'hash_version' => $version[2], 'full_hash' => $hash_version), true ); // Construct our file content $content = <<<CON <?php return $array; CON; // And finally write the file and output the current version \File::put($versionFile, $content); $this->line('Setting version: '. config('version.app_version').' build '.config('version.build_version').' ('.config('version.hash_version').')'); } /** * Get the console command arguments. * * @return array */ protected function getArguments() { return array( ); } /** * Get the console command options. * * @return array */ protected function getOptions() { return array( ); } }