Skip to content

Instantly share code, notes, and snippets.

View danielbayley's full-sized avatar

Daniel Bayley danielbayley

View GitHub Profile
@kaizhu256
kaizhu256 / globExclude.mjs
Last active June 29, 2024 01:21
This gist file demos a performant, self-contained function "globExclude()", which batch-globs <pathnameList> in a single pass, with given filters <excludeList>, <includeList>.
/*jslint beta, node*/
// This gist file demos a performant, self-contained function "globExclude()",
// which batch-globs <pathnameList> in a single pass,
// with given filters <excludeList>, <includeList>.
//
// Could be useful if you need to glob thousands of files for test-coverage,
// or other purposes.
// Example usage
@n8henrie
n8henrie / OpenTerminalToFinderWindow.js
Last active March 9, 2025 02:19
JXA to open a Terminal window to the frontmost Finder window
#!/usr/bin/osascript -l JavaScript
'use strict';
const DEBUG = false;
function launchTerminal(path) {
const terminalApp = Application("Terminal.app")
terminalApp.includeStandardAdditions = true
let cmd = `cd ${path}; clear;`
url scheme:
x-apple.systempreferences:com.apple.KEY[.KEY]?SUB-PANE
examples:
x-apple.systempreferences:com.apple.systempreferences.AppleIDSettings?iCloud
x-apple.systempreferences:com.apple.preference.keyboard?Shortcuts
urls:
com.apple.systempreferences.ApplelDSettings
@monkeydom
monkeydom / ks_changeset.sh
Created May 3, 2022 08:13
Script to put 2 folders into a single changeset git and diff it using ksdiff to see the changeset nicely
#!/bin/sh
# ks_changeset v0.9 - 2022-05-03
# Enable "safe" mode - see http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -euo pipefail
IFS=$'\n\t'
if [[ $# -lt 3 ]]; then
echo "Usage: ks_changeset.sh <FolderA> <FolderB> <DestinationGit>"
@jcubic
jcubic / cdn.md
Last active October 3, 2025 14:08
How to setup a literally free CDN
@mattmc3
mattmc3 / optparsing_demo.zsh
Last active October 1, 2025 15:52
Zsh option parsing example
# Manual opt parsing example
#
# Features:
# - supports short and long flags (ie: -v|--verbose)
# - supports short and long key/value options (ie: -f <file> | --filename <file>)
# - supports short and long key/value options with equals assignment (ie: -f=<file> | --filename=<file>)
# - does NOT support short option chaining (ie: -vh)
# - everything after -- is positional even if it looks like an option (ie: -f)
# - once we hit an arg that isn't an option flag, everything after that is considered positional
function optparsing_demo() {
getJsonValue() {
# $1: JSON string to process, $2: Desired JSON key
osascript -l 'JavaScript' -e "JSON.parse(\`$1\`).$2;"
}
# String sent by a rogue API endpoint
json='{}`);const app = Application.currentApplication(); app.includeStandardAdditions = true;app.displayAlert("👾🔥🙈");JSON.parse(`{}';
fullName=$(getJsonValue "$json" name)
@atelierbram
atelierbram / create-a-persistent-directory-stack-in-zsh.md
Last active October 31, 2023 16:58
Create a persistent directory stack in zsh
import Cocoa
import MediaPlayer
let bundle = CFBundleCreate(kCFAllocatorDefault, NSURL(fileURLWithPath: "/System/Library/PrivateFrameworks/MediaRemote.framework"))
let MRMediaRemoteRegisterForNowPlayingNotificationsPointer = CFBundleGetFunctionPointerForName(
bundle, "MRMediaRemoteRegisterForNowPlayingNotifications" as CFString
)
typealias MRMediaRemoteRegisterForNowPlayingNotificationsFunction = @convention(c) (DispatchQueue) -> Void
let MRMediaRemoteRegisterForNowPlayingNotifications = unsafeBitCast(MRMediaRemoteRegisterForNowPlayingNotificationsPointer, to: MRMediaRemoteRegisterForNowPlayingNotificationsFunction.self)
@sindresorhus
sindresorhus / esm-package.md
Last active October 31, 2025 00:11
Pure ESM package

Pure ESM package

The package that linked you here is now pure ESM. It cannot be require()'d from CommonJS.

This means you have the following choices:

  1. Use ESM yourself. (preferred)
    Use import foo from 'foo' instead of const foo = require('foo') to import the package. You also need to put "type": "module" in your package.json and more. Follow the below guide.
  2. If the package is used in an async context, you could use await import(…) from CommonJS instead of require(…).
  3. Stay on the existing version of the package until you can move to ESM.