Skip to content

Instantly share code, notes, and snippets.

🔮
the only way out is through

isaacs isaacs

🔮
the only way out is through
Block or report user

Report or block isaacs

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View put-this-in-your-zshenv-or-bashrc.sh
for i in $HOME/local/*; do
[ -d $i/bin ] && PATH="${i}/bin:${PATH}"
[ -d $i/sbin ] && PATH="${i}/sbin:${PATH}"
[ -d $i/include ] && CPATH="${i}/include:${CPATH}"
[ -d $i/lib ] && LD_LIBRARY_PATH="${i}/lib:${LD_LIBRARY_PATH}"
[ -d $i/lib ] && LD_RUN_PATH="${i}/lib:${LD_RUN_PATH}"
# uncomment the following if you use macintosh
# [ -d $i/lib ] && DYLD_LIBRARY_PATH="${i}/lib:${DYLD_LIBRARY_PATH}"
[ -d $i/lib/pkgconfig ] && PKG_CONFIG_PATH="${i}/lib/pkgconfig:${PKG_CONFIG_PATH}"
[ -d $i/share/man ] && MANPATH="${i}/share/man:${MANPATH}"
@isaacs
isaacs / is-rwx-able.js
Created Feb 24, 2011
Test whether or not a file is writable/readable/executable
View is-rwx-able.js
exports.isReadable = isReadable
exports.isReadableSync = isReadableSync
exports.isWritable = isWritable
exports.isWritableSync = isWritableSync
exports.isExecutable = isExecutable
exports.isExecutableSync = isExecutableSync
function isReadable (path, cb) {
fs.stat(path, function (er, s) {
if (er) return cb(er)
@isaacs
isaacs / file-http-with-stat.js
Created Dec 21, 2010
upload a file, and dump the response into a file.
View file-http-with-stat.js
var fs = require("fs")
, http = require("http")
, util = require("sys") // 0.3.x: require("util")
, fileToUpload = "/tmp/request"
, fileToDownload = "/tmp/response"
, server = "example.com"
, port = 80
, path = "/upload/target"
, method = "PUT"
, headers = { "content-type":"text/plain", "accept":"text/html" }
@isaacs
isaacs / sudo.js
Created Dec 5, 2010
Usage: sudo.js -u nobody whoami
View sudo.js
#!/usr/bin/env node
var args = process.argv.slice(2)
, arg
, requestedUid = 0
, cmd = []
, cmdArgs
, tty = process.binding("stdio")
, path = require("path")
, usage = path.basename(__filename)
@isaacs
isaacs / http-example-client.js
Created Dec 1, 2010
a simple example of a nodejs http client making a POST request
View http-example-client.js
var http = require("http")
, util = require("sys") // 0.3.x: require("util")
, fs = require("fs")
, client = http.createClient(80, "example.com")
, request = client.request("POST", "/", {"host":"example.com"})
// send body chunks
request.write("hello, world")
// pump a file through
View no.de.sh
#!/bin/bash
SERVER=https://api.no.de
SCRIPT="$0"
if [ ${SCRIPT:0:1} == "/" ]; then
SCRIPT="$(basename -- "$SCRIPT")"
fi
main () {
cmd=${1-help}
@isaacs
isaacs / node-and-npm-in-30-seconds.sh
Last active Nov 7, 2019
Use one of these techniques to install node and npm without having to sudo. Discussed in more detail at http://joyeur.com/2010/12/10/installing-node-and-npm/ Note: npm >=0.3 is *safer* when using sudo.
View node-and-npm-in-30-seconds.sh
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install # ok, fine, this step probably takes more than 30 seconds...
curl https://www.npmjs.org/install.sh | sh
View tree.js
module.exports = tree
tree.sync = treeSync
var fs = require("fs")
, path = require("path")
function tree (root, cb) {
fs.lstat(root, function (er, s) {
if (er) return cb(er)
s.name = root
@isaacs
isaacs / authorized_keys
Created Aug 25, 2010
Mah pubkeys. Autharahz demz.
View authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAJ6M0r6x1VWmMZL4/QUfIpFX8hJb0z4yyxgkWI1TDYnFNd3lgI4l5zGZQgnyeaL14BoBbiEoIfAAlQ9dzAYYiX7M5STvR543eLY08Ft15T7vmufmE2aAKQhCyb8Q1bHk3rUHeE4l+DzRXirs53s53MbrG/iiYFOb3yieYrbUkRMlAAAAFQDnjodne9N5V4kC/9PLOdS7hSwUxwAAAIAK5iA45rDaMeEfBwpV7W8DyBvVqy7SBe4av8n547YnVM/n762r3vRl/KlCqpyrgH13aH5YktDrWpKAmlqo7vVCLF2zfTMWkXUKiYuojc/jEcJpi1ayOE0Sa5eH3dQJ17Ilc2prLVGS95/6bEl4ZQv+PLujaibcQ+YArkRPsL7xkwAAAIAZ/AbmFPNMamPYjBh6UV1glBnTBdUhNH0SmWFgBgngyWFQq6Y/SVFa1MHLHWFapixNE5g9c6IcdXS1W+N2Xmb7AnJum8oseMjs6VxAH5AQQHllTE15JspeotaBZsgKWFXH5s/gNEC9mOqqtbM0BA+tqVKXN24lVGEEmHqqfcFBsg== isaacs@sistertrain-lm
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA8MAx3/U3aHXuhpuGhge5xMlqLACKgrFHL+F83YU0rP59bzVKk2mkEY7oXw68knzmasiowUBUBA5h0rt2okUp7YP07iaRyx0nnSIt+h8ADXVPLRHURRxEqz1oPD7dis4brUr1Y/v8+sBP4G8BS0f7b/CGqNaAUpOxprBSx7BLgc7m0uC7iYyAVURjuYNDc2c1D7xsh6rXdvEVkdt6gFTBoZh16dxxoZkunBE/pu0ghk0ygyISyWYGr4vU5BII2H9n0Si5vNbNnOvLZeSYaeO9aeDe/bTK8gPQxAHuFzEZhodWThGYfpqFmBUzC1O7klMGnJpkaR3bBFJ/vT78Xi9zJw== isaacs@sistertrain-lm
You can’t perform that action at this time.