Skip to content

Instantly share code, notes, and snippets.

View ryanwilsonperkin's full-sized avatar
😅

Ryan Wilson-Perkin ryanwilsonperkin

😅
View GitHub Profile
@ryanwilsonperkin
ryanwilsonperkin / .dockerignore
Created October 29, 2018 19:03
convox start does not respect .dockerignore for code sync
DONTSYNC
@ryanwilsonperkin
ryanwilsonperkin / component.js
Last active August 14, 2018 18:38
A HOC proposal for injecting tracking of events.
import React from 'react';
import withTracking from 'withTracking';
export class MyLink extends React.Component {
static propTypes = {
text: PropTypes.string,
href: PropTypes.string,
track: PropTypes.func,
};
@ryanwilsonperkin
ryanwilsonperkin / update.py
Created April 6, 2018 03:24
Update relative imports in JS files to be absolute based on current path
import os
import re
import sys
ROOT_DIR = 'project-name'
PATTERN = re.compile(
"""(?P<prefix>.*from *['"])"""
"""(?P<path>\..*)"""
"""(?P<suffix>['"].*)"""
)
@ryanwilsonperkin
ryanwilsonperkin / coredump
Created March 14, 2018 23:36
Debugging npm failure on Alpine Linux on EC2 C5 instance
Program terminated with signal SIGSEGV, Segmentation fault.
warning: Unexpected size of section `.reg-xstate/26' in core file.
#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29
29 src/thread/x86_64/syscall_cp.s: No such file or directory.
[Current thread is 1 (LWP 26)]
(gdb) bt
#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29
#1 0x00007fd6161eecd8 in __syscall_cp_c (nr=202, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>,
z=0) at src/thread/pthread_cancel.c:35
@ryanwilsonperkin
ryanwilsonperkin / example_public.py
Last active March 11, 2018 19:34
pipenv-test-public-package
import sys
sys.stdout.write('This is a public package\n')
@ryanwilsonperkin
ryanwilsonperkin / example_private.py
Last active March 11, 2018 19:35
pipenv-test-private-package
import sys
sys.stdout.write('This is a private package\n')
@ryanwilsonperkin
ryanwilsonperkin / create_test_list.py
Created March 5, 2018 14:31
Reads Xunit XML files and prints the (sorted) test names to stdout.
#!/usr/local/bin/python
"""
Reads Xunit XML files and prints the (sorted) test names to stdout.
usage: python create_test_list.py file [file...]
"""
import sys
import xml.etree.ElementTree as ET
def xmlToList(filename):
@ryanwilsonperkin
ryanwilsonperkin / github_repos.py
Last active January 9, 2018 23:55
Use the GitHub API to generate a CSV or your organization's repositories.
#!/usr/local/bin/python
"""
Generate a CSV file of your organization's GitHub repositories.
Results in a CSV file with the following columns:
- name: The name of the repository
- private: True if this is a private repository, else False
- fork: True if this repository is the result of a fork, else False
- created_at: The datetime this repository was created
- updated_at: The datetime this repository was last updated
@ryanwilsonperkin
ryanwilsonperkin / convox_env_check.sh
Created December 20, 2017 16:22
Check all applications in a convox rack for environment variables (name or value) containing a search_query
rack=$1
search_query=$2
if [ -z "$rack" ] || [ -z "$search_query" ]; then
echo "usage: $0 rack search_query"
exit 1
fi
apps=$(convox apps --rack $rack | grep -v STATUS | cut -f1 -d' ')
@ryanwilsonperkin
ryanwilsonperkin / decorators.py
Last active November 23, 2017 22:01
Different types of decorators
# Regular decorator
def decorator(f):
def wrapped(*args, **kwargs):
print('Before')
result = f(*args, **kwargs)
print('After')
return result
return wrapped
# Regular decorator usage