- Added new exception OperationException in \ncc\Exceptions to replace all generic related exceptions

- Removed unused exception `UnitsNotFoundException` in `\ncc\Exceptions` (not used)
 - Removed unused exception `NoAvailableUnitsException` in `\ncc\Exceptions` in favor for `OperationException`
 - Removed unused exception `InstallationException` in `\ncc\Exceptions` in favor for `OperationException`
 - Removed all unused exceptions from the project, reduced the number of exceptions in total.
This commit is contained in:
Netkas 2023-08-23 11:44:32 -04:00
parent 69d7b86534
commit eef360a8f7
No known key found for this signature in database
GPG key ID: 5DAF58535614062B
28 changed files with 102 additions and 500 deletions

View file

@ -8,7 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [1.0.4] - Unreleased
This update introduces major changes in the codebase, including the removal of Win32 support, and the addition of new
features.
features and reduced the number of exceptions down to 15 exceptions.
### Added
- `LICENSE.md` & `license.md` are now detected as license files in `\ncc\Classes\ComposerExtension > ComposerSourceBuiltin > convertProject()`
@ -17,6 +18,7 @@ features.
- Added a new interface class `BytecodeObjectInterface` which will be used to implement object types for compiled assets
- Added new exception `GitException` in `\ncc\Exceptions` to replace all git related exceptions
- Added new exception `PackageException` in `\ncc\Exceptions` to replace all package related exceptions
- Added new exception `OperationException` in `\ncc\Exceptions` to replace all generic related exceptions
### Fixed
- Fixed MITM attack vector in `\ncc\Classes > HttpClient > prepareCurl()`
@ -167,6 +169,10 @@ features.
- Removed unused exception `AutoloadGeneratorException` in `\ncc\Exceptions` in favor for `IOException`
- Removed unused exception `SymlinkException` in `\ncc\Exceptions` in favor for `IOException`
- Removed unused exception `PackageLockException` in `\ncc\Exceptions` in favor for `IOException`
- Removed unused exception `UnitsNotFoundException` in `\ncc\Exceptions` (not used)
- Removed unused exception `NoAvailableUnitsException` in `\ncc\Exceptions` in favor for `OperationException`
- Removed unused exception `InstallationException` in `\ncc\Exceptions` in favor for `OperationException`
- Removed all unused exceptions from the project, reduced the number of exceptions in total.

View file

@ -22,8 +22,8 @@ AuthenticationException
* AUTHENTICATION_EXCEPTION
ResourceNotFoundException
PROJECT_ALREADY_EXISTS
NO_UNITS_FOUND
- PROJECT_ALREADY_EXISTS
- NO_UNITS_FOUND
VERSION_NOT_FOUND
NO_AVAILABLE_UNITS
@ -71,7 +71,8 @@ NotSupportedException
* UNSUPPORTED_REMOTE_SOURCE_TYPE
* UNSUPPORTED_PACKAGE
RuntimeException
OperationException
RUNTIME_EXCEPTION
RUNTIME
BUILD_EXCEPTION
RUNNER_EXECUTION_EXCEPTION

View file

@ -28,7 +28,6 @@
use ncc\Enums\CompilerExtensionSupportedVersions;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Managers\ProjectManager;
use ncc\Objects\CliHelpSection;
@ -45,7 +44,6 @@
* @return void
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public static function start($args): void
@ -65,7 +63,6 @@
* @return void
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public static function createProject($args): void

View file

@ -36,12 +36,11 @@
use ncc\Exceptions\ComposerException;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\OperationException;
use ncc\Exceptions\PackageException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\RuntimeException;
use ncc\Exceptions\UserAbortedOperationException;
use ncc\Interfaces\ServiceSourceInterface;
use ncc\Managers\ProjectManager;
use ncc\ncc;
@ -78,12 +77,11 @@
* @throws ComposerException
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws NotSupportedException
* @throws OperationException
* @throws PackageException
* @throws PathNotFoundException
* @throws RuntimeException
* @throws UserAbortedOperationException
*/
public static function fetch(RemotePackageInput $packageInput): string
{
@ -113,11 +111,10 @@
* @throws ComposerException
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws NotSupportedException
* @throws OperationException
* @throws PackageException
* @throws PathNotFoundException
* @throws UserAbortedOperationException
*/
public static function fromLocal(string $path): string
{
@ -182,7 +179,6 @@
* @throws BuildException
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws NotSupportedException
* @throws PackageException
* @throws PathNotFoundException
@ -202,7 +198,7 @@
}
catch(JsonException $e)
{
throw new MalformedJsonException($composer_lock_path, $e);
throw new IOException($composer_lock_path, $e);
}
$filesystem = new Filesystem();
@ -508,8 +504,8 @@
* @return string
* @throws ComposerException
* @throws IOException
* @throws OperationException
* @throws PathNotFoundException
* @throws UserAbortedOperationException
*/
private static function require(string $vendor, string $package, ?string $version = null): string
{
@ -627,7 +623,7 @@
* @param string $path
* @param array $options
* @return void
* @throws UserAbortedOperationException
* @throws OperationException
*/
private static function prepareProcess(Process $process, string $path, array $options): void
{
@ -642,7 +638,7 @@
{
if(!Console::getBooleanInput('Do you want to continue?'))
{
throw new UserAbortedOperationException('The operation was aborted by the user');
throw new OperationException('The operation was aborted by the user');
}
// The user understands the risks and wants to continue
@ -664,7 +660,6 @@
* @param mixed $composer_package
* @return ProjectConfiguration
* @throws IOException
* @throws MalformedJsonException
* @throws PackageException
* @throws PathNotFoundException
*/

View file

@ -27,9 +27,7 @@
use ncc\Classes\HttpClient;
use ncc\Exceptions\AuthenticationException;
use ncc\Exceptions\GitException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\NetworkException;
use ncc\Exceptions\VersionNotFoundException;
use ncc\Interfaces\RepositorySourceInterface;
use ncc\Objects\DefinedRemoteSource;
use ncc\Objects\HttpRequest;
@ -50,7 +48,6 @@
* @return RepositoryQueryResults
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
*/
public static function getGitRepository(RemotePackageInput $packageInput, DefinedRemoteSource $definedRemoteSource, ?Entry $entry = null): RepositoryQueryResults
@ -82,9 +79,7 @@
* @return RepositoryQueryResults
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
* @throws VersionNotFoundException
*/
public static function getRelease(RemotePackageInput $package_input, DefinedRemoteSource $defined_remote_source, ?Entry $entry = null): RepositoryQueryResults
{
@ -98,9 +93,7 @@
* @return RepositoryQueryResults
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
* @throws VersionNotFoundException
*/
public static function getNccPackage(RemotePackageInput $packageInput, DefinedRemoteSource $definedRemoteSource, ?Entry $entry = null): RepositoryQueryResults
{
@ -116,7 +109,6 @@
* @return array
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
*/
private static function getReleases(RemotePackageInput $packageInput, DefinedRemoteSource $definedRemoteSource, ?Entry $entry = null): array
@ -188,7 +180,6 @@
* @return array
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
*/
private static function getJsonResponse(HttpRequest $httpRequest, ?Entry $entry): array
@ -215,9 +206,7 @@
* @return mixed
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
* @throws VersionNotFoundException
*/
private static function processReleases(RemotePackageInput $packageInput, DefinedRemoteSource $definedRemoteSource, ?Entry $entry): mixed
{
@ -225,7 +214,7 @@
if (count($releases) === 0)
{
throw new VersionNotFoundException('No releases found for the given repository.');
throw new GitException(sprintf('No releases found for %s/%s on %s.', $packageInput->vendor, $packageInput->package, $definedRemoteSource->host));
}
if ($packageInput->version === Versions::LATEST)
@ -269,7 +258,7 @@
if ($selected_version === null)
{
throw new VersionNotFoundException('No releases found for the given repository.');
throw new GitException(sprintf('Version %s not found for %s/%s on %s.', $packageInput->version, $packageInput->vendor, $packageInput->package, $definedRemoteSource->host));
}
}
else
@ -279,7 +268,7 @@
if (!isset($releases[$selected_version]))
{
throw new VersionNotFoundException(sprintf('No releases found for the given repository. (Selected version: %s)', $selected_version));
throw new GitException(sprintf('Version %s not found for %s/%s on %s.', $packageInput->version, $packageInput->vendor, $packageInput->package, $definedRemoteSource->host));
}
return $releases[$selected_version];

View file

@ -26,10 +26,8 @@
use ncc\Classes\HttpClient;
use ncc\Exceptions\AuthenticationException;
use ncc\Exceptions\GitException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\NetworkException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\ResourceNotFoundException;
use ncc\Interfaces\RepositorySourceInterface;
use ncc\Objects\DefinedRemoteSource;
use ncc\Objects\HttpRequest;
@ -51,7 +49,6 @@
* @return RepositoryQueryResults
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
*/
public static function getGitRepository(RemotePackageInput $packageInput, DefinedRemoteSource $definedRemoteSource, ?Entry $entry=null): RepositoryQueryResults
@ -93,9 +90,7 @@
* @return RepositoryQueryResults
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
* @throws ResourceNotFoundException
*/
public static function getRelease(RemotePackageInput $package_input, DefinedRemoteSource $defined_remote_source, ?Entry $entry = null): RepositoryQueryResults
{
@ -103,7 +98,7 @@
if(count($releases) === 0)
{
throw new ResourceNotFoundException(sprintf('No releases found for the repository %s/%s (selected version: %s)', $package_input->vendor, $package_input->package, $package_input->version));
throw new GitException(sprintf('No releases found for the repository %s/%s (selected version: %s)', $package_input->vendor, $package_input->package, $package_input->version));
}
// Query the latest package only
@ -148,7 +143,7 @@
if($selected_version === null)
{
throw new ResourceNotFoundException(sprintf('Could not find a release for %s/%s with the version %s', $package_input->vendor, $package_input->package, $package_input->version));
throw new GitException(sprintf('Could not find a release for %s/%s with the version %s', $package_input->vendor, $package_input->package, $package_input->version));
}
}
else
@ -158,7 +153,7 @@
if(!isset($releases[$selected_version]))
{
throw new ResourceNotFoundException(sprintf('Could not find a release for %s/%s with the version %s', $package_input->vendor, $package_input->package, $package_input->version));
throw new GitException(sprintf('Could not find a release for %s/%s with the version %s', $package_input->vendor, $package_input->package, $package_input->version));
}
return $releases[$selected_version];
@ -186,7 +181,6 @@
* @return array
* @throws AuthenticationException
* @throws GitException
* @throws MalformedJsonException
* @throws NetworkException
*/
private static function getReleases(string $owner, string $repository, DefinedRemoteSource $definedRemoteSource, ?Entry $entry): array

View file

@ -34,10 +34,8 @@
use ncc\Exceptions\BuildException;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Interfaces\CompilerInterface;
use ncc\Managers\ProjectManager;
use ncc\ncc;
@ -60,7 +58,6 @@
* @throws BuildException
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws NotSupportedException
* @throws PathNotFoundException
*/
@ -154,8 +151,8 @@
* @param ProjectConfiguration $configuration
* @return array
* @throws IOException
* @throws NotSupportedException
* @throws PathNotFoundException
* @throws RunnerExecutionException
*/
public static function compileExecutionPolicies(string $path, ProjectConfiguration $configuration): array
{

View file

@ -25,9 +25,9 @@
use ncc\Enums\Scopes;
use ncc\Exceptions\AuthenticationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\NoAvailableUnitsException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\OperationException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Managers\ExecutionPointerManager;
use ncc\Objects\Package\ExecutionUnit;
use ncc\Utilities\Resolver;
@ -43,9 +43,9 @@
* @return void
* @throws AuthenticationException
* @throws IOException
* @throws NoAvailableUnitsException
* @throws OperationException
* @throws PathNotFoundException
* @throws RunnerExecutionException
* @throws NotSupportedException
*/
public static function temporaryExecute(string $package, string $version, ExecutionUnit $unit): void
{

View file

@ -35,10 +35,9 @@
use ncc\Exceptions\BuildException;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\OperationException;
use ncc\Exceptions\PackageException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Exceptions\VersionNotFoundException;
use ncc\Interfaces\CompilerInterface;
use ncc\Managers\PackageLockManager;
use ncc\Objects\Package;
@ -86,6 +85,7 @@
* @param string $build_configuration
* @return void
* @throws ConfigurationException
* @throws OperationException
* @throws PackageException
*/
public function prepare(string $build_configuration=BuildConfigurationValues::DEFAULT): void
@ -279,7 +279,7 @@
$version = $package->getVersion($dependency->Version);
if($version === null)
{
throw new VersionNotFoundException('Cannot find version ' . $dependency->Version . ' for dependency ' . $dependency->Name);
throw new OperationException('Cannot find version ' . $dependency->Version . ' for dependency ' . $dependency->Name);
}
Console::outDebug(sprintf('copying shadow package %s=%s to %s', $dependency->Name, $dependency->Version, $out_path));
@ -327,7 +327,6 @@
* @throws BuildException
* @throws IOException
* @throws PathNotFoundException
* @throws RunnerExecutionException
*/
public function build(): ?Package
{
@ -469,7 +468,6 @@
* @return void
* @throws IOException
* @throws PathNotFoundException
* @throws RunnerExecutionException
*/
public function compileExecutionPolicies(): void
{

View file

@ -28,71 +28,26 @@
*/
final class ExceptionCodes
{
/**
* @see MalformedJsonException
*/
public const MALFORMED_JSON = -1705;
/**
* @see RuntimeException
*/
public const RUNTIME = -1706;
/**
* @see ConstantReadonlyException
*/
public const CONSTANT_READ_ONLY = -1709;
/**
* @see NoUnitsFoundException
*/
public const NO_UNITS_FOUND = -1715;
/**
* @see BuildException
*/
public const BUILD_EXCEPTION = -1727;
/**
* @see InstallationException
*/
public const INSTALLATION_EXCEPTION = -1730;
/**
* @see IOException
*/
public const IO_EXCEPTION = -1735;
/**
* @see VersionNotFoundException
*/
public const VERSION_NOT_FOUND = -1737;
/**
* @see RunnerExecutionException
*/
public const RUNNER_EXECUTION_EXCEPTION = -1741;
/**
* @see NoAvailableUnitsException
*/
public const NO_AVAILABLE_UNITS = -1742;
/**
* @see ComposerException
*/
public const COMPOSER_EXCEPTION = -1749;
/**
* @see UserAbortedOperationException
*/
public const USER_ABORTED_OPERATION = -1750;
/**
* @see ImportException
*/
public const IMPORT_EXCEPTION = -1757;
/**
* @see AuthenticationException
*/
@ -138,22 +93,19 @@
*/
public const INTEGRITY_EXCEPTION = -1775;
/**
* @see OperationException
*/
public const OPERATION_EXCEPTION = -1776;
/**
* All the exception codes from NCC
*/
public const All = [
self::MALFORMED_JSON,
self::RUNTIME,
self::CONSTANT_READ_ONLY,
self::NO_UNITS_FOUND,
self::BUILD_EXCEPTION,
self::INSTALLATION_EXCEPTION,
self::IO_EXCEPTION,
self::VERSION_NOT_FOUND,
self::RUNNER_EXECUTION_EXCEPTION,
self::NO_AVAILABLE_UNITS,
self::COMPOSER_EXCEPTION,
self::USER_ABORTED_OPERATION,
self::AUTHENTICATION_EXCEPTION,
self::NOT_SUPPORTED_EXCEPTION,
self::ARCHIVE_EXCEPTION,
@ -162,6 +114,7 @@
self::CONFIGURATION_EXCEPTION,
self::PACKAGE_EXCEPTION,
self::NETWORK_EXCEPTION,
self::INTEGRITY_EXCEPTION
self::INTEGRITY_EXCEPTION,
self::OPERATION_EXCEPTION
];
}

View file

@ -1,40 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class ComponentChecksumException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::COMPONENT_CHECKSUM_EXCEPTION, $previous);
}
}

View file

@ -1,39 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class InstallationException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::INSTALLATION_EXCEPTION, $previous);
}
}

View file

@ -1,40 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class MalformedJsonException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::MALFORMED_JSON, $previous);
}
}

View file

@ -1,39 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class NoAvailableUnitsException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::NO_AVAILABLE_UNITS, $previous);
}
}

