Initial commit

This commit is contained in:
John Doty 2012-03-22 07:16:09 -07:00
commit a491ef2093
813 changed files with 345031 additions and 0 deletions

View file

@ -0,0 +1,141 @@
# These bits of profile courtesy of http://winterdom.com/
#
# http://winterdom.com/2008/01/modifyingthehomeinpowershell
# Set the $HOME variable for our use
# and make powershell recognize ~\ as $HOME
# in paths
#
set-variable -name HOME -value (resolve-path $env:Home) -force
(get-psprovider FileSystem).Home = $HOME
# Based on http://winterdom.com/2008/08/mypowershellprompt
function shorten-path([string] $path)
{
$loc = $path.Replace($HOME, '~')
# remove prefix for UNC paths
$loc = $loc -replace '^[^:]+::', ''
# make path shorter like tabs in Vim,
# handle paths starting with \\ and . correctly
return ($loc -replace '\\(\.?)([^\\]{3})[^\\]*(?=\\)','\$1$2')
}
function prompt
{
# our theme
$ok = $?
$cdelim = [ConsoleColor]::DarkCyan
$chost = [ConsoleColor]::Green
$cloc = $csym = [ConsoleColor]::Cyan
if (-not $ok) { $csym = [ConsoleColor]::Red; }
write-host "$([char]0x0A7) " -n -f $csym
write-host ([net.dns]::GetHostName()) -n -f $chost
write-host ' {' -n -f $cdelim
write-host (shorten-path (pwd).Path) -n -f $cloc
write-host '}' -n -f $cdelim
return ' '
}
function Get-TfsWorkspace(
[string] $path = "."
)
{
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
function InitServerAndWorkspaceFromWSInfo($wsInfo)
{
$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($wsInfo.ServerUri.AbsoluteUri)
$vcs = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
return $vcs.GetWorkspace($wsInfo)
}
# is there only 1 workspace in our cache file? If so, use that one regardless of the hint
$workspaceInfos = [Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.GetAllLocalWorkspaceInfo()
if ($workspaceInfos.Length -eq 1)
{
return InitServerAndWorkspaceFromWSInfo($workspaceInfos[0])
}
$workspaceInfos = [Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.GetLocalWorkspaceInfoRecursively($path)
if ($workspaceInfos.Length -gt 1)
{
throw 'More than one workspace matches the workspace hint "{0}": {1}' -f
$path, [string]::join(', ', @($workspaceInfos | %{ $_.Name}))
}
elseif ($workspaceInfos.Length -eq 1)
{
return InitServerAndWorkspaceFromWSInfo($workspaceInfos[0])
}
else
{
throw "Could not figure out a workspace based on $path"
}
}
function Get-TfsHistory(
[string] $path,
[switch] $raw
)
{
$workspace = Get-TfsWorkspace $path
$vcs = $workspace.VersionControlServer
$serverPath = $workspace.GetServerItemForLocalItem($path)
$changes = $vcs.QueryHistory($serverPath, [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest, 0, [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::None, $null, $null, $null, 100, $false, $false)
if ($raw)
{
foreach($cs in $changes)
{
$cs
}
}
else
{
foreach($cs in $changes)
{
new-object PSObject -Property @{
Uri = $cs.ArtifactUri;
Comment = $cs.Comment;
Committer = $cs.Committer;
Owner = $cs.Owner;
Date = $cs.CreationDate;
Id = $cs.ChangesetId;
}
}
}
}
function get-directoryOfFileAbove($file, $start = $null)
{
if (-not $start)
{
$start = resolve-path "."
}
while(($start) -and (-not (test-path "$start\$file")))
{
$start = split-path -Parent $start
}
return $start
}
function die($message)
{
write-host -Foreground "Red" $message
exit 1
}
function add-vhd($vhdfile) {
$path = resolve-path $vhdfile
$script = "SELECT VDISK FILE=`"$path`"`r`nATTACH VDISK"
$script | diskpart
}
function remove-vhd($vhdfile) {
$path = resolve-path $vhdfile
$script = "SELECT VDISK FILE=`"$path`"`r`nDETACH VDISK"
$script | diskpart
}