Skip to content

Instantly share code, notes, and snippets.

@jamesdaniels
jamesdaniels / appblade-jenkins.bash
Created January 13, 2012 19:14
Jenkins: push tagged commits to AppBlade
# Push tagged commits to AppBlade
# https://appblade.com/api
# Look up all the tags, grep for any on this commit, excluding jenkins-build tags
TAGGED_RELEASE=`git show-ref --tags --dereference | grep \`git rev-parse HEAD\` | awk '$2 !~ /refs\/tags\/jenkins(.+)\^\{\}/ { print $2 }'`
# Any results?
if [ -n "$TAGGED_RELEASE" ]
then
#!/bin/bash
# some variables we'll use later on
PROJECT_PATH=${WORKSPACE}/trunk
SIGNING_PATH=${PROJECT_PATH}/Signing
APP=Clock
XCODEPROJ_PATH="${PROJECT_PATH}/${APP}.xcodeproj"
XCODE_TARGET_NAME=${APP}.app
DSYM_NAME=${XCODE_TARGET_NAME}.dSYM
BUILD_PATH=${PROJECT_PATH}/build
# Look up all the tags, grep for any on this commit, excluding jenkins-build tags
TAGGED_RELEASE=`git show-ref --tags --dereference | grep \`git rev-parse HEAD\` | awk '$2 !~ /refs\/tags\/jenkins(.+)\^\{\}/ { print $2 }'`
# Any results?
if [ -n "$TAGGED_RELEASE" ]
then
# If there was a match, we are on a tagged release (or many), normalize them, and grab the first one
GIT_TAG=`echo $TAGGED_RELEASE | tr "^{}" " " | tr "/refs/tags/" " " | awk -F" " '{print $1}'`
# Get a Continuous Integration Token on AppBlade.com
# while on your project details page. If you don't
# have a project yet, you'll have to create one.
CI_TOKEN=YOUR_PROJECTS_CI_TOKEN
BUNDLE_PATH=/path/to/bundle
# Optional arguments
ZIPPED_DSYM_PATH=/path/to/a/zipped/dsym
OVERRIDE_BUNDLE_VERSION_STRING=0.0.1
CHANGELOG="Some changes bro"
Incident Identifier: [TODO]
CrashReporter Key: [TODO]
Hardware Model: iPod5,1
Process: Clock [3512]
Path: /var/mobile/Applications/BC0783D7-3F57-4317-A0C7-BCEBE1AB9632/Clock.app/Clock
Identifier: com.raizlabs.clockradio
Version: 2.3.5
Code Type: ARM
Parent Process: launchd [1]
require "minitest/autorun"
# Usage: IosVersion.new('11A4372q') #=> '7.0b1'
class IosVersion
IOS = {
'7' => [
3, {
'D' => [[1, 2]],
'E' => [[1, 3]],
# Returns either true or false depending on whether or not the user agent of
# the device making the request is matched to a device in our regex.
def is_mobile_device?
request.user_agent.to_s.downcase =~ /silk|palm|blackberry|nokia|phone|midp|mobi|symbian|chtml|ericsson|minimo|audiovox|motorola|samsung|telit|upg1|windows ce|ucweb|astel|plucker|x320|x240|j2me|sgh|portable|sprint|docomo|kddi|softbank|android|mmp|pdxgw|netfront|xiino|vodafone|portalmmm|sagem|mot-|sie-|ipod|up\\.b|webos|amoi|novarra|cdm|alcatel|pocket|ipad|iphone|mobileexplorer|mobile/
end
# Can check for a specific user agent
# e.g., is_device?('iphone') or is_device?('mobileexplorer')
def is_device?(type)
@jamesdaniels
jamesdaniels / login.js
Last active August 29, 2015 14:01
Desk.com fluid scripts
// Pattern *support.appblade.com\/login\/new
$('#user_session_email').val('USERNAME');
$('#user_session_password').val('PASSWORD')[0].form.submit();
// This will grab the largest image for the pixelRatio without oversampling (iOS style)
// Usage: assetUsingNativePixelRatio('/assets/images', 'logo', 'png', [1,2,3]);
// Output: /assets/images/logo@2x.png
function assetUsingNativePixelRatio(path, name, extension, pixelRatios) {
// Sort the pixelRatios in case they were put in the wrong order
var $pixelRatios = $(pixelRatios).sort();
// Price is right style
var matchingPixelRatio = $pixelRatios.not(function() {

Keybase proof

I hereby claim:

  • I am jamesdaniels on github.
  • I am jamesuriah (https://keybase.io/jamesuriah) on keybase.
  • I have a public key whose fingerprint is 0A16 8002 F444 EBE3 33C2 6A36 2C95 8E6B A90B 5CE5

To claim this, I am signing this object: