Skip to content

Instantly share code, notes, and snippets.

View gaelcolas's full-sized avatar
🏠
Working from home

Gael gaelcolas

🏠
Working from home
View GitHub Profile
# Put code you'd like to run during dashboard startup here.
New-UDDashboard -Title 'a' -Pages @(
# Create a page using the menu to the right ->
# Reference the page here with Get-UDPage
New-UDPage -Name 'Select a folder' -Content {
$Page:Path = $Env:USERPROFILE
New-UDPaper -Content {
New-UDAutocomplete -id 'myPath' -Value $Page:Path -Variant filled -FullWidth -OnLoadOptions {
$options = @(
@gaelcolas
gaelcolas / kitchen.yml
Created June 8, 2022 21:43
example kitchen yaml for testing GC packages
---
# Check this doc: https://github.com/test-kitchen/kitchen-azurerm
# you may set the following environment variables:
# AZURE_CLIENT_ID="your-azure-client-id-here"
# AZURE_CLIENT_SECRET="your-client-secret-here"
# AZURE_TENANT_ID="your-azure-tenant-id-here"
# (check doc https://github.com/test-kitchen/kitchen-azurerm for more details)
driver:
name: azurerm
@gaelcolas
gaelcolas / Invoke-SamplerGit.ps1
Last active May 30, 2022 20:42
Testing a task file for git public/private repo release structure
<#
.SYNOPSIS
Executes git with the provided arguments.
.DESCRIPTION
This command executes git with the provided arguments and throws an error
if the call failed.
.PARAMETER Argument
@gaelcolas
gaelcolas / dummy jinja composite.ps1
Created April 22, 2021 15:51
basic jinja composite with explicit parameters
Configuration MyComposite {
Params (
$TemplateFilePath = 'MyJinja2Template.tpl',
$parameter1,
$parameter2
)
$tempParamFile = [io.Path]::GetTempFileName()
@gaelcolas
gaelcolas / Invoke-TestHandlerAction.ps1
Created November 7, 2018 09:49
Example of a Datum handler that can reference another datum based on its path (rough and dirty)
function Invoke-TestHandlerAction {
Param(
$Password,
$test,
$Datum,
$Node,
Configuration MyDscConfig {
# Import the module that has the 'ServerType' configuration
Import-DscResource -ModuleName Platform
# Import the module that has the 'Application' Configuration
Import-DscResource -ModuleName Product
$ConfigurationData.AllNodes.Nodename {
$ConfigurationData.Roles.($Node.Role).configurations.Foreach{
$ConfigurationName = $_
$ConfigurationParameters = $ConfigurationData.Roles.($Node.Role).($ConfigurationName)
function Global:Get-DscSplattedResource {
[CmdletBinding()]
Param(
[String]
$ResourceName,
[String]
$ExecutionName,
[hashtable]
foreach($Node in $ConfigurationData.AllNodes) {
# Retrieving the DSC Composite Resource name to include
$configurations = $ConfigurationData.Roles.($Node.Role).configurations
foreach($ConfigurationName in $configurations) {
$ConfigurationParameters = $ConfigurationData.Roles.($Node.Role).($ConfigurationName)
# Splat the Configuration Parameters defined in the Role to the Composite resource
&$ConfigurationName @ConfigurationParameters
}
}
$ConfigurationData = @{
AllNodes = @(
@{
Nodename = 'SRV01'
Role = 'ServerType1_Application'
},
@{
Nodename = 'SRV02'
Role = 'ServerType2_Application'
}
Configuration MyDSCConfig {
Node $ConfigurationData.AllNodes.nodename {
if($Node.roles -contains 'MyRole') {
# do stuff here, like calling DSC Resources
MyCompositeResource StuffForMyRole {
# ...
}
}