Skip to content

Instantly share code, notes, and snippets.

View mbenford's full-sized avatar

Michael Benford mbenford

View GitHub Profile
@mbenford
mbenford / SetReleaseParameters.ps1
Created August 11, 2014 01:12
Powershell script for TeamCity that sets some parameters to be used with Octopus Deploy based on the current branch
function Is-Default-Branch {
return "%teamcity.build.branch.is_default%" -eq "true"
}
function Set-TeamCity-Parameter($name, $value) {
Write-Host "##teamcity[setParameter name='$name' value='$value']"
}
if (Is-Default-Branch) {
$releaseNumber = "%octopus.master.releaseNumber%"
@mbenford
mbenford / DeployMultipleToOctopus.ps1
Created August 11, 2014 02:30
Powershell script for TeamCity that creates and deploys multiple releases on Octopus Deploy
function Build-Arguments($project) {
$args = @()
$args += "create-release"
$args += "--server=%octopus.url%"
$args += "--apikey=%octopus.apikey%"
$args += "--project=$project"
$args += "--version=%octopus.releaseNumber%"
$args += "--deployto=%octopus.deployTo%"
$args += "--packageversion=%octopus.packageVersion%"
$args += "--force"
@mbenford
mbenford / git-checkout-release.sh
Created October 20, 2014 19:07
Bash script to checkout either the latest release branch or the one specified
#!/bin/bash
set -e
if [ "$1" != "" ]; then
release_name="release/$1"
else
release_name=$(git branch -r | tail -n1 | sed 's/.*origin\///')
fi
echo "Checking out branch '$release_name'..."
#!/bin/bash
set -e
release_branch=$(git-get-release-branch.sh $1)
local_branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD)
if [ "$local_branch" != "master" ]; then
echo "The current branch is not master. Aborting."
exit 1
fi
#!/bin/bash
set -e
if [ "$1" != "" ]; then
release_name="release/$1"
else
release_name=$(git branch -r | tail -n1 | sed 's/.*origin\///')
fi
echo $release_name
#!/bin/bash
set -e
if [ "$1" == "" ]; then
echo "fatal: pull request number must be provided"
exit 1
fi
branch="pr/$1"
@mbenford
mbenford / dom-events.js
Created April 10, 2015 19:03
Monitoring DOM insertions and removals
document.addEventListener('DOMNodeInserted', function(event) { console.log('Inserted:', event.srcElement); });
document.addEventListener('DOMNodeRemoved', function(event) { console.log('Removed:', event.srcElement); });
@mbenford
mbenford / mergesort.js
Created April 14, 2015 23:12
Merge sort in Javascript
function mergesort(array) {
return sort(array, 0, array.length - 1);
function sort(array, start, end) {
if (start === end) return [array[start]];
var middle = Math.floor((start + end) / 2);
return merge(sort(array, start, middle), sort(array, middle + 1, end));
}
@mbenford
mbenford / bit-manipulation.js
Created April 15, 2015 00:16
Bit manipulation in Javascript
function setBitOn(number, bit) {
return number | 1 << bit;
}
function setBitOff(number, bit) {
return number & ~(1 << bit);
}
function toggleBit(number, bit) {
return number ^ 1 << bit;
@mbenford
mbenford / get-permutations.cs
Last active October 21, 2021 15:01
Generates all permutations of a set by using LINQ and a recursive approach
public static class Permutations
{
public static IEnumerable<IEnumerable<T>> Get<T>(IEnumerable<T> set, IEnumerable<T> subset = null)
{
if (subset == null) subset = new T[] { };
if (!set.Any()) yield return subset;
for (var i = 0; i < set.Count(); i++)
{
var newSubset = set.Take(i).Concat(set.Skip(i + 1));