Initial commit
This commit is contained in:
commit
a491ef2093
813 changed files with 345031 additions and 0 deletions
141
WindowsPowershell/Profile.ps1
Normal file
141
WindowsPowershell/Profile.ps1
Normal 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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue