Create seperate argv parser

This commit is contained in:
Tim
2025-03-19 00:19:54 +01:00
parent 61a4dcd370
commit 41bc3da4f0
2 changed files with 77 additions and 13 deletions

View File

@ -5,29 +5,43 @@ include 'includes/fileReader.php';
include 'includes/io.php';
include 'includes/includeBuilder.php';
include 'includes/includeParser.php';
include 'includes/argvParser.php';
if (count($argv) < 3) {
line('Usage: ' . __FILE__ . ' <inFile> <outFile>');
// php://stdout
$argvParser = new ArgvParser(
['d' => 'Delete outFile'],
['inFile' => 'Input file', 'outFile' => 'Output file']
);
$parsed = $argvParser->parseArgv($argv);
if ($parsed === false) {
line('Usage: ' . __FILE__ . ' ' . $argvParser->getOptionsHelp());
exit(1);
}
$fromFile = $argv[1];
if (!file_exists($fromFile)) {
line('File not found: ' . $fromFile);
$inFile = $parsed['inFile'];
if (!file_exists($inFile)) {
line('File not found: ' . $inFile);
exit(1);
}
$toFile = $argv[2];
if (file_exists($toFile)) {
line('File already exists: ' . $toFile);
unlink($toFile);
$outFile = $parsed['outFile'];
if (file_exists($outFile)) {
line('File already exists: ' . $outFile);
if ($parsed['d']) {
line('Deleting...');
unlink($outFile);
} else {
exit(1);
}
}
$includes = [];
buildIncludes($fromFile, $includes);
$lines = yieldIncludes($fromFile, $includes);
buildIncludes($inFile, $includes);
var_dump($includes);
$lines = yieldIncludes($inFile, $includes);
$toFileHandle = fopen($toFile, 'w');
$toFileHandle = fopen($outFile, 'w');
foreach ($lines as $line) {
fwrite($toFileHandle, $line);
chmod($toFile, fileperms($fromFile));
}
chmod($outFile, fileperms($inFile));
fclose($toFileHandle);