Skip to content

Instantly share code, notes, and snippets.

View baronfel's full-sized avatar

Chet Husk baronfel

View GitHub Profile
@baronfel
baronfel / license-attribute.targets
Created October 9, 2022 23:31
MSBuild target to write license expressions to an assembly attribute
<Project>
<!-- Create a target that will assign the license information for a project to an attribute -->
<Target Name="AssignLicenseAttribute">
<!-- Only do this if the user is allowing assemblyinfo generation -->
<ItemGroup Condition="'$(GenerateAssemblyInfo)' == 'true'">
<!-- Only generate if the license is present and the user has requested this attribute -->
<AssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
Condition="'$(GenerateLicenseExpressionAttribute)' == 'true' and '$(PackageLicenseExpression)' != ''">
<_Parameter1>LicenseExpression</_Parameter1>
@baronfel
baronfel / checking.fsx
Created October 13, 2022 18:33
Minimal FCS source checking
#r "FSharp.Compiler.Service"
open FSharp.Compiler.EditorServices
open FSharp.Compiler.CodeAnalysis
open FSharp.Compiler.Text
open System.IO
let fcsVersion =
System
.Reflection
.Assembly
@baronfel
baronfel / Blackjack.fsx
Created December 1, 2022 23:11
Blackjack kata
type Suit =
| Spades
| Clubs
| Diamonds
| Hearts
type Face =
| Two
| Three
| Four
@baronfel
baronfel / between.fsx
Last active January 23, 2023 02:33
Between Active Pattern
open System
[<return:Struct>]
let inline (|Between|_|) left right value =
if value > left && value < right then ValueSome () else ValueNone
let today = DateTime.Now
let yesterday = DateTime.Now.AddDays(-1.0)
let tomorrow = DateTime.Now.AddDays(1.0)
let twoDaysAgo = DateTime.Now.AddDays(-2.0)
#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))
@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>
@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
<?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 / 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
@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
###