Skip to content

Instantly share code, notes, and snippets.

@josuecau
josuecau / .jshintrc
Last active September 11, 2022 18:01 — forked from haschek/.jshintrc
JSHint configuration file
{
// --------------------------------------------------------------------
// JSHint Configuration, Strict Edition
// --------------------------------------------------------------------
//
// This is a options template for [JSHint][1], using [JSHint example][2]
// and [Ory Band's example][3] as basis and setting config values to
// be most strict:
//
// * set all enforcing options to true
@josuecau
josuecau / gpx-routes-to-tracks.sh
Last active March 8, 2021 20:15
Convert GPX routes (rte) into tracks (trk) using gpsbabel (https://www.gpsbabel.org)
#!/usr/bin/env bash
#
# Convert GPX routes (rte) into tracks (trk) using gpsbabel.
# (https://www.gpsbabel.org/)
set -e
if ! type gpsbabel >/dev/null 2>&1; then
echo 'gpsbabel not found'
exit 1
@josuecau
josuecau / ffmpeg_add_srt.sh
Last active August 20, 2020 07:10
Using ffmpeg in Docker to add srt subtitle files to mp4 files
#!/usr/bin/env bash
#
# Using ffmpeg in Docker to add srt subtitle files to mp4 files
#
# https://mutsinzi.com/add-srt-subtitles-to-quicktime/
# https://hub.docker.com/r/jrottenberg/ffmpeg
# Given the following directory structure:
# .
# ├── in
#!/usr/bin/env bash
# List the most frequently used words in a text.
[ $# -ge 1 ] && [ -f "$1" ] && input="$1" || input="-"
# shellcheck disable=SC2002
cat "$input" |
tr -cs '[:alpha:]' '\n' | # Split words and drop non-alphabetic characters.
tr '[:upper:]' '[:lower:]' | # Put it all to lowercase.
@josuecau
josuecau / options-avanced.sh
Last active December 25, 2019 07:45
Parse bash command options with getopt(1)
#!/usr/bin/env bash
# “a” and “arga” have optional arguments with default values.
# “b” and “argb” have no arguments, acting as sort of a flag.
# “c” and “argc” have required arguments.
# getopt bin
getopt=/usr/local/opt/gnu-getopt/bin/getopt
# set an initial value for the flag
@josuecau
josuecau / wait.js
Created December 2, 2019 17:08
JavaScript setTimeout as a Promise
module.exports = delay => new Promise(resolve => setTimeout(resolve, delay))
@josuecau
josuecau / gist:756ae0369d0016b965f1e55e0f73ce93
Created November 5, 2019 16:22
Nommage des fichiers avec MusicBrainz Picard
$if2(%albumartist%,%artist%)/$if($ne(%albumartist%,),%album%/,)$if($gt(%totaldiscs%,1),%discnumber%/,)$if($ne(%albumartist%,),$num(%tracknumber%,2) ,)%title%
[
"000",
"005",
"00A",
"00F",
"050",
"055",
"05A",
"05F",
"0A0",
@josuecau
josuecau / Makefile
Last active May 4, 2019 12:31
A Makefile for Rust projects
build:
cargo build --release
check:
cargo check && cargo clippy
fmt:
cargo +nightly fmt
doc:
#!/usr/bin/env bash
#
# Description: convert a Markdown file to a HTML file using pandoc(1)
# Usage: markdown INPUT_FILE.md"
# Version: 1.0.2
# Author: Josué Cau <me@josuecau.com>
set -e
if [ $# -eq 0 ]