123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace App\Console\Commands;
- use Illuminate\Console\Command;
- use App\Models\User;
- use App\Utils\Helper;
- use Illuminate\Support\Facades\DB;
- class V2boardInstall extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'v2board:install';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = 'v2board 安装';
- /**
- * Create a new command instance.
- *
- * @return void
- */
- public function __construct()
- {
- parent::__construct();
- }
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- if (\File::exists(base_path() . '/.lock')) {
- abort(500, 'V2board 已安装,如需重新安装请删除目录下.lock文件');
- }
- \Artisan::call('key:generate');
- sleep(2);
- \Artisan::call('config:cache');
- DB::connection()->getPdo();
- $file = \File::get(base_path() . '/install.sql');
- if (!$file) {
- abort(500, '数据库文件不存在');
- }
- $sql = str_replace("\n", "", $file);
- $sql = preg_split("/;/", $sql);
- if (!is_array($sql)) {
- abort(500, '数据库文件格式有误');
- }
- $this->info('正在导入数据库请稍等...');
- foreach($sql as $item) {
- try {
- DB::select(DB::raw($item));
- } catch (\Exception $e) {}
- }
- $email = '';
- while (!$email) {
- $email = $this->ask('请输入管理员邮箱?');
- }
- $password = '';
- while (!$password) {
- $password = $this->ask('请输入管理员密码?');
- }
- if (!$this->registerAdmin($email, $password)) {
- abort(500, '管理员账号注册失败,请重试');
- }
-
- $this->info('一切就绪');
- \File::put(base_path() . '/.lock', time());
- }
-
- private function registerAdmin ($email, $password) {
- $user = new User();
- $user->email = $email;
- $user->password = password_hash($password, PASSWORD_DEFAULT);
- $user->v2ray_uuid = Helper::guid(true);
- $user->token = Helper::guid();
- $user->is_admin = 1;
- return $user->save();
- }
- }
|