PsHg.psm1


$PsHgStylePath = Join-Path -Path $PSScriptRoot -ChildPath 'PsHg.style' -Resolve
$PsHg? = $true

# These types have a `ChangesetID ID` property, so let's expose `NodeID` and `Revision` properties.
foreach( $typeName in @( 'PsHg.BranchInfo', 'PsHg.ChangesetInfo', 'PsHg.BookmarkInfo', 'PsHg.TagInfo' ) )
{
    if( (Get-TypeData -TypeName $typeName) )
    {
        Remove-TypeData -TypeName $typeName
    }
    Update-TypeData -MemberType ScriptProperty -MemberName 'NodeID' -Value { $this.ID.NodeID } -TypeName $typeName
    Update-TypeData -MemberType ScriptProperty -MemberName 'Revision' -Value { $this.ID.Revision } -TypeName $typeName
}

Update-TypeData -MemberType AliasProperty -MemberName 'Node' -Value 'NodeID' -TypeName 'PsHg.TagInfo'

# Backwards compatible aliases.
Update-TypeData -MemberType AliasProperty -MemberName 'ChangesetID' -Value 'ID' -TypeName 'PsHg.BranchInfo'
Update-TypeData -MemberType AliasProperty -MemberName 'ChangesetID' -Value 'ID' -TypeName 'PsHg.BookmarkInfo'

# Backwards-compatible property.
Update-TypeData -MemberType ScriptProperty -MemberName 'Node' -Value { $this.ID.NodeID } -TypeName 'PsHg.ChangesetInfo'

if( (Get-TypeData -TypeName 'PsHg.ChangesetID') )
{
    Remove-TypeData -TypeName 'PsHg.ChangesetID'
}
Update-TypeData -MemberType AliasProperty -MemberName 'Node' -Value 'NodeID' -TypeName 'PsHg.ChangesetID'
Update-TypeData -MemberType AliasProperty -MemberName 'ID' -Value 'NodeID' -TypeName 'PsHg.ChangesetID'

Get-ChildItem -Path (Join-Path -Path $PSScriptRoot -ChildPath 'Functions') | 
    ForEach-Object {
        Write-Verbose "Importing sub-module $(Split-Path -Leaf $_)."
        . $_.FullName
    }

Export-ModuleMember -Function * -Cmdlet * -Variable * -Alias *