View file

@ -1,39 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class NoUnitsFoundException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::NO_UNITS_FOUND, $previous);
}
}

View file

@ -22,10 +22,14 @@
namespace ncc\Exceptions;
class ResourceNotFoundException extends \Exception
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class OperationException extends Exception
{
public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, $code, $previous);
parent::__construct($message, ExceptionCodes::OPERATION_EXCEPTION, $previous);
}
}

View file

@ -1,39 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class RunnerExecutionException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::RUNNER_EXECUTION_EXCEPTION, $previous);
}
}

View file

@ -1,39 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class UserAbortedOperationException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::USER_ABORTED_OPERATION, $previous);
}
}

View file

@ -1,39 +0,0 @@
<?php
/*
* Copyright (c) Nosial 2022-2023, all rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
namespace ncc\Exceptions;
use Exception;
use ncc\Enums\ExceptionCodes;
use Throwable;
class VersionNotFoundException extends Exception
{
/**
* @param string $message
* @param Throwable|null $previous
*/
public function __construct(string $message = "", ?Throwable $previous = null)
{
parent::__construct($message, ExceptionCodes::VERSION_NOT_FOUND, $previous);
}
}

View file

@ -23,7 +23,6 @@
namespace ncc\Interfaces;
use Exception;
use ncc\Exceptions\ComponentChecksumException;
use ncc\Objects\InstallationPaths;
use ncc\Objects\Package;
use ncc\Objects\Package\Component;
@ -42,7 +41,6 @@ namespace ncc\Interfaces;
*
* @param Component $component
* @return string|null
* @throws ComponentChecksumException
*/
public function processComponent(Package\Component $component): ?string;

