Skip to content

Instantly share code, notes, and snippets.

import { useEffect, useState } from 'react'
export type ScriptStatus = 'idle' | 'loading' | 'ready' | 'error'
export function useScript(src: string): ScriptStatus {
// Keep track of script status ("idle", "loading", "ready", "error")
const [status, setStatus] = useState<ScriptStatus>(src ? 'loading' : 'idle')
useEffect(
() => {
// Allow falsy src value if waiting on other data needed for
@geirsagberg
geirsagberg / crash dump.txt
Created December 16, 2021 10:29
Terraform crash
runtime error: invalid memory address or nil pointer dereferencegoroutine 7647 [running]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:24 +0x65
runtime/debug.PrintStack()
/usr/local/go/src/runtime/debug/stack.go:16 +0x19
github.com/hashicorp/terraform/internal/logging.PanicHandler()
/Users/distiller/project/project/internal/logging/panic.go:44 +0xb5
panic({0x2e20fa0, 0x4ae4070})
/usr/local/go/src/runtime/panic.go:1038 +0x215
github.com/hashicorp/terraform/internal/instances.(*expanderModule).onlyResourceInstances(0x10db0c7, {{}, 0x4d, {0xc000764438, 0x16}, {0xc000e69ba0, 0xb}}, {0xc0028e8e00, 0x300, 0x4})
@geirsagberg
geirsagberg / tfsa.ts
Created April 20, 2021 12:04
Deno script for impersonating STM SA
#!/usr/bin/env -S deno run --allow-net --allow-read --allow-run
let tfVars: string;
try {
tfVars = Deno.readTextFileSync("./environments/STM.tfvars");
} catch (error) {
console.error(error);
Deno.exit(1);
}
@geirsagberg
geirsagberg / sudo.bat
Created March 31, 2020 08:56
Elevated batch script
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
@geirsagberg
geirsagberg / Generator.cs
Last active January 29, 2020 19:50
Generate strongly typed MonoGame resources
using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace BunnyLand.ResourceGenerator
{
public static class Generator
{
public static void WriteSongs(string contentPath, TextWriter textWriter)
@geirsagberg
geirsagberg / ICreated.cs
Created October 4, 2018 07:59
Generate timestamps for ICreated in EF Core
foreach (var entityType in modelBuilder.Model.GetEntityTypes().Where(t => t.ClrType.Implements<ICreated>())) {
var property = entityType.FindProperty(nameof(ICreated.Created));
property.ValueGenerated = ValueGenerated.OnAdd;
entityType.AddIndex(property);
modelBuilder.Entity(entityType.ClrType).Property(property.ClrType, property.Name).HasDefaultValueSql("sysdatetimeoffset()");
}
#! "netcoreapp2.1"
Console.WriteLine("Hello world!")
@geirsagberg
geirsagberg / DelimitedQueryString.cs
Created July 10, 2018 07:33
Delimited query string value provider
using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.Primitives;
@geirsagberg
geirsagberg / RequestHandlerTests.cs
Created May 22, 2018 13:57
Unit test that ensures all MediatR requests have one handler
public class RequestHandlerTests
{
[Fact]
public void All_requests_have_matching_handlers()
{
var assembly = typeof(Program).Assembly;
var types = assembly.ExportedTypes.ToList();
var requestTypes = types.Where(t => t.Implements<IBaseRequest>());
Type GetHandlerType(Type requestType)
@geirsagberg
geirsagberg / IntegrationTestAttribute.cs
Last active April 24, 2018 13:33
xUnit integration test trait attribute
using System.Collections.Generic;
using Xunit.Abstractions;
using Xunit.Sdk;
namespace MyProject.TestUtils
{
public class IntegrationTestDiscoverer : ITraitDiscoverer
{
internal const string DiscovererTypeName = nameof(MyProject) + "." + nameof(TestUtils) + "." + nameof(IntegrationTestDiscoverer);