Skip to content

Instantly share code, notes, and snippets.

@rpunt
rpunt / gitconfig
Created April 30, 2018 12:11
Git Configs
[alias]
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
since = !git log $(git merge-base --fork-point master)..HEAD
files-changed="!f() { git log --name-only $1..HEAD --oneline --format=%n ${2:-.} | grep -v '^$' | sort | uniq; }; f"
@rpunt
rpunt / 01-install-xenapp-6.ps1
Last active June 21, 2017 18:02
A fully-automated, silent install for XenApp 6 Enterprise on Server 2008 R2.
# This install assumes a couple things:
#
# 1. You're logged in as a local admin, per Citrix recommendations
# 2. These script files are store in d:\software\citrix6
# 3. The installation media for XenApp 6 has been unpacked in d:\software\citrix6\citrix6
# 4. The MSIs for Hotfix Rollup 2 and Profile Manager are located in d:\software\citrix6\citrix6\addons
# (these can be excluded by skipping "04-01-install-patches.bat"
#
# This install occurs across four reboots, and is complete unattended; you can kick it off
# when logged in via RDP or at the console, and let it run to completion. Run time is

Keybase proof

I hereby claim:

  • I am rpunt on github.
  • I am rpunt (https://keybase.io/rpunt) on keybase.
  • I have a public key whose fingerprint is BF55 A76A E67F F3A1 2E09 E08F ED47 262D 3FF6 076A

To claim this, I am signing this object:

@rpunt
rpunt / parallel_pull.sh
Last active August 16, 2016 12:42
Parallel git pulls
#!/usr/bin/env bash
superpull() {
dir=$1
error_repos=$2
cd $dir
STATUS=`mktemp`
echo -e "\n************************************\n* Pulling $dir\n************************************" >$STATUS
git checkout master 1>>$STATUS 2>&1
if [[ $? != 0 ]]; then
@rpunt
rpunt / retrieve_rooms_from_roomlists.mm
Created March 16, 2013 14:20
A SOAP message that will retrieve a list of rooms in a roomlist from Exchange 2010.
// given the e-mail address of a roomlist, this SOAP message will retrieve the member rooms.
NSString *roomlist = @"roomlist1@domain.tld" // this is the e-mail address of the room list you're querying
NSLog(@"querying roomlist %@", roomlist);
NSString *soapMessage = [NSString stringWithFormat:@""
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
@"<soap:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\" xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\">"
@"<soap:Header>"
@"<t:RequestServerVersion Version =\"Exchange2010_SP2\"/>"
@"</soap:Header>"
@rpunt
rpunt / conferenceroom_schedule_SOAP_message.mm
Created March 16, 2013 14:07
A SOAP message that will retrieve a conference room's schedule for the day in Exchange 2010.
// for some reason, Exchange Web Services seems to ignore the DST-specific bias settings, and only refer to the
// master bias.
// set the master bias here.
int bias = abs([[NSTimeZone systemTimeZone] secondsFromGMT] / 60);
NSString *soapMessage = [NSString stringWithFormat:@""
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
@"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\">"
@"<soap:Body>"
@"<GetUserAvailabilityRequest xmlns=\"http://schemas.microsoft.com/exchange/services/2006/messages\" xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\">"
@rpunt
rpunt / retrieve_exchange_room_lists.mm
Last active December 15, 2015 00:59
Retrieve a list of roomlists from Exchange 2010 via SOAP.
// Retrieve a list of roomlists from Exchange 2010 via SOAP.
// This method then uses SMXMLDocument to retrieve the e-mail addresses for those roomlists,
// which can be used to query the individual rooms
// DEPENDENCIES: AFNetworking v1 (https://github.com/AFNetworking/AFNetworking)
// SMXMLDocument (https://github.com/nfarina/xmldocument)
//
// NOTE: I used AFHTTPRequestOperation instead of AFXMLRequestOperation because I wanted the XML, not an XML parser
// (which is what AFXMLRequestOperation returns)
- (void) readRoomLists {
@rpunt
rpunt / 01-preseed-LVM-on-software-RAID.sh
Last active December 14, 2015 19:29
# This is a preseed partman recipe that will later allow the created on # LVM-on-software-RAID, somethat that wasn't possible directly in the # preseed at the time (~2003)
# This is a preseed partman recipe that will later allow the created on
# LVM-on-software-RAID, somethat that wasn't possible directly in the
# preseed at the time (~2003)
d-i lvmcfg/activevg boolean false
d-i lvmcfg/vgdelete_names select vg00
d-i lvmcfg/vgcreate_name string vg00
d-i lvmcfg/vgdelete_confirm boolean true
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
@rpunt
rpunt / Verify User Credentials.ps1
Last active December 14, 2015 19:09
Verify the user running the script is a local admin before proceeding
[CmdletBinding()]
param (
[parameter(Mandatory=$true)][string]$adminuser,
[parameter(Mandatory=$true)][string]$adminpassword
)
$computer = gc env:computername
# did you enter valid credentials for a local user?
[Reflection.Assembly]::LoadFile('C:\Windows\assembly\GAC_MSIL\System.DirectoryServices\2.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.dll')
@rpunt
rpunt / PowerShell Console Transcript.ps1
Last active December 14, 2015 19:09
Writes a log of the console output from a powershell script to $PWD. Very useful for unattended scripts.
$log=Join-Path (Get-ChildItem $MyInvocation.MyCommand.Definition).Directory (Get-ChildItem $MyInvocation.MyCommand.Definition).Basename
Start-Transcript "$log.log"