View file

@ -37,9 +37,9 @@
use ncc\Classes\PythonExtension\PythonRunner;
use ncc\Exceptions\AuthenticationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\NoAvailableUnitsException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\OperationException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Objects\ExecutionPointers;
use ncc\Objects\Package;
use ncc\Objects\Package\ExecutionUnit;
@ -165,8 +165,9 @@
* @param ExecutionUnit $unit
* @param bool $temporary
* @return void
* @throws AuthenticationException
* @throws IOException
* @throws RunnerExecutionException
* @throws NotSupportedException
* @throws PathNotFoundException
*/
public function addUnit(string $package, string $version, ExecutionUnit $unit, bool $temporary=false): void
@ -210,7 +211,7 @@
Runners::PYTHON_2 => Python2Runner::getFileExtension(),
Runners::PYTHON_3 => Python3Runner::getFileExtension(),
Runners::LUA => LuaRunner::getFileExtension(),
default => throw new RunnerExecutionException('The runner \'' . $unit->execution_policy->runner . '\' is not supported'),
default => throw new NotSupportedException('The runner \'' . $unit->execution_policy->runner . '\' is not supported'),
};
Console::outDebug(sprintf('bin_file=%s', $bin_file));
@ -265,7 +266,9 @@
* @param string $version
* @param string $name
* @return bool
* @throws AuthenticationException
* @throws IOException
* @throws PathNotFoundException
*/
public function removeUnit(string $package, string $version, string $name): bool
{
@ -326,6 +329,7 @@
* @param string $version
* @return array
* @throws IOException
* @throws PathNotFoundException
*/
public function getUnits(string $package, string $version): array
{
@ -363,8 +367,8 @@
* @param array $args
* @return int
* @throws IOException
* @throws NoAvailableUnitsException
* @throws RunnerExecutionException
* @throws OperationException
* @throws PathNotFoundException
*/
public function executeUnit(string $package, string $version, string $name, array $args=[]): int
{
@ -375,7 +379,7 @@
if(!file_exists($package_config_path))
{
throw new NoAvailableUnitsException('There is no available units for \'' . $package . '=' .$version .'\'');
throw new OperationException('There is no available units for \'' . $package . '=' .$version .'\'');
}
$execution_pointers = ExecutionPointers::fromArray(ZiProto::decode(IO::fread($package_config_path)));
@ -383,7 +387,7 @@
if($unit === null)
{
throw new RunnerExecutionException('The execution unit \'' . $name . '\' was not found for \'' . $package . '=' .$version .'\'');
throw new OperationException('The execution unit \'' . $name . '\' was not found for \'' . $package . '=' .$version .'\'');
}
Console::outDebug(sprintf('unit=%s', $unit->execution_policy->name));
@ -453,7 +457,6 @@
}
}
Console::outDebug(sprintf('working_directory=%s', $process->getWorkingDirectory()));
Console::outDebug(sprintf('timeout=%s', (int)$process->getTimeout()));
Console::outDebug(sprintf('silent=%s', ($unit->execution_policy->execute->silent ? 'true' : 'false')));
@ -516,10 +519,11 @@
* @param Package $package
* @param string $unit_name
* @return void
* @throws AuthenticationException
* @throws IOException
* @throws NoAvailableUnitsException
* @throws NotSupportedException
* @throws OperationException
* @throws PathNotFoundException
* @throws RunnerExecutionException
*/
public function temporaryExecute(Package $package, string $unit_name): void
{
@ -528,7 +532,7 @@
if($unit === null)
{
throw new NoAvailableUnitsException(sprintf('No execution unit named \'%s\' is available for package \'%s\'', $unit_name, $package->assembly->package));
throw new OperationException(sprintf('No execution unit named \'%s\' is available for package \'%s\'', $unit_name, $package->assembly->package));
}
// Get the required units
@ -577,8 +581,8 @@
* @param Process|null $process
* @return bool
* @throws IOException
* @throws NoAvailableUnitsException
* @throws RunnerExecutionException
* @throws OperationException
* @throws PathNotFoundException
*/
public function handleExit(string $package, string $version, ExitHandle $exit_handler, ?Process $process=null): bool
{

View file

@ -39,13 +39,11 @@
use ncc\Classes\PhpExtension\PhpInstaller;
use ncc\CLI\Main;
use ncc\Exceptions\AuthenticationException;
use ncc\Exceptions\InstallationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\OperationException;
use ncc\Exceptions\PackageException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Exceptions\VersionNotFoundException;
use ncc\Objects\DefinedRemoteSource;
use ncc\Objects\InstallationPaths;
use ncc\Objects\Package;
@ -99,12 +97,10 @@
* @return string
* @throws AuthenticationException
* @throws IOException
* @throws InstallationException
* @throws NotSupportedException
* @throws OperationException
* @throws PackageException
* @throws PathNotFoundException
* @throws RunnerExecutionException
* @throws VersionNotFoundException
*/
public function install(string $package_path, ?Entry $entry=null, array $options=[]): string
{
@ -230,7 +226,7 @@
}
catch(Exception $e)
{
throw new InstallationException('Error while creating directory, ' . $e->getMessage(), $e);
throw new IOException('Error while creating directory, ' . $e->getMessage(), $e);
}
try
@ -245,7 +241,7 @@
}
catch(Exception $e)
{
throw new InstallationException('Cannot initialize package install, ' . $e->getMessage(), $e);
throw new OperationException('Cannot initialize package install, ' . $e->getMessage(), $e);
}
// Execute the pre-installation stage before the installation stage
@ -257,7 +253,7 @@
}
catch (Exception $e)
{
throw new InstallationException('Pre installation stage failed, ' . $e->getMessage(), $e);
throw new OperationException('Pre installation stage failed, ' . $e->getMessage(), $e);
}
if($package->installer?->PreInstall !== null && count($package->installer->PreInstall) > 0)
@ -301,7 +297,7 @@
}
catch(Exception $e)
{
throw new InstallationException('Cannot process one or more components, ' . $e->getMessage(), $e);
throw new OperationException('Cannot process one or more components, ' . $e->getMessage(), $e);
}
++$current_steps;
@ -331,7 +327,7 @@
}
catch(Exception $e)
{
throw new InstallationException('Cannot process one or more resources, ' . $e->getMessage(), $e);
throw new OperationException('Cannot process one or more resources, ' . $e->getMessage(), $e);
}
++$current_steps;
@ -367,7 +363,7 @@
{
if($package->main_execution_policy === null)
{
throw new InstallationException('Cannot create symlink, no main execution policy is defined');
throw new OperationException('Cannot create symlink, no main execution policy is defined');
}
Console::outDebug(sprintf('creating symlink to %s', $package->assembly->package));
@ -388,7 +384,7 @@
}
catch (Exception $e)
{
throw new InstallationException('Post installation stage failed, ' . $e->getMessage(), $e);
throw new OperationException('Post installation stage failed, ' . $e->getMessage(), $e);
}
if($package->installer?->PostInstall !== null && count($package->installer->PostInstall) > 0)
@ -446,8 +442,8 @@
* @param string $source
* @param Entry|null $entry
* @return string
* @throws InstallationException
* @throws NotSupportedException
* @throws OperationException
* @throws PackageException
*/
public function fetchFromSource(string $source, ?Entry $entry=null): string
@ -498,7 +494,7 @@
$source = (new RemoteSourcesManager())->getRemoteSource($input->source);
if($source === null)
{
throw new InstallationException('Remote source ' . $input->source . ' is not defined');
throw new OperationException('Remote source ' . $input->source . ' is not defined');
}
$repositoryQueryResults = Functions::getRepositoryQueryResults($input, $source, $entry);
@ -613,7 +609,7 @@
* @param Entry|null $entry
* @param array $options
* @return string
* @throws InstallationException
* @throws OperationException
*/
public function installFromSource(string $source, ?Entry $entry, array $options=[]): string
{
@ -626,7 +622,7 @@
}
catch(Exception $e)
{
throw new InstallationException('Cannot install package from source, ' . $e->getMessage(), $e);
throw new OperationException('Cannot install package from source, ' . $e->getMessage(), $e);
}
}
@ -639,12 +635,10 @@
* @return void
* @throws AuthenticationException
* @throws IOException
* @throws InstallationException
* @throws NotSupportedException
* @throws OperationException
* @throws PackageException
* @throws PathNotFoundException
* @throws RunnerExecutionException
* @throws VersionNotFoundException
*/
private function processDependency(Dependency $dependency, Package $package, string $package_path, ?Entry $entry=null, array $options=[]): void
{
@ -790,7 +784,7 @@
$version = $package->getVersion($exploded[1]);
if($version === null)
{
throw new VersionNotFoundException('Version ' . $exploded[1] . ' not found for package ' . $exploded[0]);
throw new OperationException('Version ' . $exploded[1] . ' not found for package ' . $exploded[0]);
}
foreach ($version->Dependencies as $dependency)
@ -872,6 +866,7 @@
* @throws AuthenticationException
* @throws IOException
* @throws PackageException
* @throws PathNotFoundException
*/
public function uninstallPackageVersion(string $package, string $version): void
{
@ -987,7 +982,7 @@
/**
* @param Package $package
* @param InstallationPaths $paths
* @throws InstallationException
* @throws OperationException
*/
private static function initData(Package $package, InstallationPaths $paths): void
{
@ -1020,7 +1015,7 @@
}
catch (IOException $e)
{
throw new InstallationException('Cannot write to file \'' . $file . '\', ' . $e->getMessage(), $e);
throw new OperationException('Cannot write to file \'' . $file . '\', ' . $e->getMessage(), $e);
}
}
}

