Skip to content

Instantly share code, notes, and snippets.

@wteuber
wteuber / test.sh
Created November 11, 2013 13:35
ruby --dump
ruby --dump version
ruby --dump copyright
ruby --dump usage #??
ruby --dump yydebug file.rb
ruby --dump syntax file.rb
ruby --dump parsetree file.rb
ruby --dump parsetree_with_comment file.rb
@wteuber
wteuber / useless_ruby_files.sh
Last active December 28, 2015 08:19
find ruby files without instructions
# FIND:
find . -type f -name "*.rb" | while read filename; do if [ "0" -ne "`expr length "\`ruby --dump insns $filename | tail -n +2 | tr -d "\n " | grep -oue "^0000putnil([^)])[^l]*leave$"\`"`" ]; then echo $filename; fi; done
# REMOVE:
find . -type f -name "*.rb" | while read filename; do if [ "0" -ne "`expr length "\`ruby --dump insns $filename | tail -n +2 | tr -d "\n " | grep -oue "^0000putnil([^)])[^l]*leave$"\`"`" ]; then echo $filename; fi; done | xargs rm
@wteuber
wteuber / gist:7875899
Created December 9, 2013 17:02
Install Nemo as default file browser.
#!/bin/sh
sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
sudo apt-get update
sudo apt-get install nemo nemo-fileroller
xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
# gsettings set org.gnome.desktop.background show-desktop-icons false
# gsettings set org.nemo.desktop show-desktop-icons true
# I had weird desktop rendering effects after changing desktop icon settings like that.
@wteuber
wteuber / clean_tags.sh
Created January 14, 2014 09:14
clean up git tags
# delete all non-version tags
git ls-remote | grep -oe "refs/tags[^\^]*" | uniq | grep -vE "v201[34]-[0-9][0-9]" | xargs git push --delete origin
# delete RCs of 2013 versions
git ls-remote | grep -oe "refs/tags[^\^]*" | uniq | grep -E "v2013-.*rc[0-9][0-9]" | xargs git push --delete origin
# only keep tags locally that are remote
git tag -l | xargs git tag -d && git fetch --tags
@wteuber
wteuber / gist:8475728
Created January 17, 2014 15:52
use MySQL "ENGINE=MEMORY" for rails app, thanks to http://stackoverflow.com/questions/1602494/rails-with-in-memory-database
find ./db/migrate/* | xargs sed -i 's/create_table [^ ]*/&, :options => "ENGINE=MEMORY"/'
tokens = [/^:61/, /^:62F:/]
mt940 = <<MT940
:20:951110
:25:45050050/76198810
:28:27/01
:60F:C951016DEM84349,74
:61:951017D6800,NCHK16703074
:86:999PN5477SCHECK-NR. 0000016703074
:61:951017D620,3NSTON
#!/usr/bin/env ruby
# encoding: utf-8
require 'yaml'
require 'active_support/hash_with_indifferent_access'
class Hash
def self.new_from_hash_copying_default(hash)
hash = hash.to_hash
new(hash).tap do |new_hash|
@wteuber
wteuber / add_newline.sh
Last active August 29, 2015 14:05
No newline at end of file? These bash snippets will help you add new line at end of files.
#define file extensions that should be regarded
EXT=(css ejs erb gemspec gitignore html js json md mustache rake rb rdoc rspec ru scss sh sql txt ui xml xsd yardopts yml)
EXT=$(printf "\|%s" "${EXT[@]}")
EXT=${EXT:2}
# git:
git ls-files "*.*" | grep "\.\($EXT\)$" | sed "s/^/\'/; s/$/\'/;" | xargs sed -i -e '$a\'
@wteuber
wteuber / list_file_extensions.sh
Last active August 29, 2015 14:05
list file extensions
# plain
find . -name '*.*' | sed 's/.*\.//' | sort -u | tr "\n" " "
# git
git ls-files "*.*" | sed 's/.*\.//' | sort -u | tr "\n" " "
# Explained
# find . -name '*.*' # List all files containing a '.'
# git ls-files "*.*" # List all tracked files containing a '.'
@wteuber
wteuber / no_input_10.sh
Last active October 3, 2023 15:01
x11 disable all input devices for 10 seconds
inputs=($(xinput --list --id-only | sort -hr | tr "\n" " "))
for i in "${inputs[@]}"; do
echo $i
xinput --disable $i
done
sleep 10
for i in "${inputs[@]}"; do xinput --enable $i; done