Friday 12 April 2013

TypeScript Compile and Minify Powershell Script

This PowerShell script is for build server processes which need to produce Javascript and minified Javascript from TypeScript files. There are enough comments to explain it:


# TSCBulkCompiler.ps1 Powershell script for recursively compiling TypeScript files
# The script finds TypeScript files recursively in a directory and compiles them

# Call from cmd line like this:
# c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -nologo -noninteractive -file C:\Temp\Minify\TSCBulkCompiler.ps1 -rootDir "C:\Temp\Minify"

# Directory argument
param($rootDir)

if ($rootDir -eq $null) {
    # Useful for debugging
    $rootDir = "C:\Temp\Minify"
}

# Files to include
$include = "*.ts"

# Files to exclude
$exclude = "*.d.ts"

write-host "TSCBulkCompiler.ps1 building TS files under: $rootDir"

# Find files with Regex filename match
$Assemblies = get-childitem $rootDir -include $include -exclude $exclude -recurse

# http://typescript.codeplex.com/
$tsc = "C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.1.1\tsc.exe"

# http://ajaxmin.codeplex.com/
$min = "C:\Program Files (x86)\Microsoft\Microsoft Ajax Minifier\AjaxMin.exe"

# Process each file
$Assemblies | ForEach-Object {

    if($_ -ne $null){  
        $Name = $_.FullName
       
        write-host "$Name"
       
        # Compile TS files
        & $tsc -target ES5 $Name
       
        # Get .js and .min.js names
        $jsName = $Name.Substring(0, $Name.Length - 2) + "js"
        $minName = $Name.Substring(0, $Name.Length - 2) + "min.js"
       
        # Minify
        & $min -JS $jsName -out $minName
    }
}

write-host "TSCBulkCompiler.ps1 complete."

Wednesday 3 April 2013

Custom GraFiX

I recently finished my latest Windows 8 app Custom GraFiX for creating custom pictures for lock screens and saving. The app is XAML/C#/SharpDX (Direct2D) and the artwork is by Doh Carrol.


Store Site