Skip to content

Instantly share code, notes, and snippets.

View chernjie's full-sized avatar

CJ (curl | jq) chernjie

View GitHub Profile
#!/usr/bin/env bash
json2markdowntable () {
local headers=$@
echo $headers | sed "s, , | ,g"
seq $# | while read i; do echo " --- "; done | xargs | sed "s, , | ,g"
json -a $headers -d" | "
}
@chernjie
chernjie / mkpasswd
Last active September 15, 2023 07:19
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from optparse import OptionParser
from passlib.hash import sha512_crypt;
import getpass;
parser = OptionParser(usage="%prog --method=sha-512")
parser.add_option(
'--method',
#!/bin/sh
rundir=/var/run/parallelLimit
pause_file="$rundir/paused"
harakiri_file="$rundir/good-day-to-die"
is-paused() {
[ -f "$pause_file" ]
}
@chernjie
chernjie / npmr
Last active February 7, 2021 22:41
#!/usr/bin/env bash
# Like `npm`, but executes the command in nested sub-directories within
# your current git repository
#
# @author CJ <lim@chernjie.com>
# Example:
#
# $ npmr ls lodash # List installed packages in nested node packages
@chernjie
chernjie / set.sh
Last active September 12, 2020 21:43
CLI implementation of Set, using file for storage
#!/usr/bin/env bash
STATEFILE=${STATEFILE:-retry.log}
# dependencies
for i in sort gsed grep echo
do command -v $i > /dev/null || (echo $i not found >&2 && exit 1)
done
prime() {
@chernjie
chernjie / queue.js
Created June 21, 2022 00:52
chive vanilla js practice
$$('figure img')
.map(el => el.src)
.reverse()
.reduce((last, next) => {
return () => {
setTimeout(() => {
console.log('<img src="'+ next +'" />')
last()
}, 1000)
}
@chernjie
chernjie / cache_get.sh
Last active February 22, 2024 00:23
cache_get: use curl to fetch if cache is not available locally
#!/usr/bin/env bash
cache_get() {
local cache="./data/$1.json"
test -f "$cache" && find "$cache" -type f -mtime +$((1/24)) -exec rm -v {} + >&2 # clear cache >1 hr
test -f "$cache" || curl --silent "$2" --create-dirs --output "$cache"
cat "$cache"
}