View file

@ -31,7 +31,6 @@
use ncc\Exceptions\BuildException;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Objects\ProjectConfiguration;
@ -69,7 +68,6 @@
* @param string $path
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public function __construct(string $path)
@ -105,7 +103,6 @@
* @param array $options
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
*/
public function initializeProject(Compiler $compiler, string $name, string $package, ?string $src=null, array $options=[]): void
{
@ -213,7 +210,6 @@
* @return void
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public function load(): void
@ -230,7 +226,6 @@
* Saves the project configuration
*
* @return void
* @throws MalformedJsonException
*/
public function save(): void
{
@ -248,7 +243,6 @@
* @return ProjectConfiguration
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public function getProjectConfiguration(): ProjectConfiguration
@ -280,7 +274,6 @@
* @throws BuildException
* @throws ConfigurationException
* @throws IOException
* @throws MalformedJsonException
* @throws NotSupportedException
* @throws PathNotFoundException
*/

View file

@ -25,7 +25,7 @@
namespace ncc\Objects;
use ncc\Enums\Versions;
use ncc\Exceptions\VersionNotFoundException;
use ncc\Exceptions\IOException;
use ncc\Objects\PackageLock\PackageEntry;
use ncc\Utilities\Console;
use ncc\Utilities\Functions;
@ -183,7 +183,7 @@
{
$version_entry = $package_entry->getVersion($version);
}
catch (VersionNotFoundException $e)
catch (IOException $e)
{
unset($e);
return false;

View file

@ -28,7 +28,6 @@
use ncc\Enums\Options\BuildConfigurationValues;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Interfaces\BytecodeObjectInterface;
@ -366,7 +365,6 @@
* @param string $path
* @param bool $bytecode
* @return void
* @throws MalformedJsonException
* @noinspection PhpUnused
*/
public function toFile(string $path, bool $bytecode=false): void
@ -386,7 +384,6 @@
* @param string $path
* @return ProjectConfiguration
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public static function fromFile(string $path): ProjectConfiguration

View file

@ -42,10 +42,9 @@
use ncc\Exceptions\ArchiveException;
use ncc\Exceptions\AuthenticationException;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\NetworkException;
use ncc\Exceptions\NotSupportedException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Managers\ConfigurationManager;
use ncc\Managers\CredentialManager;
use ncc\Managers\PackageLockManager;
@ -121,7 +120,6 @@
* @param int $flags
* @return mixed
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public static function loadJsonFile(string $path, int $flags=0): mixed
@ -140,7 +138,7 @@
* @param string $json
* @param int $flags
* @return mixed
* @throws MalformedJsonException
* @throws IOException
*/
public static function loadJson(string $json, int $flags=0): mixed
{
@ -150,7 +148,7 @@
}
catch(Throwable $e)
{
throw new MalformedJsonException($e->getMessage(), $e);
throw new IOException($e->getMessage(), $e);
}
}
@ -160,7 +158,7 @@
* @param mixed $value
* @param int $flags
* @return string
* @throws MalformedJsonException
* @throws IOException
*/
public static function encodeJson(mixed $value, int $flags=0): string
{
@ -175,7 +173,7 @@
}
catch (JsonException $e)
{
throw new MalformedJsonException($e->getMessage(), $e);
throw new IOException($e->getMessage(), $e);
}
}
@ -186,7 +184,6 @@
* @param string $path
* @param int $flags
* @return void
* @throws MalformedJsonException
*/
public static function encodeJsonFile(mixed $value, string $path, int $flags=0): void
{
@ -291,8 +288,8 @@
* @param ExecutionPolicy $policy
* @return ExecutionUnit
* @throws IOException
* @throws NotSupportedException
* @throws PathNotFoundException
* @throws RunnerExecutionException
*/
public static function compileRunner(string $path, ExecutionPolicy $policy): ExecutionUnit
{
@ -305,7 +302,7 @@
Runners::PYTHON_2 => Python2Runner::processUnit($path, $policy),
Runners::PYTHON_3 => Python3Runner::processUnit($path, $policy),
Runners::LUA => LuaRunner::processUnit($path, $policy),
default => throw new RunnerExecutionException('The runner \'' . $policy->runner . '\' is not supported'),
default => throw new NotSupportedException('The runner \'' . $policy->runner . '\' is not supported'),
};
}
@ -419,7 +416,6 @@
* @param string $path
* @return ComposerJson
* @throws IOException
* @throws MalformedJsonException
* @throws PathNotFoundException
*/
public static function loadComposerJson(string $path): ComposerJson
@ -432,7 +428,7 @@
}
catch(JsonException $e)
{
throw new MalformedJsonException('Cannot parse composer.json, ' . $e->getMessage(), $e);
throw new IOException('Cannot parse composer.json, ' . $e->getMessage(), $e);
}
}

