Skip to content

Instantly share code, notes, and snippets.

@roppa
roppa / pullrepos.sh
Created Dec 12, 2018
Git pull origin master in folder containing many git repos
View pullrepos.sh
#!/bin/bash
for f in $PWD/*;
do
[ -d $f ]
cd "$f"
echo $f
git pull origin master
done;
@roppa
roppa / repo.sh
Created Dec 12, 2018
Bash Pull Repos
View repo.sh
#!/bin/bash
# To run ./repo.sh username
repos=( repo1 repo2 repo3 )
for i in "${repos[@]}"
do
git clone git@github.com:$1/$i.git
done
@roppa
roppa / postgres-cheatsheet.md
Created Aug 8, 2018 — forked from Kartones/postgres-cheatsheet.md
PostgreSQL command line cheatsheet
View postgres-cheatsheet.md

PSQL

Magic words:

psql -U postgres

Some interesting flags (to see all, use -h):

  • -E: will describe the underlaying queries of the \ commands (cool for learning!)
  • -l: psql will list all databases and then exit (useful if the user you connect with doesn't has a default database, like at AWS RDS)
@roppa
roppa / letsencrypt_2017.md
Created Apr 3, 2018 — forked from cecilemuller/letsencrypt_2018.md
How to setup Let's Encrypt for Nginx on Ubuntu 16.04 (including IPv6, HTTP/2 and A+ SLL rating)
View letsencrypt_2017.md

How to setup Let's Encrypt for Nginx on Ubuntu 16.04 (including IPv6, HTTP/2 and A+ SLL rating)

There are two main modes to run the Let's Encrypt client (called Certbot):

  • Standalone: replaces the webserver to respond to ACME challenges
  • Webroot: needs your webserver to serve challenges from a known folder.

Webroot is better because it doesn't need to replace Nginx (to bind to port 80).

In the following, we're setting up mydomain.com. HTML is served from /var/www/mydomain, and challenges are served from /var/www/letsencrypt.

@roppa
roppa / watch node.js
Created Mar 1, 2018
Watch files and run tests on change
View watch node.js
npm i -g watch
watch 'npm run test' src
@roppa
roppa / json-path-export.js
Created Mar 1, 2018
Executable script, takes in target json file, output json file, and a string of the json path you want to export, like 'parent.child.child'
View json-path-export.js
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const from = JSON.parse(fs.readFileSync(path.resolve(process.argv[2])).toString());
const to = path.resolve(process.argv[3]);
const jsonPath = process.argv[4].split('.');
function getValueFromPaths(paths, object) {
@roppa
roppa / socket-client-server.js
Created Jul 12, 2017
Node.js socket server and client
View socket-client-server.js
const net = require('net');
const PORT = 6000;
const server = net.createServer((connection) => {
console.log('created server');
connection.on('data', (data) => {
connection.write('pong\n');
});
connection.pipe(connection);
@roppa
roppa / .vimrc
Created May 12, 2017 — forked from substack/.vimrc
my vimrc
View .vimrc
set autoindent
set indentexpr=off
set expandtab
set tabstop=4
set sw=4
set textwidth=80
set nohls
set noshowmatch
syntax enable
@roppa
roppa / sequential-promise.js
Created Aug 24, 2016
Sequential promise processing
View sequential-promise.js
'use strict';
/**
* Run through promises sequentially. Useful when breaking 1000s records into manageable chunks
*/
function processFile (filename) {
return new Promise((superResolve, superReject) => {
You can’t perform that action at this time.