Skip to content

Instantly share code, notes, and snippets.

View stephencroberts's full-sized avatar

Stephen Roberts stephencroberts

View GitHub Profile
@stephencroberts
stephencroberts / pre-push
Last active December 27, 2015 14:58
Development pre-push git hook that creates a versioned database patch if pushing to the staging server
#!/bin/bash
# Rename develop.sql to <version>.sql
# Exit if develop.sql is empty
if [ -s database/develop.sql ]; then exit 0; fi
# Get version tag from the latest commit
VER=`git tag --contains HEAD`
@stephencroberts
stephencroberts / setup.php
Last active December 27, 2015 16:59
Setup dev Joomla! site after pulling database from somewhere else
<?php
// Load Joomla! config
if (!file_exists('httpdocs/configuration.php')) {
echo "Couldn't find configuration.php!\n";
exit();
}
include('httpdocs/configuration.php');
$config = new JConfig();
@stephencroberts
stephencroberts / post-merge
Last active December 27, 2015 17:09
Dev git post-merge
#!/bin/bash
# Apply stash to restore local develop.sql (or other changes)
git stash apply
git stash drop
# Which branch are we on?
branch=`git rev-parse --abbrev-ref HEAD`
php -f setup.php "$branch"
@stephencroberts
stephencroberts / pre-receive
Last active December 27, 2015 17:29
Checks that staging has no modified or untracked files before allowing a push
#!/bin/bash
cd ../
unset GIT_DIR
read rev_old rev_new refname
if [[ "$refname" == *master* ]]
then
echo "Checking staging for modified/untracked files..."
@stephencroberts
stephencroberts / post-update
Last active December 27, 2015 17:39
Updates the database and files of a staging server from git repo and set proper permissions
#!/bin/bash
# Get the branch that was pushed
branch=$(git rev-parse --symbolic --abbrev-ref $1)
# Move to root of git repo
cd ..
unset GIT_DIR
# Save working directory for later
@stephencroberts
stephencroberts / pushtotesting
Last active December 29, 2015 04:58
Pushes source site to destination testing site
#!/bin/bash
#
# Usage: pushtotesting.sh <source> <destination>
# Summary: Pushes source site to destination testing site
# Description: Assuming the source site updates from the master branch, and
# the testing site the develop branch, this script will:
#
# 1. Fetch updates from the remote repo
# 2. Discard all local changes
# 3. Checkout and pull the develop branch
@stephencroberts
stephencroberts / dev-git-post-checkout
Created November 25, 2013 03:01
Updates the local database to reflect which branch was checked out
#!/bin/sh
# If checking out a branch
if [ $3 -eq 1 ]; then
# Get the new branch
branch=`git rev-parse --abbrev-ref HEAD`
# Run dev site setup
php -f setup.php "$branch"
@stephencroberts
stephencroberts / build.xml
Last active May 25, 2017 13:55
Phing build file for Joomla! extensions
<?xml version="1.0" encoding="UTF-8"?>
<project name="digitollsoftware" default="dist">
<tstamp />
<!-- Load local properties -->
<property file="./build.properties" override="true" />
<!-- Get package version from the latest tag in git -->
# This is a template .gitignore file for git-managed WordPress projects.
#
# Fact: you don't want WordPress core files, or your server-specific
# configuration files etc., in your project's repository. You just don't.
#
# Solution: stick this file up your repository root (which it assumes is
# also the WordPress root directory) and add exceptions for any plugins,
# themes, and other directories that should be under version control.
#
# See the comments below for more info on how to add exceptions for your
@stephencroberts
stephencroberts / data.coffee
Created May 23, 2015 05:09
AngularJS dynamic models
'use strict'
data = ($injector) ->
init = ->
registerModels()
service = {}
registerModels = ->