Skip to content

Instantly share code, notes, and snippets.

View mbenford's full-sized avatar

Michael Benford mbenford

View GitHub Profile
@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 / 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); });
#!/bin/bash
set -e
if [ "$1" == "" ]; then
echo "fatal: pull request number must be provided"
exit 1
fi
branch="pr/$1"
#!/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
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
@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'..."
@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 / 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 / DeployToOctopus.ps1
Created August 10, 2014 19:28
Powershell script for TeamCity that creates and deploys a release on Octopus Deploy based on the current branch
function Is-Default-Branch {
return "%teamcity.build.branch.is_default%" -eq "true"
}
function Build-Arguments {
if (Is-Default-Branch) {
$releaseNumber = "%octopus.master.releaseNumber%"
$deployTo = "%octopus.master.deployTo%"
$packageVersion = "%octopus.master.packageVersion%"
}
@mbenford
mbenford / forceDatabinding.js
Last active August 29, 2015 14:03
Simple Angular directive to force data to be bound even when it's deemed invalid by some validator
app.directive('forceDatabinding', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
ngModel.$parsers.push(function(value) {
return value || ngModel.$viewValue;
});
}
};
});