Skip to content

Instantly share code, notes, and snippets.

View steveneaston's full-sized avatar

Steven Easton steveneaston

View GitHub Profile
@steveneaston
steveneaston / esphome.yaml
Last active February 4, 2024 10:57
Samsung ASHP Modbus
esphome:
name: "esp-ashp"
on_boot:
priority: -100
then:
- lambda: |-
esphome::modbus_controller::ModbusController *controller = id(ashp_modbus);
std::vector<uint16_t> outdoor_registers = {
0x8238, // Compressor frequency
0x8204, // Outdoor temperature
@steveneaston
steveneaston / dbbackup.sh
Created December 14, 2017 11:48
Backup MySQL Databases
function dbbackup() {
if [[ "$1" ]]
then
BACKUP_DIR="$1"
MYSQL_USER="[USERNAME]"
MYSQL_PASSWORD="[PASSWORD]"
TIMESTAMP=$(date +"%F")
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
@steveneaston
steveneaston / readme.md
Created December 5, 2016 13:36
Javascript Route Generator

Usage

// Single parameter
route('users/{id}', 1);

// Array of parameters
route('users/{user_id}/docs/{doc_id}', [1, 548]);

// Parameter object
@steveneaston
steveneaston / etchosts.sh
Last active October 10, 2015 15:48 — forked from mikeflynn/etchosts.sh
An /etc/hosts manager bash script (v1.1) -- Added import and export commands!
#!/bin/bash
HOSTSFILE="/etc/hosts"
BAKFILE="$HOSTSFILE.bak"
DOMAINREGEX="^[a-zA-Z0-9]{1}[a-zA-Z0-9\.\-]+$"
IPREGEX="^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"
URLREGEX="^https?:\/\/[a-zA-Z0-9]{1}[a-zA-Z0-9\/\.\-]+$"
PARAMETERS="$@"
backup()
@steveneaston
steveneaston / queue-worker.sh
Created October 9, 2015 16:10
Register and start a Laravel queue worker
#!/usr/bin/env bash
worker="[program:worker-"$2"]
command=php "$1"artisan queue:listen --sleep=10 --quiet --tries=3 --queue=default
autostart=true
autorestart=true
user=vagrant
redirect_stderr=true
stdout_logfile=/home/vagrant/.workers/worker-"$2".log
"
@steveneaston
steveneaston / setup-mongodb.sh
Created October 9, 2015 15:34
Use Vaprobash to install mongodb if required and restart it if already running
#!/usr/bin/env bash
echo ">>> Installing MongoDB"
mongod --version > /dev/null 2>&1
MONGO_IS_INSTALLED=$?
if [ $MONGO_IS_INSTALLED -eq 0 ]; then
echo ">>> MongoDB already installed"
service mongod restart
@steveneaston
steveneaston / about.md
Last active February 19, 2018 06:26
Auto-start PM2 on Homestead or Vagrant

The Problem

PM2's startup service script is triggered before Vagrant mounts the local directories so none of the scripts it's tasked with starting can be found.

The solution

Use Upstart's events to trigger pm2 resurrect once local directories have been mounted.

Notice: At the time of writing, Vagrant's vagrant-mounted event is not being triggered on Ubuntu < 15.04. To fix this, you should add the following workaround:

Create a file called /etc/init/workaround-vagrant-bug-6074.conf with the following content:

@steveneaston
steveneaston / VerifyShopifyWebhook.php
Created September 15, 2015 17:21
Verify a Shopify hook signature using Laravel Middleware
<?php
namespace App\Http\Middleware;
use Closure;
class VerifyShopifyWebhook
{
/**
* Handle an incoming request.
@steveneaston
steveneaston / gist:73d623549a2c414f2789
Created June 26, 2015 22:26
Initialise properties Sublime macro
{
"keys": ["super+i"],
"command": "run_macro_file",
"args": {"file": "Packages/User/Macros/initialize_properties.sublime-macro"},
"context": [{"key": "selector", "operator": "equal", "operand": "source.php"}]
}