本文整理汇总了TypeScript中vsts-task-lib/task.match函数的典型用法代码示例。如果您正苦于以下问题:TypeScript match函数的具体用法?TypeScript match怎么用?TypeScript match使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了match函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: findDockerFile
export function findDockerFile(dockerfilepath: string): string {
if (dockerfilepath.indexOf('*') >= 0 || dockerfilepath.indexOf('?') >= 0) {
tl.debug(tl.loc('ContainerPatternFound'));
var buildFolder = tl.cwd();
var allFiles = tl.find(buildFolder);
var matchingResultsFiles = tl.match(allFiles, dockerfilepath, buildFolder, { matchBase: true });
if (!matchingResultsFiles || matchingResultsFiles.length == 0) {
throw new Error(tl.loc('ContainerDockerFileNotFound', dockerfilepath));
}
return matchingResultsFiles[0];
}
else {
tl.debug(tl.loc('ContainerPatternNotFound'));
return dockerfilepath;
}
}
示例2: resolvePath
export function resolvePath(path : string): string {
if (path.indexOf('*') >= 0 || path.indexOf('?') >= 0) {
tl.debug(tl.loc('PatternFoundInPath', path));
var rootFolder = tl.getVariable('System.DefaultWorkingDirectory');
var allPaths = tl.find(rootFolder);
var matchingResultsFiles = tl.match(allPaths, path, rootFolder, { matchBase: true });
if (!matchingResultsFiles || matchingResultsFiles.length == 0) {
throw new Error(tl.loc('CantResolvePatternInPath', path));
}
return matchingResultsFiles[0];
}
else
{
tl.debug(tl.loc('PatternNotFoundInFilePath', path));
return path;
}
}
示例3: findDockerFile
export function findDockerFile(dockerfilepath : string) : string {
if (dockerfilepath.indexOf('*') >= 0 || dockerfilepath.indexOf('?') >= 0) {
tl.debug(tl.loc('ContainerPatternFound'));
let workingDirectory = tl.getVariable('System.DefaultWorkingDirectory');
let allFiles = tl.find(workingDirectory);
let matchingResultsFiles = tl.match(allFiles, dockerfilepath, workingDirectory, { matchBase: true });
if (!matchingResultsFiles || matchingResultsFiles.length == 0) {
throw new Error(tl.loc('ContainerDockerFileNotFound', dockerfilepath));
}
return matchingResultsFiles[0];
}
else
{
tl.debug(tl.loc('ContainerPatternNotFound'));
return dockerfilepath;
}
}
示例4: findHelm
function findHelm(rootFolder: string) {
var helmPath = path.join(rootFolder, "*", helmToolName + getExecutableExtention());
var allPaths = tl.find(rootFolder);
var matchingResultsFiles = tl.match(allPaths, helmPath, rootFolder);
return matchingResultsFiles[0];
}
示例5: getFilesToCopy
// This method will find the list of matching files for the specified contents
// This logic is the same as the one used by CopyFiles task except for allowing dot folders to be copied
// This will be useful to put in the task-lib
function getFilesToCopy(sourceFolder: string, contents: string[]): string[] {
// include filter
const includeContents: string[] = [];
// exclude filter
const excludeContents: string[] = [];
// evaluate leading negations `!` on the pattern
for (const pattern of contents.map(x => x.trim())) {
let negate: boolean = false;
let numberOfNegations: number = 0;
for (const c of pattern) {
if (c === '!') {
negate = !negate;
numberOfNegations++;
} else {
break;
}
}
if (negate) {
tl.debug('exclude content pattern: ' + pattern);
const realPattern = pattern.substring(0, numberOfNegations) + path.join(sourceFolder, pattern.substring(numberOfNegations));
excludeContents.push(realPattern);
} else {
tl.debug('include content pattern: ' + pattern);
const realPattern = path.join(sourceFolder, pattern);
includeContents.push(realPattern);
}
}
// enumerate all files
let files: string[] = [];
const allPaths: string[] = tl.find(sourceFolder);
const allFiles: string[] = [];
// remove folder path
for (const p of allPaths) {
if (!tl.stats(p).isDirectory()) {
allFiles.push(p);
}
}
// if we only have exclude filters, we need add a include all filter, so we can have something to exclude.
if (includeContents.length === 0 && excludeContents.length > 0) {
includeContents.push('**');
}
tl.debug("counted " + allFiles.length + " files in the source tree");
// a map to eliminate duplicates
const pathsSeen = {};
// minimatch options
const matchOptions: tl.MatchOptions = { matchBase: true, dot: true };
if (os.platform() === 'win32') {
matchOptions.nocase = true;
}
// apply include filter
for (const pattern of includeContents) {
tl.debug('Include matching ' + pattern);
// let minimatch do the actual filtering
const matches: string[] = tl.match(allFiles, pattern, matchOptions);
tl.debug('Include matched ' + matches.length + ' files');
for (const matchPath of matches) {
if (!pathsSeen.hasOwnProperty(matchPath)) {
pathsSeen[matchPath] = true;
files.push(matchPath);
}
}
}
// apply exclude filter
for (const pattern of excludeContents) {
tl.debug('Exclude matching ' + pattern);
// let minimatch do the actual filtering
const matches: string[] = tl.match(files, pattern, matchOptions);
tl.debug('Exclude matched ' + matches.length + ' files');
files = [];
for (const matchPath of matches) {
files.push(matchPath);
}
}
return files;
}