[Tizen] Add CoreCLR tests BuildTools v3.1.3 for armel,arm64
[platform/upstream/coreclr.git] / .packages / newtonsoft.json / 7.0.1 / tools / install.ps1
1 param($installPath, $toolsPath, $package, $project)
2
3 # open json.net splash page on package install
4 # don't open if json.net is installed as a dependency
5
6 try
7 {
8   $url = "http://www.newtonsoft.com/json/install?version=" + $package.Version
9   $dte2 = Get-Interface $dte ([EnvDTE80.DTE2])
10
11   if ($dte2.ActiveWindow.Caption -eq "Package Manager Console")
12   {
13     # user is installing from VS NuGet console
14     # get reference to the window, the console host and the input history
15     # show webpage if "install-package newtonsoft.json" was last input
16
17     $consoleWindow = $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow])
18
19     $props = $consoleWindow.GetType().GetProperties([System.Reflection.BindingFlags]::Instance -bor `
20       [System.Reflection.BindingFlags]::NonPublic)
21
22     $prop = $props | ? { $_.Name -eq "ActiveHostInfo" } | select -first 1
23     if ($prop -eq $null) { return }
24   
25     $hostInfo = $prop.GetValue($consoleWindow)
26     if ($hostInfo -eq $null) { return }
27
28     $history = $hostInfo.WpfConsole.InputHistory.History
29
30     $lastCommand = $history | select -last 1
31
32     if ($lastCommand)
33     {
34       $lastCommand = $lastCommand.Trim().ToLower()
35       if ($lastCommand.StartsWith("install-package") -and $lastCommand.Contains("newtonsoft.json"))
36       {
37         $dte2.ItemOperations.Navigate($url) | Out-Null
38       }
39     }
40   }
41   else
42   {
43     # user is installing from VS NuGet dialog
44     # get reference to the window, then smart output console provider
45     # show webpage if messages in buffered console contains "installing...newtonsoft.json" in last operation
46
47     $instanceField = [NuGet.Dialog.PackageManagerWindow].GetField("CurrentInstance", [System.Reflection.BindingFlags]::Static -bor `
48       [System.Reflection.BindingFlags]::NonPublic)
49
50     $consoleField = [NuGet.Dialog.PackageManagerWindow].GetField("_smartOutputConsoleProvider", [System.Reflection.BindingFlags]::Instance -bor `
51       [System.Reflection.BindingFlags]::NonPublic)
52
53     if ($instanceField -eq $null -or $consoleField -eq $null) { return }
54
55     $instance = $instanceField.GetValue($null)
56
57     if ($instance -eq $null) { return }
58
59     $consoleProvider = $consoleField.GetValue($instance)
60     if ($consoleProvider -eq $null) { return }
61
62     $console = $consoleProvider.CreateOutputConsole($false)
63
64     $messagesField = $console.GetType().GetField("_messages", [System.Reflection.BindingFlags]::Instance -bor `
65       [System.Reflection.BindingFlags]::NonPublic)
66     if ($messagesField -eq $null) { return }
67
68     $messages = $messagesField.GetValue($console)
69     if ($messages -eq $null) { return }
70
71     $operations = $messages -split "=============================="
72
73     $lastOperation = $operations | select -last 1
74
75     if ($lastOperation)
76     {
77       $lastOperation = $lastOperation.ToLower()
78
79       $lines = $lastOperation -split "`r`n"
80
81       $installMatch = $lines | ? { $_.StartsWith("------- installing...newtonsoft.json ") } | select -first 1
82
83       if ($installMatch)
84       {
85         $dte2.ItemOperations.Navigate($url) | Out-Null
86       }
87     }
88   }
89 }
90 catch
91 {
92   try
93   {
94     $pmPane = $dte2.ToolWindows.OutputWindow.OutputWindowPanes.Item("Package Manager")
95
96     $selection = $pmPane.TextDocument.Selection
97     $selection.StartOfDocument($false)
98     $selection.EndOfDocument($true)
99
100     if ($selection.Text.StartsWith("Attempting to gather dependencies information for package 'Newtonsoft.Json." + $package.Version + "'"))
101     {
102       $dte2.ItemOperations.Navigate($url) | Out-Null
103     }
104   }
105   catch
106   {
107     # stop potential errors from bubbling up
108     # worst case the splash page won't open  
109   }
110 }
111
112 # still yolo