Skip to content

Instantly share code, notes, and snippets.

View raine's full-sized avatar

Raine Virta raine

View GitHub Profile
@raine
raine / parse-redis-info.js
Created December 25, 2014 18:56
Parse redis info with Ramda.js
var tryNumber = function(val) {
var number = Number(val);
return !isNaN(number) ? number : val;
};
var getInfoLines = compose(filter(contains(':')), split('\n'));
var parseToObj = compose(fromPairs, map(compose(split(':'), trim)));
var parseInfo = compose(mapObj(tryNumber), parseToObj, getInfoLines);
module.exports = parseInfo;

Navigating the current page:

?       show the help dialog for a list of all available keys
h       scroll left
j       scroll down
k       scroll up
l       scroll right
gg      scroll to top of the page
G       scroll to bottom of the page

d scroll down half a page

@raine
raine / ramda
Last active August 29, 2015 14:13
~/ramda git:master ❯❯❯ gh remote add fyyyyy/ramda ⏎
~/ramda git:master ❯❯❯ git fetch fyyyyy
From https://github.com/fyyyyy/ramda
* [new branch] curry_placeholder -> fyyyyy/curry_placeholder
* [new branch] lazily -> fyyyyy/lazily
* [new branch] master -> fyyyyy/master
* [new branch] modularize -> fyyyyy/modularize
* [new branch] modularize2 -> fyyyyy/modularize2
~/ramda git:master ❯❯❯ git checkout -B update-readme fyyyyy/master
Branch update-readme set up to track remote branch master from fyyyyy.
@raine
raine / README.md
Created February 18, 2015 12:57
git alias for removing merged branches
git config --global alias.remove-merged-branches '!git branch --merged | grep -v "\*" | xargs -n 1 git branch -d'
```sh
@raine
raine / bin
Created February 26, 2015 09:59
hack to enable generator in globally installed npm module http://sambal.org/2014/02/passing-options-node-shebang-line/
#!/bin/sh
":" //# comment; exec /usr/bin/env node --harmony "$0" "$@"
var generators = require('generator-supported');
if (generators) {
require('../lib');
} else {
console.log('ERROR: node >= v0.11.3 is required for generators');
process.exit(1);
}
@raine
raine / cli.js
Last active August 29, 2015 14:16
// Generated by LiveScript 1.3.1
async(function*(){
var log;
log = yield tailLastBuild(jobName, argv.follow);
switch (false) {
case !(log instanceof Just):
log.value.pipe(process.stdout).on('end', process.exit);
break;
default:
console.log('no such build');
var optionator = require('optionator')({
options: [
{
option: 'build',
alias: 'b',
type: 'Number',
description: 'target'
}
]
});
@raine
raine / tail.js
Last active August 29, 2015 14:16
// Generated by LiveScript 1.3.1
var cliTail;
cliTail = async(function*(jobName, buildNumber, follow){
var output;
output = yield tail(jobName, buildNumber, follow);
output.cata({
Just: function(output){
return output.pipe(formatTailOutput()).pipe(process.stdout).on('end', process.exit);
},
Nothing: function(){
cli-tail = async (opts, second-time) ->*
{job-name, build-number, follow} = opts
try
output = yield tail-build job-name, build-number, follow
output.cata do
Just: (output) ->
output
.pipe format-tail-output!
.pipe process.stdout
{always, map, chain, to-upper} = require \ramda
{Reader} = require \monet
{format} = require \util
format-greeting = (name) ->
Reader (greeting) ->
format greeting, name
greet = (chain format-greeting) . (map to-upper) . Reader.of . always