Skip to content

Instantly share code, notes, and snippets.

View jsumners's full-sized avatar

James Sumners jsumners

View GitHub Profile

Let's see what happens with achors in a markdown table.

Toc

nonsense

A bunch of nonsense to elongate the viewport.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sed nisl volutpat, molestie nisl et, convallis lorem. Ut varius at massa quis ultricies. Duis nec dolor ut risus sagittis pretium. Suspendisse malesuada quam ac tortor pulvinar, vitae iaculis tellus euismod. Nullam faucibus sapien quis libero auctor iaculis. Proin rhoncus vel elit nec fringilla. Aliquam bibendum, ligula et rutrum hendrerit, ligula urna pulvinar ex, in pellentesque ante tortor et sem. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In viverra ipsum quam, nec finibus nisi tempor in. Pellentesque porta dictum sem non tincidunt. Phasellus ut justo euismod, auctor nulla et, aliquet lorem. Vivamus metus ante, dignissim ac fermentum a, rhoncus id erat. Ut tincidunt tortor non laoreet bibendum. Nam in pharetra orci, vitae lobortis purus.

@jsumners
jsumners / index.mjs
Created March 3, 2023 22:58
Close and lock issues and pull requests for a GitHub repo
import dotenv from "dotenv";
dotenv.config();
// Create a .env file in the same directory
// as this script. Add the following constants
// to that file:
const ORG = process.env.ORG;
const REPO = process.env.REPO;
const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
@jsumners
jsumners / index.js
Created January 12, 2023 15:26
A weird construct in a class static method that makes the method inheritable by class extensions
'use strict'
class Foo {
static createFoo() {
return new Foo()
}
}
class Bar {
static createBar() {
@jsumners
jsumners / void-wsl.sh
Created November 11, 2022 21:40 — forked from kmatt/void-wsl.txt
Install Void Linux on WSL2
# Based on https://gist.github.com/kmatt/71603170556ef8ffd14984af77ff10c5
# prompt ">" indicates Powershell commands
# https://docs.microsoft.com/en-us/windows/wsl/install-win10
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# install https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
@jsumners
jsumners / index.mjs
Created May 5, 2022 11:32
Unsub GitHub org notifications
import dotenv from "dotenv";
dotenv.config();
const ORG = process.env.ORG;
const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
import { Client } from "undici";
const client = new Client("https://api.github.com");
const headers = {
@jsumners
jsumners / walk.mjs
Created November 18, 2021 15:41
Walk a Node project's dependency tree and list the dependencies and their versions
import fs from 'fs/promises';
import treeify from 'treeify';
const result = await readModDir('.');
console.log(treeify.asTree(result, true));
async function readModDir(modDirPath) {
const dirEntries = await fs.readdir(new URL(modDirPath, import.meta.url));
const hasNodeModules = dirEntries.some(entry => entry === 'node_modules');
const pkgSrc = await fs.readFile(new URL(`${modDirPath}/package.json`, import.meta.url));
#!/bin/bash
if [ ! -f package.json ]; then
# Default to npm regardless of missing package file.
echo "npm"
exit 0
fi
NODE_VERSION=$(node --version)
NODE_VERSION="${NODE_VERSION%%\.*}"
@jsumners
jsumners / Readme.md
Created October 24, 2021 13:18
Retrieve tabs from iOS Safari backup
  1. From a backup of the iOS device, extract /HomeDomain/Library/Safari/BrowserState.db to a local directory
  2. Place index.js and package.json in the same local directory
  3. npm install
  4. node index.js > lost_ios_safari_tabs.csv

Note: these instructions were created using an iMazing backup.

@jsumners
jsumners / readme.md
Last active October 11, 2021 15:10
Backup disk over ssh
  1. Boot host to be backed up with a rescue image, e.g. SystemRescueCD.
  2. Connect to destination host: ssh -L 8000:localhost:9000 destination.example.com
  3. On destination host: socat -u TCP4-LISTEN:9000,reuseaddr,fork OPEN:/tmp/backup.img.bz2,create,append
  4. On host to be backed up: dd if=/dev/sda | pv | bzip2 -9 | nc localhost 8000

Notes:

  1. socat installed on destination host
  2. /dev/sda is whatever disk is to be imaged and sent to remote host