@decaf-ts/fabric-weaver
Version:
template for ts projects
44 lines • 5.67 kB
JavaScript
import { Logging } from "@decaf-ts/logging";
import path from "path";
/**
* Resolves a provided path to an absolute path.
* If the input path is already absolute, it returns it unchanged.
* If it's relative, it resolves it based on the current working directory.
*
* @param inputPath - The path to evaluate.
* @returns An absolute path.
*/
export function resolvePath(inputPath) {
return path.isAbsolute(inputPath)
? inputPath
: path.resolve(process.cwd(), inputPath);
}
/**
* @summary Adds the Fabric bin directory to the system's `PATH` environment variable.
*
* This function dynamically determines the path to the Fabric bin directory (relative to the current file's
* location) and appends it to the `PATH` environment variable. This allows command-line tools in the Fabric bin
* folder to be accessible from anywhere within the environment.
*
* @description
* The function calculates the path to the Fabric bin directory, which is located two levels up from the current
* directory (`__dirname`) and inside a `bin` folder. After calculating the path, it logs the path being added
* and updates the `PATH` environment variable so that executable files from the Fabric bin folder can be run
* directly from the command line.
*
* This operation ensures that commands such as `fabric-ca-client`, `peer`, `orderer`, and other Fabric-related
* binaries are available to execute globally, improving ease of access and functionality.
*
* @memberOf module:fabric-integration.Utils
*
* @example
* // Example of adding Fabric bin path
* addFabricToPath(); // Adds Fabric bin folder to PATH
*/
export function addFabricToPath(binPath) {
const log = Logging.for(addFabricToPath);
const fabricBinPath = binPath || path.join(__dirname, "../../bin");
log.info(`Adding Fabric bin folder to path. Path: ${fabricBinPath}`);
process.env.PATH = `${fabricBinPath}:${process.env.PATH}`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy1vbGQvcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCO0lBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDL0IsQ0FBQyxDQUFDLFNBQVM7UUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWdCO0lBQzlDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsTUFBTSxhQUFhLEdBQVcsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTNFLEdBQUcsQ0FBQyxJQUFJLENBQUMsMkNBQTJDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFFckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIHByb3ZpZGVkIHBhdGggdG8gYW4gYWJzb2x1dGUgcGF0aC5cbiAqIElmIHRoZSBpbnB1dCBwYXRoIGlzIGFscmVhZHkgYWJzb2x1dGUsIGl0IHJldHVybnMgaXQgdW5jaGFuZ2VkLlxuICogSWYgaXQncyByZWxhdGl2ZSwgaXQgcmVzb2x2ZXMgaXQgYmFzZWQgb24gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gKlxuICogQHBhcmFtIGlucHV0UGF0aCAtIFRoZSBwYXRoIHRvIGV2YWx1YXRlLlxuICogQHJldHVybnMgQW4gYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXRoKGlucHV0UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguaXNBYnNvbHV0ZShpbnB1dFBhdGgpXG4gICAgPyBpbnB1dFBhdGhcbiAgICA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBpbnB1dFBhdGgpO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEFkZHMgdGhlIEZhYnJpYyBiaW4gZGlyZWN0b3J5IHRvIHRoZSBzeXN0ZW0ncyBgUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkeW5hbWljYWxseSBkZXRlcm1pbmVzIHRoZSBwYXRoIHRvIHRoZSBGYWJyaWMgYmluIGRpcmVjdG9yeSAocmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgZmlsZSdzXG4gKiBsb2NhdGlvbikgYW5kIGFwcGVuZHMgaXQgdG8gdGhlIGBQQVRIYCBlbnZpcm9ubWVudCB2YXJpYWJsZS4gVGhpcyBhbGxvd3MgY29tbWFuZC1saW5lIHRvb2xzIGluIHRoZSBGYWJyaWMgYmluXG4gKiBmb2xkZXIgdG8gYmUgYWNjZXNzaWJsZSBmcm9tIGFueXdoZXJlIHdpdGhpbiB0aGUgZW52aXJvbm1lbnQuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgcGF0aCB0byB0aGUgRmFicmljIGJpbiBkaXJlY3RvcnksIHdoaWNoIGlzIGxvY2F0ZWQgdHdvIGxldmVscyB1cCBmcm9tIHRoZSBjdXJyZW50XG4gKiBkaXJlY3RvcnkgKGBfX2Rpcm5hbWVgKSBhbmQgaW5zaWRlIGEgYGJpbmAgZm9sZGVyLiBBZnRlciBjYWxjdWxhdGluZyB0aGUgcGF0aCwgaXQgbG9ncyB0aGUgcGF0aCBiZWluZyBhZGRlZFxuICogYW5kIHVwZGF0ZXMgdGhlIGBQQVRIYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyB0aGF0IGV4ZWN1dGFibGUgZmlsZXMgZnJvbSB0aGUgRmFicmljIGJpbiBmb2xkZXIgY2FuIGJlIHJ1blxuICogZGlyZWN0bHkgZnJvbSB0aGUgY29tbWFuZCBsaW5lLlxuICpcbiAqIFRoaXMgb3BlcmF0aW9uIGVuc3VyZXMgdGhhdCBjb21tYW5kcyBzdWNoIGFzIGBmYWJyaWMtY2EtY2xpZW50YCwgYHBlZXJgLCBgb3JkZXJlcmAsIGFuZCBvdGhlciBGYWJyaWMtcmVsYXRlZFxuICogYmluYXJpZXMgYXJlIGF2YWlsYWJsZSB0byBleGVjdXRlIGdsb2JhbGx5LCBpbXByb3ZpbmcgZWFzZSBvZiBhY2Nlc3MgYW5kIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpmYWJyaWMtaW50ZWdyYXRpb24uVXRpbHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXhhbXBsZSBvZiBhZGRpbmcgRmFicmljIGJpbiBwYXRoXG4gKiBhZGRGYWJyaWNUb1BhdGgoKTsgLy8gQWRkcyBGYWJyaWMgYmluIGZvbGRlciB0byBQQVRIXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRGYWJyaWNUb1BhdGgoYmluUGF0aD86IHN0cmluZykge1xuICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcihhZGRGYWJyaWNUb1BhdGgpO1xuICBjb25zdCBmYWJyaWNCaW5QYXRoOiBzdHJpbmcgPSBiaW5QYXRoIHx8IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vYmluXCIpO1xuXG4gIGxvZy5pbmZvKGBBZGRpbmcgRmFicmljIGJpbiBmb2xkZXIgdG8gcGF0aC4gUGF0aDogJHtmYWJyaWNCaW5QYXRofWApO1xuXG4gIHByb2Nlc3MuZW52LlBBVEggPSBgJHtmYWJyaWNCaW5QYXRofToke3Byb2Nlc3MuZW52LlBBVEh9YDtcbn1cbiJdfQ==