本文整理汇总了TypeScript中azure-pipelines-task-lib/task.osType函数的典型用法代码示例。如果您正苦于以下问题:TypeScript osType函数的具体用法?TypeScript osType怎么用?TypeScript osType使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了osType函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: setupIotedgedev
public static setupIotedgedev(): void {
try {
let result = tl.execSync(`${Constants.iotedgedev}`, `--version`, Constants.execSyncSilentOption);
if (result.code === 0) {
console.log(tl.loc('DependencyAlreadyInstalled', Constants.iotedgedev, result.stdout.substring(result.stdout.indexOf("version"))));
return;
}
} catch (e) {
// If exception, it means iotedgedev is not installed. Do nothing.
}
let cmds: Cmd[] = [];
let version = Constants.iotedgedevDefaultVersion;
if (tl.getVariable(Constants.iotedgedevLockVersionKey)) {
version = tl.getVariable(Constants.iotedgedevLockVersionKey);
}
tl.debug(`The specified iotedgedev version is: ${version}`);
if (tl.osType() === Constants.osTypeLinux) {
cmds = [
{ path: `sudo`, arg: `apt-get update`, execOption: Constants.execSyncSilentOption },
{ path: `sudo`, arg: `apt-get install -y python-setuptools`, execOption: Constants.execSyncSilentOption },
{ path: `sudo`, arg: `pip install ${Constants.iotedgedev}==${version}`, execOption: Constants.execSyncSilentOption },
]
} else if (tl.osType() === Constants.osTypeWindows) {
cmds = [
{ path: `pip`, arg: `install ${Constants.iotedgedev}==${version}`, execOption: Constants.execSyncSilentOption },
]
}
try {
for (let cmd of cmds) {
let result = tl.execSync(cmd.path, cmd.arg, cmd.execOption);
if (result.code !== 0) {
tl.debug(result.stderr);
}
}
} catch (e) {
// If exception, record error message to debug
tl.debug(e);
}
let result = tl.execSync(`${Constants.iotedgedev}`, `--version`, Constants.execSyncSilentOption);
if (result.code === 0) {
console.log(tl.loc('DependencyInstallSuccess', Constants.iotedgedev, result.stdout.substring(result.stdout.indexOf("version"))));
} else {
throw Error(tl.loc('DependencyInstallFail', Constants.iotedgedev));
}
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:48,代码来源:util.ts
示例2: debugOsType
public static debugOsType() {
let cmd: string[] = null;
if (tl.osType() === Constants.osTypeWindows) {
cmd = ['systeminfo', null];
} else if (tl.osType() === Constants.osTypeLinux) {
cmd = [`lsb_release`, `-a`];
}
if (cmd != null) {
try {
let result = tl.execSync(cmd[0], cmd[1], Constants.execSyncSilentOption);
tl.debug(`OS is ${result.stdout}`);
} catch (e) {
tl.debug(`Error happened when fetching os info: ${e.message}`);
}
}
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:16,代码来源:util.ts
示例3: downloadAndInstall
public async downloadAndInstall(versionInfo: VersionInfo, downloadUrl: string): Promise<void> {
if (!versionInfo || !versionInfo.getVersion() || !downloadUrl || !url.parse(downloadUrl)) {
throw tl.loc("VersionCanNotBeDownloadedFromUrl", versionInfo, downloadUrl);
}
let version = versionInfo.getVersion();
try {
try {
var downloadPath = await toolLib.downloadTool(downloadUrl)
}
catch (ex) {
throw tl.loc("CouldNotDownload", downloadUrl, ex);
}
// Extract
console.log(tl.loc("ExtractingPackage", downloadPath));
try {
var extPath = tl.osType().match(/^Win/) ? await toolLib.extractZip(downloadPath) : await toolLib.extractTar(downloadPath);
}
catch (ex) {
throw tl.loc("FailedWhileExtractingPacakge", ex);
}
// Copy folders
tl.debug(tl.loc("CopyingFoldersIntoPath", this.installationPath));
var allRootLevelEnteriesInDir: string[] = tl.ls("", [extPath]).map(name => path.join(extPath, name));
var directoriesTobeCopied: string[] = allRootLevelEnteriesInDir.filter(path => fs.lstatSync(path).isDirectory());
directoriesTobeCopied.forEach((directoryPath) => {
tl.cp(directoryPath, this.installationPath, "-rf", false);
});
// Copy files
try {
if (this.packageType == utils.Constants.sdk && this.isLatestInstalledVersion(version)) {
tl.debug(tl.loc("CopyingFilesIntoPath", this.installationPath));
var filesToBeCopied = allRootLevelEnteriesInDir.filter(path => !fs.lstatSync(path).isDirectory());
filesToBeCopied.forEach((filePath) => {
tl.cp(filePath, this.installationPath, "-f", false);
});
}
}
catch (ex) {
tl.warning(tl.loc("FailedToCopyTopLevelFiles", this.installationPath, ex));
}
// Cache tool
this.createInstallationCompleteFile(versionInfo);
console.log(tl.loc("SuccessfullyInstalled", this.packageType, version));
}
catch (ex) {
throw tl.loc("FailedWhileInstallingVersionAtPath", version, this.installationPath, ex);
}
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:55,代码来源:versioninstaller.ts
示例4: shouldUseVstsNuGetPush
function shouldUseVstsNuGetPush(isInternalFeed: boolean, conflictsAllowed: boolean, nugetExePath: string): boolean {
if (tl.osType() !== "Windows_NT"){
tl.debug("Running on a non-windows platform so NuGet.exe will be used.");
return false;
}
if (!isInternalFeed)
{
tl.debug("Pushing to an external feed so NuGet.exe will be used.");
return false;
}
if (commandHelper.isOnPremisesTfs())
{
tl.debug("Pushing to an onPrem environment, only NuGet.exe is supported.");
if(conflictsAllowed){
tl.warning(tl.loc("Warning_AllowDuplicatesOnlyAvailableHosted"));
}
return false;
}
const nugetOverrideFlag = tl.getVariable("NuGet.ForceNuGetForPush");
if (nugetOverrideFlag === "true") {
tl.debug("NuGet.exe is force enabled for publish.");
if(conflictsAllowed)
{
tl.warning(tl.loc("Warning_ForceNuGetCannotSkipConflicts"));
}
return false;
}
if (nugetOverrideFlag === "false") {
tl.debug("NuGet.exe is force disabled for publish.");
return true;
}
const vstsNuGetPushOverrideFlag = tl.getVariable("NuGet.ForceVstsNuGetPushForPush");
if (vstsNuGetPushOverrideFlag === "true") {
tl.debug("VstsNuGetPush.exe is force enabled for publish.");
return true;
}
if (vstsNuGetPushOverrideFlag === "false") {
tl.debug("VstsNuGetPush.exe is force disabled for publish.");
if(conflictsAllowed)
{
tl.warning(tl.loc("Warning_ForceNuGetCannotSkipConflicts"));
}
return false;
}
return true;
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:53,代码来源:nugetpublisher.ts
示例5: detectMachineOS
private detectMachineOS(): string[] {
let osSuffix = [];
let scriptRunner: trm.ToolRunner;
try {
console.log(tl.loc("DetectingPlatform"));
if (tl.osType().match(/^Win/)) {
let escapedScript = path.join(this.getCurrentDir(), 'externals', 'get-os-platform.ps1').replace(/'/g, "''");
let command = `& '${escapedScript}'`
let powershellPath = tl.which('powershell', true);
scriptRunner = tl.tool(powershellPath)
.line('-NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command')
.arg(command);
}
else {
let scriptPath = path.join(this.getCurrentDir(), 'externals', 'get-os-distro.sh');
this.setFileAttribute(scriptPath, "777");
scriptRunner = tl.tool(tl.which(scriptPath, true));
}
let result: trm.IExecSyncResult = scriptRunner.execSync();
if (result.code != 0) {
throw tl.loc("getMachinePlatformFailed", result.error ? result.error.message : result.stderr);
}
let output: string = result.stdout;
let index;
if ((index = output.indexOf("Primary:")) >= 0) {
let primary = output.substr(index + "Primary:".length).split(os.EOL)[0];
osSuffix.push(primary);
console.log(tl.loc("PrimaryPlatform", primary));
}
if ((index = output.indexOf("Legacy:")) >= 0) {
let legacy = output.substr(index + "Legacy:".length).split(os.EOL)[0];
osSuffix.push(legacy);
console.log(tl.loc("LegacyPlatform", legacy));
}
if (osSuffix.length == 0) {
throw tl.loc("CouldNotDetectPlatform");
}
}
catch (ex) {
throw tl.loc("FailedInDetectingMachineArch", JSON.stringify(ex));
}
return osSuffix;
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:53,代码来源:versionfetcher.ts
示例6: run
async function run() {
try {
taskLib.setResourcePath(path.join(__dirname, "task.json"));
if (taskLib.osType() != 'Windows_NT')
throw new Error(taskLib.loc("AI_UnsupportedOS"));
await runBuild();
}
catch (error) {
taskLib.setResult(taskLib.TaskResult.Failed, error.message);
}
}
开发者ID:Caphyon,项目名称:advinst-vsts-task,代码行数:13,代码来源:AdvinstTask.ts
示例7: addDotNetCoreToolPath
function addDotNetCoreToolPath() {
try {
let globalToolPath: string = "";
if (tl.osType().match(/^Win/)) {
globalToolPath = path.join(process.env.USERPROFILE, Constants.relativeGlobalToolPath);
} else {
globalToolPath = path.join(process.env.HOME, Constants.relativeGlobalToolPath);
}
console.log(tl.loc("PrependGlobalToolPath"));
tl.mkdirP(globalToolPath);
tl.prependPath(globalToolPath);
} catch (error) {
//nop
console.log(tl.loc("ErrorWhileSettingDotNetToolPath", JSON.stringify(error)));
}
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:17,代码来源:usedotnet.ts
示例8: run
async function run() {
try {
if (taskLib.osType() != 'Windows_NT')
throw new Error('Only Windows systems are supported.');
const performCleanup: string = taskLib.getVariable('advinst.cleanup');
taskLib.debug('advinst.cleanup = ' + performCleanup);
if (!performCleanup) {
return;
}
let licensePath = path.join(taskLib.getVariable('ProgramData'), 'Caphyon\\Advanced Installer\\license80.dat');
if (taskLib.exist(licensePath)) {
taskLib.rmRF(licensePath);
}
}
catch (error) {
taskLib.setResult(taskLib.TaskResult.Failed, error.message);
}
}
开发者ID:Caphyon,项目名称:advinst-vsts-task,代码行数:20,代码来源:AdvinstTaskCleanup.ts
示例9: Date
import Constants from "./constant";
import util from "./util";
import * as commonTelemetry from 'utility-common/telemetry';
tl.setResourcePath(path.join(__dirname, 'task.json'));
util.debugOsType();
let startTime: Date = new Date();
let action: string = tl.getInput("action", true);
let telemetryEvent = {
hashTeamProjectId: util.sha256(tl.getVariable('system.teamProjectId')),
taskType: action,
osType: tl.osType(),
buildId: tl.getVariable('build.buildId'),
isSuccess: null,
taskTime: null,
serverType: tl.getVariable('System.ServerType'),
} as TelemetryEvent;
let telemetryEnabled = (tl.getVariable(Constants.variableKeyDisableTelemetry) !== 'true');
if (!util.checkSelfInHostedServer()) telemetryEnabled = false;
async function run() {
try {
if (action === 'Build module images') {
console.log(tl.loc('BuildingModules'));
await BuildImage.run();
console.log(tl.loc('BuildingModulesFinished'));
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:31,代码来源:index.ts
示例10: 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("\\"));
}
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:86,代码来源:Utility.ts
注:本文中的azure-pipelines-task-lib/task.osType函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论