Skip to content

Instantly share code, notes, and snippets.

View baronfel's full-sized avatar

Chet Husk baronfel

View GitHub Profile
@baronfel
baronfel / CliFlag.fs
Last active September 18, 2023 17:42
System.CommandLine Flag variant
module CliFlag
open System
open System.CommandLine
open System.CommandLine.Parsing
type CliFlag<'t> =
inherit CliOption<'t>
val private enabledFlagName: string
val private disabledFlagName: string
@baronfel
baronfel / pinkcatme.json
Created July 27, 2023 22:11
Windows Terminal version of the pinkcatme theme for KDE
{
"background": "#FFEAF1",
"black": "#666666",
"blue": "#B39FD6",
"brightBlack": "#000000",
"brightBlue": "#8966D6",
"brightCyan": "#3CB4EB",
"brightGreen": "#85D468",
"brightPurple": "#DF81CB",
"brightRed": "#F02070",
using System.CommandLine;
using System.CommandLine.Builder;
using System.CommandLine.Parsing;
namespace scl
{
public static class Usage
{
public struct CmdArgs
@baronfel
baronfel / RidItems.targets
Created June 24, 2023 18:25
An MSBuild target that adds RID-matching subvariants of source files to the compilation
<Project>
<!-- This is a very simple version of what we'd actually want. We actually would need to:
* get the target RID
* get the OS portion of the RID graph _only_, no versions, no architectures
* walk that graph in most-specific to least-specific order, including the first (most specific) items that match the expected pattern along the way
NOTE: .NET SDK Default Glob Include patterns wreck this entire feature -->
<Target Name="ExpandRIDCompileItems" DependsOnTargets="AddImplicitDefineConstants" BeforeTargets="CoreCompile">
<PropertyGroup>
<RidDefines Condition="'$(RuntimeIdentifier)' != ''">$(RuntimeIdentifier.Split('-')[0])</RidDefines>
@baronfel
baronfel / registry.http
Created June 19, 2023 17:38
HTTP snippet for docker manifest investigations
@registry = registry-1.docker.io
@authEndpoint = auth.docker.io
@authService = registry.docker.io
@repo = library/ubuntu
@tag = jammy
# @name authenticate
GET https://{{authEndpoint}}/token?service={{authService}}&scope=repository:{{repo}}:pull
###
@baronfel
baronfel / cinnamon
Last active August 21, 2023 00:32
Pork Tenderloins
2T soy sauce
2T Hoison sauce
2T Dry sherry
1T light brown sugar
1T peanut oil
1 1/2 tsp honey
1/2 tsp garlic salt
1/2 tsp ground cinnamon
1 lb pork tenderloin
<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="ValidateSolutionConfiguration;ValidateToolsVersions;ValidateProjects" DefaultTargets="Build">
<PropertyGroup>
<MSBuildFileVersion>17.6.0.18004</MSBuildFileVersion>
<MSBuildSemanticVersion>17.6.0+61dd65684</MSBuildSemanticVersion>
<RoslynTargetsPath>C:\Program Files\dotnet\sdk\7.0.303\Roslyn</RoslynTargetsPath>
<VisualStudioVersion>17.0</VisualStudioVersion>
<_DirectorySolutionPropsFile>Directory.Solution.props</_DirectorySolutionPropsFile>
<_DirectorySolutionPropsBasePath />
<Configuration>Debug</Configuration>
@baronfel
baronfel / Directory.Build.targets
Last active May 23, 2023 20:53
Targets file to build multiple containers for a single project (or enable solution-level project management!)
<Project>
<PropertyGroup>
<!-- We have to build Publish AND PublishContainer because PublishContainer (and other
PublishProfile-delivered targets) don't have an explicit Publish dependency. -->
<_RequiredContainerPublishTargets>Publish;PublishContainer</_RequiredContainerPublishTargets>
</PropertyGroup>
<!-- Entrypoint, either from solution-level `/t:Containerize` or project-level `/t:Containerize` -->
<Target Name="Containerize" Condition="'$(EnableSdkContainerSupport)' == 'true'">
<!-- Strategy here is that we will figure out what proejct(s) to build the containerization targets(s) for
@baronfel
baronfel / Azure.Functions.Container.targets
Last active May 28, 2024 20:50
Azure Functions Isolated dockerfile using SDK Containers
<Project>
<!-- Targets that replicate the behavior of the azure functions isolated dockerfile using the
SDK container tech -->
<Target Name="EnsureValidFunctionsTFM">
<PropertyGroup>
<_MinimumSupportedFunctionsTFM>6.0</_MinimumSupportedFunctionsTFM>
<_MaximumSupportedFunctionsTFM>8.0</_MaximumSupportedFunctionsTFM>
</PropertyGroup>
#r "System.Threading.Channels"
open System.Threading.Channels
open System.Threading
open System
open System.Threading.Tasks
open System.Threading
type Mailbox<'state, 'msg>(initialState, f, ctok) as this =
let c: Channel<'msg> = Channel.CreateUnbounded(UnboundedChannelOptions(SingleReader = true, SingleWriter = true))