View file

@ -25,7 +25,7 @@
use InvalidArgumentException;
use ncc\Enums\Scopes;
use ncc\Exceptions\ConfigurationException;
use ncc\Exceptions\RunnerExecutionException;
use ncc\Exceptions\OperationException;
use ncc\ThirdParty\Symfony\Process\ExecutableFinder;
class PathFinder
@ -219,7 +219,7 @@
*
* @param string $runner
* @return string
* @throws RunnerExecutionException
* @throws OperationException
*/
public static function findRunner(string $runner): string
{
@ -242,6 +242,6 @@
return $exec_path;
}
throw new RunnerExecutionException(sprintf('Unable to find \'%s\' executable', $runner));
throw new OperationException(sprintf('Unable to find \'%s\' executable', $runner));
}
}

View file

@ -26,10 +26,10 @@
namespace ncc;
use ncc\Exceptions\IOException;
use ncc\Exceptions\MalformedJsonException;
use ncc\Exceptions\PathNotFoundException;
use ncc\Objects\NccVersionInformation;
use ncc\Utilities\Functions;
use RuntimeException;
/**
* @author Zi Xing Narrakas
@ -50,7 +50,6 @@
*
* @param boolean $reload Indicates if the cached version is to be ignored and the version file to be reloaded and validated
* @return NccVersionInformation
* @throws IOException
* @throws PathNotFoundException
*/
public static function getVersionInformation(bool $reload=False): NccVersionInformation
@ -62,26 +61,26 @@
if(!file_exists(__DIR__ . DIRECTORY_SEPARATOR . 'version.json'))
{
throw new \RuntimeException('The file \'version.json\' was not found in \'' . __DIR__ . '\'');
throw new RuntimeException('The file \'version.json\' was not found in \'' . __DIR__ . '\'');
}
try
{
self::$version_information = NccVersionInformation::fromArray(Functions::loadJsonFile(__DIR__ . DIRECTORY_SEPARATOR . 'version.json', Functions::FORCE_ARRAY));
}
catch(MalformedJsonException $e)
catch(IOException $e)
{
throw new \RuntimeException('Unable to parse JSON contents of \'version.json\' in \'' . __DIR__ . '\'', $e);
throw new RuntimeException('Unable to parse JSON contents of \'version.json\' in \'' . __DIR__ . '\'', $e);
}
if(self::$version_information->Version === null)
{
throw new \RuntimeException('The version number is not specified in the version information file');
throw new RuntimeException('The version number is not specified in the version information file');
}
if(self::$version_information->Branch === null)
{
throw new \RuntimeException('The version branch is not specified in the version information file');
throw new RuntimeException('The version branch is not specified in the version information file');
}
return self::$version_information;
@ -136,7 +135,7 @@
if(!defined('NCC_INIT'))
{
/** @noinspection ClassConstantCanBeUsedInspection */
throw new \RuntimeException('NCC Must be initialized before executing ' . get_called_class() . '::getConstants()');
throw new RuntimeException('NCC Must be initialized before executing ' . get_called_class() . '::getConstants()');
}
return [