本文整理匯總了TypeScript中vsts-task-lib/task.checkPath函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript checkPath函數的具體用法?TypeScript checkPath怎麽用?TypeScript checkPath使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了checkPath函數的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: getTemplateFileLocation
public getTemplateFileLocation(packerHost: definitions.IPackerHost): string {
if(!!this._templateFileLocation) {
return this._templateFileLocation;
}
var taskParameters = packerHost.getTaskParameters();
var osType = taskParameters.osType;
var imageType = taskParameters.baseImageSource;
if(taskParameters.isManagedImage)
{
imageType = imageType + ".managed"
}
var templateKey = util.format("%s-%s", osType, imageType);
if(this._builtInTemplateFiles.has(templateKey)) {
var initialTemplateFileLocation = this._builtInTemplateFiles.get(templateKey);
tl.checkPath(initialTemplateFileLocation, tl.loc("BuiltInTemplateNotFoundErrorMessagePathName", templateKey));
// move file to a temp folder - this is a cautionary approach so that previous packer execution which still has handle on template does not cause any problem
this.moveTemplateFile(initialTemplateFileLocation, packerHost.getStagingDirectory());
this.updateTemplateBuilderSection(taskParameters.additionalBuilderParameters);
return this._templateFileLocation;
}
throw (tl.loc("OSTypeNotSupported", osType));
}
示例2: getTemplateFileLocation
public getTemplateFileLocation(packerHost: definitions.IPackerHost): string {
if(!!this._templateFileLocation) {
return this._templateFileLocation;
}
var initialTemplateFileLocation = packerHost.getTaskParameters().customTemplateLocation;
tl.checkPath(initialTemplateFileLocation, tl.loc("CustomTemplateNotFoundErrorMessagePathName", initialTemplateFileLocation));
this._templateFileLocation = initialTemplateFileLocation;
return this._templateFileLocation;
}
示例3: getTemplateFileLocation
public getTemplateFileLocation(packerHost: definitions.IPackerHost): string {
if(!!this._templateFileLocation) {
return this._templateFileLocation;
}
var initialTemplateFileLocation = packerHost.getTaskParameters().customTemplateLocation;
tl.checkPath(initialTemplateFileLocation, tl.loc("CustomTemplateNotFoundErrorMessagePathName", initialTemplateFileLocation));
// move file to a temp folder - this is a cautionary approach so that previous packer execution which still has handle on template does not cause any problem
this.moveTemplateFile(initialTemplateFileLocation, packerHost.getStagingDirectory());
return this._templateFileLocation;
}
示例4: findAndroidTool
const apksigning = (fn: string) => {
// file must exist
tl.checkPath(fn, 'file to sign');
let apksigner = tl.getInput('apksignerLocation', false);
// if the tool path is not set, let's find one (anyone) from the SDK folder
if (!apksigner) {
apksigner = findAndroidTool('apksigner');
}
const apksignerRunner = tl.tool(apksigner);
// Get keystore file path for signing
const keystoreFile = tl.getTaskVariable('KEYSTORE_FILE_PATH');
// Get keystore alias
const keystoreAlias = tl.getInput('keystoreAlias', true);
const keystorePass = tl.getInput('keystorePass', false);
const keyPass = tl.getInput('keyPass', false);
const apksignerArguments = tl.getInput('apksignerArguments', false);
apksignerRunner.arg(['sign', '--ks', keystoreFile]);
if (keystorePass) {
apksignerRunner.arg(['--ks-pass', 'pass:' + keystorePass]);
}
if (keystoreAlias) {
apksignerRunner.arg(['--ks-key-alias', keystoreAlias]);
}
if (keyPass) {
apksignerRunner.arg(['--key-pass', 'pass:' + keyPass]);
}
if (apksignerArguments) {
apksignerRunner.line(apksignerArguments);
}
apksignerRunner.arg([fn]);
return apksignerRunner.exec(null);
};
示例5: run
async function run() {
try {
tl.debug("Starting Tokenizer task");
// get the task vars
var sourcePath = tl.getPathInput("sourcePath");
if (!sourcePath || sourcePath.length === 0) {
sourcePath = tl.getVariable("Build.SourcesDirectory");
}
// clear leading and trailing quotes for paths with spaces
sourcePath = sourcePath.replace(/"/g, "");
// remove trailing slash
if (sourcePath.endsWith("\\") || sourcePath.endsWith("/")) {
tl.debug("Trimming separator off sourcePath");
sourcePath = sourcePath.substr(0, sourcePath.length - 1);
}
tl.checkPath(sourcePath, "sourcePath");
let filePattern = tl.getInput("filePattern", true);
let tokenizeType = tl.getInput("tokenizeType", true);
let includes = tl.getInput("includes", false);
let excludes = tl.getInput("excludes", false);
if (!includes) {
includes = '';
}
if (!excludes) {
excludes = '';
}
tl.debug(`sourcePath: [${sourcePath}]`);
tl.debug(`filePattern: [${filePattern}]`);
tl.debug(`tokenizeType: [${tokenizeType}]`);
tl.debug(`includes: [${includes}]`);
tl.debug(`excludes: [${excludes}]`);
// only one or the other can be specified
if (includes && includes.length > 0 && excludes && excludes.length > 0) {
throw `You cannot specify includes and excludes - please specify one or the other`;
}
if (!filePattern || filePattern.length === 0) {
filePattern = "*.*";
}
tl.debug(`Using [${filePattern}] as filePattern`);
// create a glob removing any spurious quotes
if (os.platform() !== "win32") {
// replace \ with /
filePattern = filePattern.replace(/\\/g, "/");
}
// get the files
let files = tl.findMatch(sourcePath, filePattern);
if (!files || files.length === 0) {
let msg = `Could not find files with glob [${filePattern}].`;
if (os.platform() !== "win32") {
tl.warning("No files found for pattern. Non-windows file systems are case sensitvive, so check the case of your path and file patterns.");
}
tl.setResult(tl.TaskResult.Failed, msg);
}
// comma-split the include and excludes
let includeSet: Set<string>, excludeSet: Set<string>;
if (includes && includes.length > 0) {
includeSet = new Set(includes.split(','));
tl.debug(`Includeset has ${includeSet.size} elements`);
}
if (excludes && excludes.length > 0) {
excludeSet = new Set(excludes.split(','));
tl.debug(`Excludeset has ${excludeSet.size} elements`);
}
for (var i = 0; i < files.length; i++) {
let file = files[i];
console.info(`Starting tokenization in [${file}]`);
let contents = fs.readFileSync(file).toString();
// remove BOM if present
contents = contents.replace(String.fromCharCode(65279), '');
let json = JSON.parse(contents);
// find the include properties recursively
replaceProps(json, '', includeSet, excludeSet);
tl.debug("Writing new values to file...");
// make the file writable
sh.chmod(666, file);
fs.writeFileSync(file, JSON.stringify(json, null, 2));
}
}
catch (err) {
let msg = err;
if (err.message) {
msg = err.message;
}
tl.setResult(tl.TaskResult.Failed, msg);
}
//.........這裏部分代碼省略.........
示例6: resolveWildcardPath
export function resolveWildcardPath(pattern: string, allowEmptyWildcardMatch?: boolean): string[] {
let isWindows = os.platform() === "win32";
// Resolve files for the specified value or pattern
let filesList: string[];
// empty patterns match nothing (otherwise they will effectively match the current directory)
if (!pattern) {
filesList = [];
}
else if (pattern.indexOf("*") === -1 && pattern.indexOf("?") === -1) {
// No pattern found, check literal path to a single file
tl.checkPath(pattern, "files");
// Use the specified single file
filesList = [pattern];
} else {
let firstWildcardIndex = function (str) {
let idx = str.indexOf("*");
let idxOfWildcard = str.indexOf("?");
if (idxOfWildcard > -1) {
return (idx > -1) ?
Math.min(idx, idxOfWildcard) : idxOfWildcard;
}
return idx;
};
// Find app files matching the specified pattern
tl.debug("Matching glob pattern: " + pattern);
// First find the most complete path without any matching patterns
let idx = firstWildcardIndex(pattern);
tl.debug("Index of first wildcard: " + idx);
let findPathRoot = path.dirname(pattern.slice(0, idx));
tl.debug("find root dir: " + findPathRoot);
// Now we get a list of all files under this root
let allFiles = tl.find(findPathRoot);
// Now matching the pattern against all files
// Turn off a bunch of minimatch features to replicate the behavior of Find-Files in the old PowerShell tasks
let patternFilter = tl.filter(
pattern, {
matchBase: true,
nobrace: true,
noext: true,
nocomment: true,
nonegate: true,
nocase: isWindows,
dot: isWindows,
});
filesList = allFiles.filter(patternFilter);
// Avoid matching anything other than files
filesList = filesList.filter(x => tl.stats(x).isFile());
// Fail if no matching .sln files were found
if (!allowEmptyWildcardMatch && (!filesList || filesList.length === 0)) {
throw new Error("No matching files were found with search pattern: " + pattern);
}
}
if (!isWindows) {
return filesList;
}
else {
return filesList.map(file => file.split("/").join("\\"));
}
}
示例7: resolveWildcardPath
export function resolveWildcardPath(
pattern: string,
allowEmptyWildcardMatch?: boolean,
includeFolders?: boolean): string[] {
const isWindows = tl.osType() === "Windows_NT";
// Resolve files for the specified value or pattern
let filesList: string[];
// empty patterns match nothing (otherwise they will effectively match the current directory)
if (!pattern) {
filesList = [];
}
else if (pattern.indexOf("*") === -1 && pattern.indexOf("?") === -1) {
// No pattern found, check literal path to a single file
tl.checkPath(pattern, "files");
// Use the specified single file
filesList = [pattern];
} else {
const firstWildcardIndex = function (str) {
const idx = str.indexOf("*");
const idxOfWildcard = str.indexOf("?");
if (idxOfWildcard > -1) {
return (idx > -1) ?
Math.min(idx, idxOfWildcard) : idxOfWildcard;
}
return idx;
};
// Find app files matching the specified pattern
tl.debug("Matching glob pattern: " + pattern);
// First find the most complete path without any matching patterns
const idx = firstWildcardIndex(pattern);
tl.debug("Index of first wildcard: " + idx);
// include the wildcard character because:
// dirname(c:\foo\bar\) => c:\foo (which will make find() return a bunch of stuff we know we'll discard)
// dirname(c:\foo\bar\*) => c:\foo\bar
const findPathRoot = path.dirname(pattern.slice(0, idx + 1));
tl.debug("find root dir: " + findPathRoot);
// Now we get a list of all files under this root
const allFiles = tl.find(findPathRoot);
// Now matching the pattern against all files
// Turn off a bunch of minimatch features to replicate the behavior of Find-Files in the old PowerShell tasks
const patternFilter = tl.filter(
pattern, {
matchBase: true,
nobrace: true,
noext: true,
nocomment: true,
nonegate: true,
nocase: isWindows,
dot: isWindows,
});
filesList = allFiles.filter(patternFilter);
// Avoid matching anything other than files
if (!includeFolders) {
filesList = filesList.filter((x) => tl.stats(x).isFile());
} else {
filesList = filesList.filter((x) => tl.stats(x).isFile() || tl.stats(x).isDirectory());
}
// Fail if no matching .sln files were found
if (!allowEmptyWildcardMatch && (!filesList || filesList.length === 0)) {
throw new Error(tl.loc("Error_NoMatchingFilesFoundForPattern", pattern));
}
}
if (!isWindows) {
return filesList;
}
else {
return filesList.map((file) => file.split("/").join("\\"));
}
}
示例8: run
async function run() {
try {
tl.setResourcePath(path.join(__dirname, 'task.json'));
//read inputs
const project: string | null = tl.getPathInput('project', true);
const target: string | null = tl.getInput('target');
const outputDir: string | null = tl.getInput('outputDir');
const configuration: string | null = tl.getInput('configuration');
const createAppPackage: boolean | null = tl.getBoolInput('createAppPackage');
const clean: boolean | null = tl.getBoolInput('clean');
const msbuildArguments: string| null = tl.getInput('msbuildArguments');
// find jdk to be used during the build
const jdkSelection: string = tl.getInput('jdkSelection') || 'JDKVersion'; // fall back to JDKVersion for older version of tasks
let specifiedJavaHome: string | null | undefined = null;
let javaTelemetryData: { jdkVersion: string } | null = null;
if (jdkSelection === 'JDKVersion') {
tl.debug('Using JDK version to find JDK path');
const jdkVersion: string | null = tl.getInput('jdkVersion');
const jdkArchitecture: string | null = tl.getInput('jdkArchitecture');
javaTelemetryData = { jdkVersion };
if (jdkVersion !== 'default') {
specifiedJavaHome = javacommons.findJavaHome(jdkVersion, jdkArchitecture);
}
} else {
tl.debug('Using path from user input to find JDK');
specifiedJavaHome = tl.getPathInput('jdkUserInputPath', true, true);
javaTelemetryData = { jdkVersion: "custom" };
}
javacommons.publishJavaTelemetry('XamarinAndroid', javaTelemetryData);
//find build tool path to use
let buildToolPath: string | undefined;
const buildLocationMethod: string = tl.getInput('msbuildLocationMethod') || 'version';
const buildToolLocation: string | null = tl.getPathInput('msbuildLocation');
if (buildToolLocation) {
// msbuildLocation was specified, use it for back compat
if (buildToolLocation.endsWith('xbuild') || buildToolLocation.endsWith('msbuild')) {
buildToolPath = buildToolLocation;
} else {
// use xbuild for back compat if tool folder path is specified
buildToolPath = path.join(buildToolLocation, 'xbuild');
}
tl.checkPath(buildToolPath, 'build tool');
} else if (buildLocationMethod === 'version') {
// msbuildLocation was not specified, look up by version
const msbuildVersion: string = tl.getInput('msbuildVersion');
buildToolPath = await msbuildHelpers.getMSBuildPath(msbuildVersion);
}
if (!buildToolPath) {
throw tl.loc('MSB_BuildToolNotFound');
}
tl.debug('Build tool path = ' + buildToolPath);
// Resolve files for the specified value or pattern
const filesList: string[] = tl.findMatch('', project, { followSymbolicLinks: false, followSpecifiedSymbolicLink: false });
// Fail if no matching .csproj files were found
if (!filesList || filesList.length === 0) {
throw tl.loc('NoMatchingProjects', project);
}
for (const file of filesList) {
try {
// run the build for each matching project
const buildRunner: ToolRunner = tl.tool(buildToolPath);
buildRunner.arg(file);
buildRunner.argIf(clean, '/t:Clean');
buildRunner.argIf(target, '/t:' + target);
buildRunner.argIf(createAppPackage, '/t:PackageForAndroid');
if (msbuildArguments) {
buildRunner.line(msbuildArguments);
}
buildRunner.argIf(outputDir, '/p:OutputPath=' + outputDir);
buildRunner.argIf(configuration, '/p:Configuration=' + configuration);
buildRunner.argIf(specifiedJavaHome, '/p:JavaSdkDirectory=' + specifiedJavaHome);
await buildRunner.exec();
} catch (err) {
throw tl.loc('XamarinAndroidBuildFailed', err);
}
tl.setResult(tl.TaskResult.Succeeded, tl.loc('XamarinAndroidSucceeded'));
}
} catch (err) {
tl.setResult(tl.TaskResult.Failed, err);
}
}
示例9: resolveWildcardPath
export function resolveWildcardPath(pattern: string, allowEmptyWildcardMatch?: boolean): string[] {
// Resolve files for the specified value or pattern
var filesList: string[];
if (pattern.indexOf('*') == -1 && pattern.indexOf('?') == -1) {
// No pattern found, check literal path to a single file
tl.checkPath(pattern, 'files');
// Use the specified single file
filesList = [pattern];
} else {
var firstWildcardIndex = function (str) {
var idx = str.indexOf('*');
var idxOfWildcard = str.indexOf('?');
if (idxOfWildcard > -1) {
return (idx > -1) ?
Math.min(idx, idxOfWildcard) : idxOfWildcard;
}
return idx;
}
// Find app files matching the specified pattern
tl.debug('Matching glob pattern: ' + pattern);
// First find the most complete path without any matching patterns
var idx = firstWildcardIndex(pattern);
tl.debug('Index of first wildcard: ' + idx);
var findPathRoot = path.dirname(pattern.slice(0, idx));
tl.debug('find root dir: ' + findPathRoot);
// Now we get a list of all files under this root
var allFiles = tl.find(findPathRoot);
let isWindows = os.platform() === 'win32';
let toPosixPath: (string) => string = _ => _;
if (isWindows) {
// minimatch assumes paths use /, so on Windows, make paths use /
// This needs to be done both to the pattern and to the filenames.
toPosixPath = (path: string) => path.replace("\\", "/");
}
// Now matching the pattern against all files
// Turn off a bunch of minimatch features to replicate the be
let patternFilter = tl.filter(
toPosixPath(pattern), {
matchBase: true,
nobrace: true,
noext: true,
nocomment: true,
nonegate: true,
nocase: isWindows,
dot: isWindows
});
filesList = allFiles.filter((file, index, array) => patternFilter(toPosixPath(file), index, array));
// Fail if no matching .sln files were found
if (!allowEmptyWildcardMatch && (!filesList || filesList.length == 0)) {
throw new Error('No matching files were found with search pattern: ' + pattern);
}
}
return filesList;
}