Skip to content

Instantly share code, notes, and snippets.

View JPRuskin's full-sized avatar

James Ruskin JPRuskin

View GitHub Profile
@JPRuskin
JPRuskin / SettleUp.psm1
Last active January 4, 2024 10:50
A quick and dirty set of functions to work with SettleUp.app, along with
# See: https://docs.google.com/document/d/18mxnyYSm39cbceA2FxFLiOfyyanaBY6ogG7oscgghxU/ for some documentation
# and, for some context: https://github.com/cad0p/settleup-stripe/blob/master/functions/index.js
param(
[ValidateSet("settle-up-live", "settle-up-sandbox")]
$script:FirebaseEnvironment = "settle-up-sandbox"
)
enum currency {
GBP
USD
@JPRuskin
JPRuskin / battlenet-manifest.json
Created October 1, 2022 15:21
Steam ROM Manager manifests for non Steam games
[
{
"title": "Diablo III",
"target": "/home/deck/.local/share/Steam/steamapps/compatdata/2880652453/pfx/drive_c/Program Files (x86)/Diablo III/Diablo III.exe",
"startIn": "/home/deck/.local/share/Steam/steamapps/compatdata/2880652453/pfx/drive_c/Program Files (x86)/Diablo III/",
"launchOptions": "-launch"
}
]
@JPRuskin
JPRuskin / FileInArchive.psm1
Last active May 13, 2022 09:21
Some unfinished functions to handle CRUD in zip (/nupkg) archives.
function Find-FileInArchive {
<#
.Synopsis
Finds files matching a pattern in an archive.
.Example
Find-FileInArchive -Path "C:\Archive.zip" -like "tools/files/*-x86.exe"
.Example
Find-FileInArchive -Path $Nupkg -match "tools/files/dotnetcore-sdk-(?<Version>\d+\.\d+\.\d+)-win-x86\.exe(\.ignore)?"
@JPRuskin
JPRuskin / Update-AWSSessionToken.ps1
Last active November 7, 2022 12:02
Refreshes AWS session tokens with your MFA authentication.
function Update-AWSSessionToken {
[CmdletBinding()]
param(
# MFA Token IAM, e.g. arn:aws:iam::123456789012:mfa/james
[string]$SerialNumber = "arn:aws:iam::...",
# 6-digit output from your MFA token
[ValidateLength(6,6)]
[Parameter(Mandatory)]
[string]$Token,
@JPRuskin
JPRuskin / ConvertTo-Guid.ps1
Created January 17, 2022 11:39
Converts a string to an RFC 4122 compatible UUID.
function SwapBytes {
<#
.SYNOPSIS
Simply switches two bytes in an array of bytes
#>
param(
[Parameter(Mandatory)]
[byte[]]$Guid,
[Parameter(Mandatory)]
[int]$Left,
@JPRuskin
JPRuskin / AOC2021.md
Last active December 7, 2021 17:42
Solutions to Advent of Code 2021, probably in PowerShell.

Advent of Code 2021

CodeTree thanks to obalunenko

This gist contains some Advent of Code solutions for the 2021 season.

@JPRuskin
JPRuskin / README.md
Last active February 12, 2025 14:11
Remove old releases from a Nexus3-repository, originally from PhilSwiss/nexus-cleanup

Nexus Cleanup Logo

Nexus-Cleanup

Remove old releases from a Nexus3-repository

This Groovy-script will purge old versions (sorted by version-number) from a repository hosted on Nexus 3.x.

You can set the desired repository and a maximum amount of versions at the beginning of this script.

function Get-DeploymentTiming {
param(
[Parameter(Mandatory)]
[string]$ResourceGroupName,
[string]$DeploymentName
)
begin {
$Context = Get-AzContext
if (-not $script:Token -or $Token.ExpiresOn.LocalDateTime -lt [DateTime]::Now) {
$script:Token = Get-AzAccessToken
@JPRuskin
JPRuskin / ConnectToAzVm.ps1
Created July 13, 2021 17:57
Wrangles a VM such that you can connect to it, assuming no Public IP and an NSG blocking 3389.
# WRANGLE ResourceGroup
[CmdletBinding()]
param(
$ResourceGroupName = 'ade-test'
)
<# Readd Public IP #>
$mgtNic = Get-AzNetworkInterface -ResourceGroupName $ResourceGroupName -Name *-nic
if (-not $mgtNic.IpConfigurations[0].PublicIpAddress.Id) {
if (-not ($mgtPublicIp = Get-AzPublicIpAddress -ResourceGroupName $ResourceGroupName -Name 'tempip')) {
@JPRuskin
JPRuskin / Get-AzLabCredential.ps1
Created July 13, 2021 10:06
A function that returns a credential object, given a pair of secrets in a KeyVault
#requires -Modules Az.Accounts, Az.KeyVault
using namespace Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters
using namespace Microsoft.Azure.Commands.Common.Authentication.Abstractions
# function Get-AzLabCredential {
<#
.Synopsis
A function that returns a credential object, given a pair of secrets in a KeyVault
.Example