47 lines
1.2 KiB
PHP
Executable File
47 lines
1.2 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Knuckles\Scribe\Tools;
|
|
|
|
/**
|
|
* A home for path configurations. The important paths Scribe depends on.
|
|
*/
|
|
class PathConfig
|
|
{
|
|
public function __construct(
|
|
public string $configName = 'scribe',
|
|
// FOr lack of a better name, we'll call this `scribeDir`.
|
|
// It's sort of the cache dir, where Scribe stores its intermediate outputs.
|
|
protected ?string $scribeDir = null,
|
|
) {
|
|
if (is_null($this->scribeDir)) {
|
|
$this->scribeDir = ".{$this->configName}";
|
|
}
|
|
}
|
|
|
|
public function outputPath(?string $resolvePath = null, string $separator = '/'): string
|
|
{
|
|
if (is_null($resolvePath)) {
|
|
return $this->configName;
|
|
}
|
|
|
|
return "{$this->configName}{$separator}{$resolvePath}";
|
|
}
|
|
|
|
public function configFileName(): string
|
|
{
|
|
return "{$this->configName}.php";
|
|
}
|
|
|
|
/**
|
|
* The directory where Scribe writes its intermediate output (default is .<config> ie .scribe).
|
|
*/
|
|
public function intermediateOutputPath(?string $resolvePath = null, string $separator = '/'): string
|
|
{
|
|
if (is_null($resolvePath)) {
|
|
return $this->scribeDir;
|
|
}
|
|
|
|
return "{$this->scribeDir}{$separator}{$resolvePath}";
|
|
}
|
|
}
|