aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-14 01:45:28 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-10-14 01:45:28 -0700
commitfc1a24ad8bb3187d17341c967353c3cc9742317a (patch)
tree094fd4759f5d67a1b0c2cb426c0fe342ac94ec89 /scripts
parentbea4c2ff4936f22b4024c2afef5e403533c7b291 (diff)
downloadvcpkg-fc1a24ad8bb3187d17341c967353c3cc9742317a.tar.gz
vcpkg-fc1a24ad8bb3187d17341c967353c3cc9742317a.zip
[vcpkg] Initial commit of powershell integration
Diffstat (limited to 'scripts')
-rw-r--r--scripts/posh-vcpkg/0.0.1/posh-vcpkg.psd131
-rw-r--r--scripts/posh-vcpkg/0.0.1/posh-vcpkg.psm139
2 files changed, 70 insertions, 0 deletions
diff --git a/scripts/posh-vcpkg/0.0.1/posh-vcpkg.psd1 b/scripts/posh-vcpkg/0.0.1/posh-vcpkg.psd1
new file mode 100644
index 000000000..3fb94fe7d
--- /dev/null
+++ b/scripts/posh-vcpkg/0.0.1/posh-vcpkg.psd1
@@ -0,0 +1,31 @@
+@{
+
+# Script module or binary module file associated with this manifest.
+ModuleToProcess = 'posh-vcpkg.psm1'
+
+# Version number of this module.
+ModuleVersion = '0.0.1'
+
+# ID used to uniquely identify this module
+GUID = '948f02ab-fc99-4a53-8335-b6556eef129b'
+
+# Minimum version of the Windows PowerShell engine required by this module
+PowerShellVersion = '5.0'
+
+FunctionsToExport = @('TabExpansion')
+CmdletsToExport = @()
+VariablesToExport = @()
+AliasesToExport = @()
+
+# Private data to pass to the module specified in RootModule/ModuleToProcess.
+# This may also contain a PSData hashtable with additional module metadata used by PowerShell.
+PrivateData =
+@{
+ PSData =
+ @{
+ # Tags applied to this module. These help with module discovery in online galleries.
+ Tags = @('vcpkg', 'tab', 'tab-completion', 'tab-expansion', 'tabexpansion')
+ }
+}
+
+}
diff --git a/scripts/posh-vcpkg/0.0.1/posh-vcpkg.psm1 b/scripts/posh-vcpkg/0.0.1/posh-vcpkg.psm1
new file mode 100644
index 000000000..25ef99609
--- /dev/null
+++ b/scripts/posh-vcpkg/0.0.1/posh-vcpkg.psm1
@@ -0,0 +1,39 @@
+param()
+
+if (Get-Module posh-vcpkg) { return }
+
+if ($PSVersionTable.PSVersion.Major -lt 5) {
+ Write-Warning ("posh-vcpkg does not support PowerShell versions before 5.0.")
+ return
+}
+
+if (Test-Path Function:\TabExpansion) {
+ Rename-Item Function:\TabExpansion VcpkgTabExpansionBackup
+}
+
+function TabExpansion($line, $lastWord) {
+ $lastBlock = [regex]::Split($line, '[|;]')[-1].TrimStart()
+
+ switch -regex ($lastBlock) {
+ "^(?<vcpkgexe>(\./|\.\\|)vcpkg(\.exe|)) (?<remaining>.*)$"
+ {
+ & $matches['vcpkgexe'] autocomplete $matches['remaining']
+ return
+ }
+
+ # Fall back on existing tab expansion
+ default {
+ if (Test-Path Function:\VcpkgTabExpansionBackup) {
+ VcpkgTabExpansionBackup $line $lastWord
+ }
+ }
+ }
+}
+
+$exportModuleMemberParams = @{
+ Function = @(
+ 'TabExpansion'
+ )
+}
+
+Export-ModuleMember @exportModuleMemberParams