Skip to content

Instantly share code, notes, and snippets.

@faishal
faishal / rcpt-to-aws-ses-nodemailer.js
Last active November 10, 2023 20:30
RCPT TO AWS SES Example using nodemailer
import nodemailer from "nodemailer";
import { defaultProvider } from "@aws-sdk/credential-provider-node";
import sesClient from "@aws-sdk/client-ses";
async function wrapedSendMail(mailOptions){
return new Promise((resolve,reject)=>{
const ses = new sesClient.SES({
apiVersion: "2010-12-01",
defaultProvider,
});
@faishal
faishal / add-drop.sh
Last active March 20, 2020 20:14
mydumper - add drop table statments
find ./production/ -name "*-schema.sql" -print | xargs sed -ri 's/CREATE\sTABLE\s`([a-zA-Z0-1_]+)`\s/DROP TABLE IF EXISTS `\1`;\nCREATE TABLE `\1` /;'
@faishal
faishal / download-raw-elb-logs.sh
Created January 13, 2020 16:36
Download raw elb logs for application
aws s3 ls s3://<bucket>/AWSLogs/<accountnumber>/elasticloadbalancing/<region>/2019/10/ --recursive | grep <search-string> | awk '{print $4}'| xargs -I FNAME sh -c 'aws s3 cp s3://<bucket-name>/AWSLogs"$FNAME" .'
@faishal
faishal / zenhub-report.js
Last active November 15, 2018 06:15
Zenhub Pipeline report
var pipelines = document.getElementsByClassName( 'zhc-pipeline' );
var line_break = '\n\r';
var report = '';
var epics_data = {};
for ( var i = 0; i < pipelines.length; i ++ ) {
var pipeline = pipelines[i];
var issues = $( '.zhc-issue-cards__cell', pipeline );
var status = $( '.zhc-pipeline-header__title', pipeline ).textContent;
@faishal
faishal / nginx-upload-path-proxy.conf
Last active September 28, 2018 09:04
Nginx upload url proxy to production
# Solution 1 - Non http
# Directives to send expires headers and turn off 404 error logging.
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
expires 24h;
log_not_found off;
try_files $uri $uri/ @production;
}
location @production {
resolver 8.8.8.8;
@faishal
faishal / fix-all-subsite-post-meta.sh
Created July 12, 2018 07:50
WP-CLI script to update / fix all the network site post meta
#!/bin/bash
for SITE_URL in $(wp site list --fields=domain,path,archived,deleted --format=csv --url=MAIN_DOMAIN | grep ",0,0$" | awk -F ',' '{print $1 $2}')
do
echo "Fixing $SITE_URL ..."
for POSTID in $(wp post list --post_type=CUSTOM_POSTTYPE --field=ID --url="$SITE_URL")
do
wp post meta update ${POSTID} META_KEY NEW_META_VALUE --url="$SITE_URL"
done
done
@faishal
faishal / options-monitor.sh
Created July 10, 2018 03:32 — forked from tott/options-monitor.sh
WordPress options table size Nagios monitor
#!/bin/bash
OPTIND=1
verbose=0
dbuser=""
dbpasswd=""
while getopts "vh?U:P:H:" opt; do
case "$opt" in
@faishal
faishal / add-term-reset-form.js
Last active May 9, 2018 03:04
Reset WordPress add term form after save.
/**
* Add ajaxprefilter to reset the form
*/
function initAjaxPreFilter() {
// Add callback
$( document ).on( 'term:added', function() {
// Do reset form related stuff here
} );
// Register ajaxprefilter
@faishal
faishal / git-branch-archive.sh
Last active May 7, 2018 07:27
Git archive branches which are merged in master, Also creates archive/branch-name tag and push to remote.
#!/bin/bash
# Run from master to avoid not able to delete current branch error
git checkout master --force
git submodule update --init --recursive
# Update our list of remotes
git fetch
git remote prune origin
@faishal
faishal / elasticpress-index.sh
Created April 16, 2018 07:38
ElasticPress index all sites in network
#!/bin/bash
for SITE_URL in $(wp site list --fields=domain,path,archived,deleted --format=csv --url=cmsdev.sc.com | grep ",0,0$" | awk -F ',' '{print $1 $2}')
do
echo "Indexing $SITE_URL ..."
echo "--- BEGIN INDEXING $SITE_URL ---" &>> indexing.log
wp elasticpress index --setup --url="$SITE_URL" --show-bulk-errors &>> indexing.log
echo "--- END INDEXING $SITE_URL ---" &>> indexing.log
done