#!/usr/bin/env php
<?php

declare(strict_types=1);
/**
 * This file is part of friendsofhyperf/components.
 *
 * @link     https://github.com/friendsofhyperf/components
 * @document https://github.com/friendsofhyperf/components/blob/main/README.md
 * @contact  huangdijia@gmail.com
 */
use Symfony\Component\Finder\Finder;

foreach ([__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php'] as $file) {
    if (file_exists($file)) {
        require $file;
        break;
    }
}

$files = Finder::create()
    ->in(__DIR__ . '/../src')
    ->name('composer.json')
    ->files();

foreach ($files as $file) {
    $file = (string) $file->getRealPath();
    $component = basename(dirname($file));
    $composerJson = json_decode(file_get_contents($file));

    // foreach ($composerJson->require as $package => &$version) {
    //     if ($package == 'hyperf/engine') {
    //         continue;
    //     }
    //     if (strpos($package, 'hyperf/') === 0) {
    //         $version = '~3.1.0';
    //     }
    // }

    // Authors
    if (! isset($composerJson->authors)) {
        $composerJson->authors = [
            [
                'name' => 'huangdijia',
                'email' => 'huangdijia@gmail.com',
            ],
        ];
    }

    // License
    $composerJson->license = 'MIT';

    // Support
    if (! isset($composerJson->support)) {
        $composerJson->support = new stdClass();
    }
    $composerJson->support->issues = 'https://github.com/friendsofhyperf/components/issues';
    $composerJson->support->{'pull-request'} = 'https://github.com/friendsofhyperf/components/pulls';
    $composerJson->support->source = 'https://github.com/friendsofhyperf/components';

    // Extra
    if (! isset($composerJson->extra)) {
        $composerJson->extra = new stdClass();
    }
    $composerJson->extra->{'branch-alias'} = [
        'dev-main' => '3.1-dev',
    ];

    // Removed
    if (isset($composerJson->{'require-dev'})) {
        unset($composerJson->{'require-dev'});
    }
    if (isset($composerJson->{'autoload-dev'})) {
        unset($composerJson->{'autoload-dev'});
    }
    if (isset($composerJson->scripts)) {
        unset($composerJson->scripts);
    }

    file_put_contents(
        $file,
        json_encode($composerJson, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) . PHP_EOL
    );
}
