<?php
namespace nur\tools\compctl;

use nur\msg;

class IdeaProject {
  const PROJECT_PREFIX = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="PhpServers">
    <servers>
      <server host="localhost" name="localhost" port="7081" use_path_mappings="true">
        <path_mappings>
          <mapping local-root="\$PROJECT_DIR\$" remote-root="/var/www/app" />
EOT;
  const PROJECT_SUFFIX = <<<EOT
        </path_mappings>
      </server>
    </servers>
  </component>
</project>
EOT;


  function sync(ConfigFile $config, string $branch, bool $inplace=false): bool {
    if ($inplace) return false;
    [$deps, $isUrls, $notFoundUrls,
    ] = $config->getDeps($branch);
    if ($deps !== null) {
      msg::info("A reporter dans .idea/workspace.xml");
      echo self::PROJECT_PREFIX."\n";
      foreach ($deps as $dep) {
        echo <<<EOT
          <mapping local-root="\$PROJECT_DIR$/vendor/$dep[libname]" remote-root="/var/www/$dep[projname]" />
EOT;
        echo "\n";
      }
      echo self::PROJECT_SUFFIX."\n";
    }
    return false;
  }
}
