Skip to content

Instantly share code, notes, and snippets.

View adamdriscoll's full-sized avatar
:bowtie:

Adam Driscoll adamdriscoll

:bowtie:
View GitHub Profile
@adamdriscoll
adamdriscoll / loadPSCore.cs
Created September 6, 2019 16:40
Loading PS Core in a C# app
var exe = FindExePath("pwsh.exe");
var fileInfo = new FileInfo(exe);
var smaPath = Path.Combine(fileInfo.DirectoryName, "System.Management.Automation.dll");
Assembly.LoadFrom(smaPath);
@adamdriscoll
adamdriscoll / UDMock.Test.ps1
Created August 12, 2019 19:18
Pester test that users mocks in UD
$server = Start-UDRestApi -Port 10001 -Endpoint @(
New-UDEndpoint -Url 'user' -Method 'GET' -Endpoint {
Get-ADUser -LDAPFilter "(objectClass=user)" -ResultSetSize 100 | ConvertTo-Json
}
) -Force
Describe 'Test Mocking' {
Context 'Context' {
Mock -CommandName 'Get-ADUser' {
@(
Import-Module UniversalDashboard
Get-UDDashboard | Stop-UDDashboard
$Theme = New-UDTheme -Name "test" -Definition @{
'[type="radio"]:checked+label:after, [type="radio"].with-gap:checked+label:after' = @{
'background-color' = 'blue'
}
'[type="radio"]:checked+label:after, [type="radio"].with-gap:checked+label:before, [type="radio"].with-gap:checked+label:after' = @{
'border' = '2px solid blue'
@adamdriscoll
adamdriscoll / grid-layout.ps1
Last active March 16, 2019 18:41
grid layout
New-UDGridLayout -Layout @(@{i = 'test'; x = 0; y = 0; w = 2; h = 2}) -Content {
New-UDCard -Id 'test' -Content { "Hello" } -Title "Card"
}
@adamdriscoll
adamdriscoll / restapi.ps1
Created March 16, 2019 14:13
REST API example
Get-UDRestApi | Stop-UDRestApi
$Cache:Users = @(
[PSCustomObject]@{ Name = "Adam"; Role = "Developer"}
[PSCustomObject]@{ Name = "Frank"; Role = "Developer"}
[PSCustomObject]@{ Name = "Bill"; Role = "Developer"}
)
$Endpoints = @()
$Endpoints += New-UDEndpoint -Url "user" -Method Get -Endpoint {
@adamdriscoll
adamdriscoll / viewmodel.ps1
Created January 8, 2019 05:26
Universal Dashboard view model support
Import-Module "F:\universal-dashboard\src\UniversalDashboard\bin\Debug\UniversalDashboard.Community.psd1"
$ViewModel = New-UDViewModel -Name "Home" -Members @{
Text = 1
Icon = 'user'
Click = New-UDEndpoint -Endpoint {
$this.Text++
$this.Icon = 'group'
}
Clear = New-UDEndpoint -Endpoint {
$this.Text = 0
@adamdriscoll
adamdriscoll / extension.ts
Created December 22, 2018 10:01
Access VS Code's theme colors programmatically
import stripJsonComments = require('strip-json-comments');
var workbenchSettings = vscode.workspace.getConfiguration("workbench");
var theme = workbenchSettings.colorTheme;
var themePath = null;
var extension = vscode.extensions.all.find(x => {
var extensionTheme = x.packageJSON.contributes.themes && x.packageJSON.contributes.themes.find(y => {
return y.label === theme;
});
@adamdriscoll
adamdriscoll / influxdb.psm1
Created December 6, 2018 03:34
Function to retrieve data from InfluxDB from PowerShell
function Get-InfluxDb {
param(
[Parameter()]
$Url = 'http://localhost:8086/query?db=performance_data',
[Parameter()]
$Query
)
$Results = Invoke-RestMethod -Uri "$Url&q=$Query"
@adamdriscoll
adamdriscoll / influxdb.ps1
Created December 6, 2018 03:33
Example of InfluxDB integration into Universal Dashboard
Import-Module UniversalDashboard
Get-UDDashboard | Stop-UDDashboard
$EI = New-UDEndpointInitialization -Module (Join-Path $PSScriptRoot 'influxdb.psm1')
$Cache:NetworkStats = @(
'\network adapter(*)\bytes received/sec'
'\network adapter(*)\bytes sent/sec'
)
@adamdriscoll
adamdriscoll / CustomAction.ps1
Created August 18, 2018 20:38
Runs a custom action on install
New-Installer -ProductName "Notepad" -UpgradeCode c5b5bcbb-a94f-4490-9746-7563a454357f -OutputDirectory $PSScriptRoot -Content {
New-InstallerDirectory -PredefinedDirectoryName AppDataFolder -Content {
New-InstallerDirectory -DirectoryName "Notepad" -Content {
New-InstallerFile -Source (Join-Path $PSScriptRoot "notepad.ps1") -Id "Notepadps1"
}
}
} -CustomAction @(
New-InstallerCustomAction -FileId "Notepadps1" -RunOnInstall -CheckReturnValue
)