sakuric 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +13 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +60 -0
- data/HISTORY.yml +13 -0
- data/INSTALL +5 -0
- data/LICENSE +1 -0
- data/Makefile +19 -0
- data/Manifest +405 -0
- data/README.md +72 -0
- data/Rakefile +4 -0
- data/TODO +3 -0
- data/VERSION +1 -0
- data/bashrc +30 -0
- data/bashrc.d/00-functions.include +7 -0
- data/bashrc.d/01-sakura_checks.include +15 -0
- data/bashrc.d/02-uname.include +11 -0
- data/bashrc.d/80-ruby.include +4 -0
- data/bashrc.d/99-dirs.include +11 -0
- data/bashrc.d/aliases.include +20 -0
- data/bashrc.d/common.include +7 -0
- data/bashrc.d/local.d/README +1 -0
- data/bashrc.d/local.d/nothing.include +0 -0
- data/bashrc.d/uname.d/Darwin +6 -0
- data/bashrc.d/uname.d/Linux +0 -0
- data/bashrc.local.sample +11 -0
- data/bin/10 +7 -0
- data/bin/10times +7 -0
- data/bin/1every +22 -0
- data/bin/1everyN +22 -0
- data/bin/1suN +22 -0
- data/bin/2 +5 -0
- data/bin/act +24 -0
- data/bin/amarelo +2 -0
- data/bin/arancio +4 -0
- data/bin/arcobaleno +10 -0
- data/bin/bianco +3 -0
- data/bin/black +2 -0
- data/bin/brew-install +3 -0
- data/bin/cache +50 -0
- data/bin/cache3 +50 -0
- data/bin/cheorae +4 -0
- data/bin/colorastdouterr +37 -0
- data/bin/cp2desktop +3 -0
- data/bin/create-git-repo.sh +24 -0
- data/bin/csoe +37 -0
- data/bin/data +3 -0
- data/bin/derive +90 -0
- data/bin/dimmi +31 -0
- data/bin/dimmiora +4 -0
- data/bin/doppioni +48 -0
- data/bin/du- +9 -0
- data/bin/duplicates +48 -0
- data/bin/echodo +7 -0
- data/bin/ensure_line_present +82 -0
- data/bin/epoch2date +5 -0
- data/bin/fanout +100 -0
- data/bin/find-broken-symlink +26 -0
- data/bin/find-duplicates +48 -0
- data/bin/find-special-chars-within-filenames +12 -0
- data/bin/fix-terminal +5 -0
- data/bin/gce-create-centos-instance +5 -0
- data/bin/gce-create-custom-image +8 -0
- data/bin/gce-curl-get-instances-for-project +7 -0
- data/bin/gce-get-token +3 -0
- data/bin/gce-getproject-metadata +35 -0
- data/bin/gce-public-ip +4 -0
- data/bin/gcutil-fetch +36 -0
- data/bin/giallo +2 -0
- data/bin/git-clone-in-non-empty-dir +21 -0
- data/bin/git-ignore +3 -0
- data/bin/git-repos +98 -0
- data/bin/git-repos.py +99 -0
- data/bin/gitinfo +2 -0
- data/bin/google-spreadsheet-cat +40 -0
- data/bin/google_ips +5 -0
- data/bin/gray +3 -0
- data/bin/green +2 -0
- data/bin/grigio +3 -0
- data/bin/gsutil-debug-bucket +12 -0
- data/bin/gsutil-get-oauth2-token +4 -0
- data/bin/gugol-image +74 -0
- data/bin/hamachi-ubuntu-install +17 -0
- data/bin/head-1^-1 +5 -0
- data/bin/ifdownup +13 -0
- data/bin/immature/ok2 +25 -0
- data/bin/immature/twice-still-broken +9 -0
- data/bin/install-gic-repo +13 -0
- data/bin/install-sakura-on-debian-latest +6 -0
- data/bin/iphoto_big_files.sh +37 -0
- data/bin/itunes +140 -0
- data/bin/jason-xpath.rb +54 -0
- data/bin/jsawk +1128 -0
- data/bin/json-xpath.rb +54 -0
- data/bin/keepup +13 -0
- data/bin/lsof-top10 +3 -0
- data/bin/minicook +218 -0
- data/bin/mv2. +2 -0
- data/bin/mv2desktop +2 -0
- data/bin/mv2dropbox +2 -0
- data/bin/mv2here +2 -0
- data/bin/mvto +39 -0
- data/bin/nero +2 -0
- data/bin/never_as_root +18 -0
- data/bin/not +16 -0
- data/bin/ok +42 -0
- data/bin/orange +4 -0
- data/bin/pink +2 -0
- data/bin/polygen-dell +7 -0
- data/bin/polygen-heanet +6 -0
- data/bin/polygen-labs +4 -0
- data/bin/print_key_val +4 -0
- data/bin/rainbow +10 -0
- data/bin/recipe +19 -0
- data/bin/red +2 -0
- data/bin/remember-command +140 -0
- data/bin/remember-command.rb +140 -0
- data/bin/richelp +99 -0
- data/bin/ricorda-comando +140 -0
- data/bin/rosa +2 -0
- data/bin/rosso +2 -0
- data/bin/run-parts.sh +50 -0
- data/bin/sakura-check-version +48 -0
- data/bin/sakura-init.DRAFT +5 -0
- data/bin/sakura-version +2 -0
- data/bin/sano +5 -0
- data/bin/sbianca +3 -0
- data/bin/sblua +2 -0
- data/bin/setterm-reset +5 -0
- data/bin/sgialla +2 -0
- data/bin/sgrigia +2 -0
- data/bin/split +37 -0
- data/bin/split.rb +37 -0
- data/bin/srosa +1 -0
- data/bin/srossa +2 -0
- data/bin/strip-white-spaces +2 -0
- data/bin/stty-sane +5 -0
- data/bin/sudo^-1 +18 -0
- data/bin/sverda +6 -0
- data/bin/swift-saio-install.sh +336 -0
- data/bin/synergyc +0 -0
- data/bin/synergys +0 -0
- data/bin/syracuse.pl +29 -0
- data/bin/tail-n+2 +5 -0
- data/bin/tellme +31 -0
- data/bin/tellme-time +4 -0
- data/bin/timeout3 +91 -0
- data/bin/top5 +4 -0
- data/bin/trim +4 -0
- data/bin/trova-broken-symlink +26 -0
- data/bin/twice +5 -0
- data/bin/twice.rb +5 -0
- data/bin/ubuntu-install-hamachi64 +17 -0
- data/bin/ultimo +5 -0
- data/bin/upload.py +2380 -0
- data/bin/usleep +0 -0
- data/bin/varia +90 -0
- data/bin/verde +2 -0
- data/bin/vermelho +2 -0
- data/bin/vim-whereveritis +5 -0
- data/bin/viola +1 -0
- data/bin/virsh-list-all-vms.py +21 -0
- data/bin/virtualbox-manage +41 -0
- data/bin/weekend +12 -0
- data/bin/whattimeisit +4 -0
- data/bin/whereis-ip +5 -0
- data/bin/white +3 -0
- data/bin/whitefy +3 -0
- data/bin/yellow +2 -0
- data/bin/yellowfy +2 -0
- data/bin/zombies +25 -0
- data/docz/polygen/dell.grm +100 -0
- data/docz/polygen/frati.grm +85 -0
- data/docz/polygen/heanet.grm +54 -0
- data/docz/richelp/gcompute.yml +52 -0
- data/docz/richelp/gcutil.yml +52 -0
- data/docz/richelp/gmail.yml +2 -0
- data/docz/richelp/ruby.yml +81 -0
- data/docz/richelp/sakura.yml +20 -0
- data/docz/richelp/sql.yml +12 -0
- data/docz/richelp/ubuntu.yml +22 -0
- data/docz/richelp/yaml.yml +39 -0
- data/docz/richelp/yml.yml +39 -0
- data/etc/sakura/devel.yml +36 -0
- data/etc/synergy.conf.example +37 -0
- data/images/color-sample.png +0 -0
- data/images/google.jpg +0 -0
- data/images/icons/toilet.png +0 -0
- data/images/sakura.jpg +0 -0
- data/images/sakura2.jpg +0 -0
- data/init.rb +5 -0
- data/lib/classes/arrays.rb +246 -0
- data/lib/classes/debug_ric.rb +196 -0
- data/lib/classes/fake_data.rb +8 -0
- data/lib/classes/ric_debug.rb +0 -0
- data/lib/classes/ricconf.rb +110 -0
- data/lib/classes/richelp.rb +70 -0
- data/lib/classes/strings.rb +284 -0
- data/lib/facter/google_compute_engine.rb +10 -0
- data/lib/recipes/20120411-puppet-rump-palladius.recipe +2 -0
- data/lib/recipes/20120726-skype.ubuntu.recipe +16 -0
- data/lib/recipes/20130206-puppet3.ubuntu.recipe +32 -0
- data/lib/recipes/20130206-redis.linux.recipe +17 -0
- data/lib/recipes/20130208-vanilla.linux.recipe +37 -0
- data/lib/recipes/Makefile +4 -0
- data/lib/recipes/README.md +29 -0
- data/lib/recipes/scripts/redis.sh +14 -0
- data/lib/ric.rb +156 -0
- data/lib/ric_colors.rb +313 -0
- data/lib/ric_strings.rb +285 -0
- data/lib/sonice-players/itunes_mac.rb +43 -0
- data/lib/sonice-players/itunes_win.rb +47 -0
- data/lib/sonice-players/mpd.rb +45 -0
- data/lib/sonice-players/rhythmbox.rb +38 -0
- data/profile +1 -0
- data/sakuric.gemspec +40 -0
- data/sbin/install-sakura-on-debian +25 -0
- data/sbin/make-install.sh +10 -0
- data/sbin/mate-createsymlink +4 -0
- data/sounds/0.ogg +0 -0
- data/sounds/0.wav +0 -0
- data/sounds/01.ogg +0 -0
- data/sounds/02.ogg +0 -0
- data/sounds/03.ogg +0 -0
- data/sounds/08.ogg +0 -0
- data/sounds/09.ogg +0 -0
- data/sounds/1.ogg +0 -0
- data/sounds/1.wav +0 -0
- data/sounds/10.ogg +0 -0
- data/sounds/100.ogg +0 -0
- data/sounds/11.ogg +0 -0
- data/sounds/12.ogg +0 -0
- data/sounds/13.ogg +0 -0
- data/sounds/14.ogg +0 -0
- data/sounds/15.ogg +0 -0
- data/sounds/16.ogg +0 -0
- data/sounds/17.ogg +0 -0
- data/sounds/18.ogg +0 -0
- data/sounds/19.ogg +0 -0
- data/sounds/2.ogg +0 -0
- data/sounds/2.wav +0 -0
- data/sounds/20.ogg +0 -0
- data/sounds/21.ogg +0 -0
- data/sounds/22.ogg +0 -0
- data/sounds/23.ogg +0 -0
- data/sounds/24.ogg +0 -0
- data/sounds/26.ogg +0 -0
- data/sounds/3.ogg +0 -0
- data/sounds/3.wav +0 -0
- data/sounds/30.ogg +0 -0
- data/sounds/34.ogg +0 -0
- data/sounds/4.ogg +0 -0
- data/sounds/4.wav +0 -0
- data/sounds/40.ogg +0 -0
- data/sounds/42.ogg +0 -0
- data/sounds/45.ogg +0 -0
- data/sounds/47.ogg +0 -0
- data/sounds/5.ogg +0 -0
- data/sounds/5.wav +0 -0
- data/sounds/50.ogg +0 -0
- data/sounds/6.ogg +0 -0
- data/sounds/6.wav +0 -0
- data/sounds/60.ogg +0 -0
- data/sounds/7.ogg +0 -0
- data/sounds/7.wav +0 -0
- data/sounds/70.ogg +0 -0
- data/sounds/8.ogg +0 -0
- data/sounds/8.wav +0 -0
- data/sounds/80.ogg +0 -0
- data/sounds/9.ogg +0 -0
- data/sounds/9.wav +0 -0
- data/sounds/90.ogg +0 -0
- data/sounds/a.ogg +0 -0
- data/sounds/aaahhh.ogg +0 -0
- data/sounds/abologna.ogg +0 -0
- data/sounds/adargenta.ogg +0 -0
- data/sounds/alzatiecammina.ogg +0 -0
- data/sounds/apache.ogg +0 -0
- data/sounds/attenzione.ogg +0 -0
- data/sounds/awesome.m4a +0 -0
- data/sounds/bazinga.mp3 +0 -0
- data/sounds/bazinga.ogg +0 -0
- data/sounds/bela regaz.wav +0 -0
- data/sounds/benvenuti.wav +0 -0
- data/sounds/benvenuti2.wav +0 -0
- data/sounds/bergonz.ogg +0 -0
- data/sounds/boh.ogg +0 -0
- data/sounds/buahah.ogg +0 -0
- data/sounds/buonasera.ogg +0 -0
- data/sounds/buongiorno.ogg +0 -0
- data/sounds/burp.ogg +0 -0
- data/sounds/carlo.ogg +0 -0
- data/sounds/cena.ogg +0 -0
- data/sounds/che figata.m4a +0 -0
- data/sounds/che figlio di puttana.m4a +0 -0
- data/sounds/che.ogg +0 -0
- data/sounds/ciao.ogg +0 -0
- data/sounds/ciao.wav +0 -0
- data/sounds/da.ogg +0 -0
- data/sounds/davide.ogg +0 -0
- data/sounds/demone.ogg +0 -0
- data/sounds/dhcp.ogg +0 -0
- data/sounds/dinuovo.ogg +0 -0
- data/sounds/dns.ogg +0 -0
- data/sounds/dopo.ogg +0 -0
- data/sounds/e'.ogg +0 -0
- data/sounds/eattivo.ogg +0 -0
- data/sounds/ee.ogg +0 -0
- data/sounds/ehi.ogg +0 -0
- data/sounds/eoragiu.ogg +0 -0
- data/sounds/eorasu.ogg +0 -0
- data/sounds/eripartita.ogg +0 -0
- data/sounds/estato.ogg +0 -0
- data/sounds/estatoriavviato.ogg +0 -0
- data/sounds/fratro.ogg +0 -0
- data/sounds/frozenbubble.ogg +0 -0
- data/sounds/funziona.ogg +0 -0
- data/sounds/go raibh mile maith agaibh.m4a +0 -0
- data/sounds/grazie.ogg +0 -0
- data/sounds/h1.ogg +0 -0
- data/sounds/hainuovaposta.ogg +0 -0
- data/sounds/hogiamangiato.ogg +0 -0
- data/sounds/host.ogg +0 -0
- data/sounds/il.ogg +0 -0
- data/sounds/ilcomputer.ogg +0 -0
- data/sounds/ilnumerodaleiselezionatoe.ogg +0 -0
- data/sounds/ilprocesso.ogg +0 -0
- data/sounds/ilprogramma.ogg +0 -0
- data/sounds/ilservizio.ogg +0 -0
- data/sounds/imap.ogg +0 -0
- data/sounds/imieisuperpoterimidiconoche.ogg +0 -0
- data/sounds/infunzione.ogg +0 -0
- data/sounds/inpunto.ogg +0 -0
- data/sounds/ipmon.ogg +0 -0
- data/sounds/laconnessioneadinternet.ogg +0 -0
- data/sounds/lastampante.ogg +0 -0
- data/sounds/lazzaron.ogg +0 -0
- data/sounds/ldap.ogg +0 -0
- data/sounds/linterfaccia.ogg +0 -0
- data/sounds/lucilla.ogg +0 -0
- data/sounds/ma vaffanculo.m4a +0 -0
- data/sounds/majjal.wav +0 -0
- data/sounds/mamma.ogg +0 -0
- data/sounds/mauro.ogg +0 -0
- data/sounds/max.ogg +0 -0
- data/sounds/meerda.wav +0 -0
- data/sounds/meno.ogg +0 -0
- data/sounds/merda clo.wav +0 -0
- data/sounds/mezza.ogg +0 -0
- data/sounds/mila.ogg +0 -0
- data/sounds/mille.ogg +0 -0
- data/sounds/minuti.ogg +0 -0
- data/sounds/named.ogg +0 -0
- data/sounds/no.ogg +0 -0
- data/sounds/nohofame.ogg +0 -0
- data/sounds/nonfunziona.ogg +0 -0
- data/sounds/nonriescoatrovare.ogg +0 -0
- data/sounds/nonsarebbeoradilavorare.ogg +0 -0
- data/sounds/nonstalavorando.ogg +0 -0
- data/sounds/numero.wav +0 -0
- data/sounds/ooohhh.ogg +0 -0
- data/sounds/pinger.ogg +0 -0
- data/sounds/pocofa.ogg +0 -0
- data/sounds/pop3.ogg +0 -0
- data/sounds/porca puttana.m4a +0 -0
- data/sounds/porcapupazza.ogg +0 -0
- data/sounds/ppp.ogg +0 -0
- data/sounds/pranzo.ogg +0 -0
- data/sounds/prego.ogg +0 -0
- data/sounds/prima.ogg +0 -0
- data/sounds/qualcosamidice.ogg +0 -0
- data/sounds/raggiungibile.ogg +0 -0
- data/sounds/riccardo.ogg +0 -0
- data/sounds/salsa ridge.wav +0 -0
- data/sounds/scusa.ogg +0 -0
- data/sounds/seriously man.m4a +0 -0
- data/sounds/si.ogg +0 -0
- data/sounds/sito porno con sonoro.wav +0 -0
- data/sounds/socmel.wav +0 -0
- data/sounds/sono.ogg +0 -0
- data/sounds/sonoacasa.ogg +0 -0
- data/sounds/sonole.ogg +0 -0
- data/sounds/sputo.ogg +0 -0
- data/sounds/ssh.ogg +0 -0
- data/sounds/stagiocando.ogg +0 -0
- data/sounds/statospento.ogg +0 -0
- data/sounds/stopaiodipalle.ogg +0 -0
- data/sounds/thesedicks.wav +0 -0
- data/sounds/tornatosu.ogg +0 -0
- data/sounds/trapoco.ogg +0 -0
- data/sounds/trequarti.ogg +0 -0
- data/sounds/tutti.ogg +0 -0
- data/sounds/una.ogg +0 -0
- data/sounds/unquarto.ogg +0 -0
- data/sounds/virgola.ogg +0 -0
- data/sources/c/usleep.c +50 -0
- data/spec/my_first_spec.rb +6 -0
- data/tasks/sakuric-gem.rake +21 -0
- data/tasks/testing.rake +15 -0
- data/templates/bashrc.inject +10 -0
- data/templates/happy_christmas.ascii_art +5 -0
- data/test/roodi.sh +10 -0
- data/test/test_mini_failing.rb +3 -0
- data/test/test_mini_ok.rb +3 -0
- data/test/test_ruby_syntax.sh +12 -0
- data/third-party/jsawk/README.markdown +437 -0
- data/third-party/jsawk/jsawk +1128 -0
- metadata +835 -0
data/bin/gitinfo
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/ruby1.8
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "google_drive"
|
5
|
+
require "socket"
|
6
|
+
|
7
|
+
VER = '1.1'
|
8
|
+
|
9
|
+
# TODO change your account here!
|
10
|
+
user = 'YOUR_USER@gmail.com' # Your gmail account
|
11
|
+
pass = 'YOUR_TOKEN_DONT_USE_THE_PASSWORD!' # GoogleSpreadsheet-specific
|
12
|
+
default_id = '0AlCr2c3SCUOjdHZ5aUpxTTQzNGxQRkZCTFNYNUVSMWc' # Your Google Spreadsheet ID
|
13
|
+
|
14
|
+
default_worksheet = 0
|
15
|
+
doc_id = ARGV[0] rescue default_id
|
16
|
+
worksheet_id = ARGV[1].to_i rescue default_worksheet
|
17
|
+
url = "https://docs.google.com/a/google.com/spreadsheet/ccc?key=#{doc_id}#gid=#{worksheet_id}"
|
18
|
+
|
19
|
+
def usage()
|
20
|
+
$stderr.puts "Usage: #{$0} [spreadhseet_id] [worksheet_id]"
|
21
|
+
end
|
22
|
+
|
23
|
+
$session = GoogleDrive.login(user,pass)
|
24
|
+
|
25
|
+
# First worksheet of
|
26
|
+
ws = $session.spreadsheet_by_key(doc_id).worksheets[worksheet_id]
|
27
|
+
|
28
|
+
# Gets content of A2 cell.
|
29
|
+
#p ws[2, 1] #==> "hoge"
|
30
|
+
|
31
|
+
|
32
|
+
# Dumps all cells.
|
33
|
+
$stderr.puts "Dumping document Rows/Cols: #{ws.num_rows}x#{ws.num_cols}x"
|
34
|
+
$stderr.puts "================================================================================"
|
35
|
+
ws.rows.each do |row|
|
36
|
+
puts row.join("\t")
|
37
|
+
end
|
38
|
+
$stderr.puts "================================================================================"
|
39
|
+
$stderr.puts "#For curiosity, take a look here: #{url}"
|
40
|
+
|
data/bin/google_ips
ADDED
data/bin/gray
ADDED
data/bin/green
ADDED
data/bin/grigio
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
BUCKET=${1:-rcarlesso}
|
4
|
+
SITE=https://$BUCKET.commondatastorage.googleapis.com
|
5
|
+
|
6
|
+
set -x
|
7
|
+
curl -v -H "Authorization: Bearer $(gsutil-get-oauth2-token)" "$SITE"
|
8
|
+
RET=$?
|
9
|
+
set +x
|
10
|
+
echo
|
11
|
+
echo "= Connection to $SITE returned: $RET ="
|
12
|
+
exit $RET
|
data/bin/gugol-image
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# @vote = 9
|
4
|
+
# @comment Questo script e' una autentica figata!!!
|
5
|
+
|
6
|
+
$BASEDIR = "/tmp/.gugol_image/"
|
7
|
+
DFLT_ARG = %w{ spaghetti alla bolognese }
|
8
|
+
$do_it = true
|
9
|
+
|
10
|
+
###### FROM rcarlesso library
|
11
|
+
def debug_on(expl)
|
12
|
+
$DEBUG = true
|
13
|
+
end
|
14
|
+
def deb(s)
|
15
|
+
print s if $DEBUG
|
16
|
+
end
|
17
|
+
class String
|
18
|
+
def depurate_for_file
|
19
|
+
gsub(/[\/: \.]/ , '_')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
#### END RICLIB
|
23
|
+
|
24
|
+
def good_extension?(url)
|
25
|
+
File.extname(url).downcase.match( /(jpg|png|gif)$/ ) ? true : false
|
26
|
+
end
|
27
|
+
|
28
|
+
def download_url(line,match)
|
29
|
+
url = line.gsub(/^.*#{match}=/,'').split('&')[0]
|
30
|
+
deb "MATCH/URL: #{match} // #{url}"
|
31
|
+
deb url
|
32
|
+
puts url if $dry_run
|
33
|
+
file_name = File.basename(url).downcase
|
34
|
+
if good_extension?(url)
|
35
|
+
`wget '#{url}' -O '#{$mydir}/#{file_name}' 1>/dev/null 2>/dev/null &` if $do_it
|
36
|
+
else
|
37
|
+
puts "#DEB# Skipping: #{red(url) rescue url}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_url(query)
|
42
|
+
"http://images.google.com/images?hl=en&um=1&sa=1&q=#{query}"
|
43
|
+
end
|
44
|
+
|
45
|
+
def gugol_image(query)
|
46
|
+
out = `lynx --dump "#{get_url query}"`
|
47
|
+
$mydir = $BASEDIR + query.depurate_for_file() + '/'
|
48
|
+
deb "BaseDir: #{$mydir}"
|
49
|
+
`mkdir -p #{$mydir}`
|
50
|
+
out.split("\n").grep( /imgurl=/ ).each{ |line|
|
51
|
+
download_url(line, 'imgurl')
|
52
|
+
}
|
53
|
+
# on Mac it works... on Linux it doesnt
|
54
|
+
`open #{$mydir} || xdg-open #{$mydir}` if $do_it
|
55
|
+
puts "Files downloaded in: #{$mydir}"# if mac or linux
|
56
|
+
end
|
57
|
+
|
58
|
+
def main
|
59
|
+
debug_args = ARGV.select{|arg| arg.match /-d/ }.size > 0
|
60
|
+
$dry_run = ARGV.select{|arg| arg.match /-n/ }.size > 0
|
61
|
+
if debug_args
|
62
|
+
debug_on("debug args is #{debug_args}")
|
63
|
+
$do_it = false
|
64
|
+
end
|
65
|
+
if $dry_run
|
66
|
+
deb "# dryrun enabled: just printing stuff"
|
67
|
+
$do_it = false
|
68
|
+
end
|
69
|
+
query = (ARGV.empty? ? DFLT_ARG : ARGV.select{|a| ! a.match /^-/ } ).join(' ')
|
70
|
+
gugol_image(query)
|
71
|
+
puts ".. or try yourself: #{"open '#{ get_url(query) }'"}"
|
72
|
+
end
|
73
|
+
|
74
|
+
main()
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
# for 64bit
|
3
|
+
HAMACHI64=logmein-hamachi_2.1.0.17-1_amd64.deb
|
4
|
+
HAMACHI32=logmein-hamachi_2.1.0.17-1_i386.deb
|
5
|
+
|
6
|
+
HAMACHI=$HAMACHI32
|
7
|
+
|
8
|
+
echo Installing hamachi arch: $HAMACHI ...
|
9
|
+
|
10
|
+
sudo add-apt-repository ppa:webupd8team/haguichi
|
11
|
+
wget https://secure.logmein.com/labs/$HAMACHI &&
|
12
|
+
dpkg -i $HAMACHI &&
|
13
|
+
echo This should try to install hamachi and fail but dont worry.
|
14
|
+
sudo apt-get -f install &&
|
15
|
+
sudo apt-get update &&
|
16
|
+
sudo apt-get install -y hamachi haguichi
|
17
|
+
|
data/bin/head-1^-1
ADDED
data/bin/ifdownup
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
INTF=${1:-eth0}
|
4
|
+
#TAGS=ubuntu,debian
|
5
|
+
|
6
|
+
echo "$0 v$VER, down/up of interface '$INTF'.."
|
7
|
+
|
8
|
+
echo "Crontabbing to take it up in a minute.."
|
9
|
+
echo ifup $INTF | at now + 1 min
|
10
|
+
|
11
|
+
echo "Down and up within 5secs of interface '$INTF'..."
|
12
|
+
sleep 5 | ifdown $INTF && ifup $INTF
|
13
|
+
|
data/bin/immature/ok2
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
FILE=`mktemp -t okidok`
|
4
|
+
|
5
|
+
if [ "$1" = '-' ] ; then
|
6
|
+
echo 'Called ok with -, assuming STDIN!'
|
7
|
+
cat | ricnotify yellow "OK from STDIN '$*'"
|
8
|
+
exit $?
|
9
|
+
fi
|
10
|
+
|
11
|
+
#if "$@" |tee /tmp/ok1 2>&1 ; then
|
12
|
+
echo "`data` Start '$*'"
|
13
|
+
if "$@" 2>&1 | tee "$FILE" ; then # |tee /tmp/ok1 ; then
|
14
|
+
verde "OK: $*"
|
15
|
+
#echo -20 "$FILE" | ricnotify green "OK '$*'"
|
16
|
+
tail -20 "$FILE" | growlnotify -t "OK '$*'"
|
17
|
+
echo "`data` End (OK)"
|
18
|
+
exit 0
|
19
|
+
else
|
20
|
+
RET=$?
|
21
|
+
rosso "NO(ret=$RET): $*"
|
22
|
+
echo "`data` End (ERR) '$*'"
|
23
|
+
echo "There were some errors which returned: $RET" | ricnotify red "Err with '$*'"
|
24
|
+
exit $RET
|
25
|
+
fi
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Riccardo only!
|
4
|
+
|
5
|
+
set -u
|
6
|
+
set -e
|
7
|
+
set -x
|
8
|
+
|
9
|
+
echo Installing Ric repo in appropriate dir...
|
10
|
+
cd ~/ws
|
11
|
+
echodo git clone ssh://git@bitbucket.org/palladius/gic.git
|
12
|
+
verde Ok, enjoy Ric.
|
13
|
+
yellow 'PS. If you were succesfully able to install my repo, please report it to palladiusbonton@gmail.com with some proof and Ill be glad to pay you some bucks!'
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Usage:
|
4
|
+
# iphoto_big_files.sh 300M
|
5
|
+
# iphoto_big_files.sh 300M -print0
|
6
|
+
# iphoto_big_files.sh 300M -print0
|
7
|
+
VER=0.9
|
8
|
+
SIZE=${1:-150M}
|
9
|
+
shift
|
10
|
+
ADDITIONAL_OPTS=$*
|
11
|
+
DIR=~/iPhoto\ Library/Masters/
|
12
|
+
|
13
|
+
function usage() {
|
14
|
+
echo "$0 v$VER"
|
15
|
+
echo "Usage: $0 [-h] [--dest DESTINATIONDIR] [SIZE=150M]"
|
16
|
+
echo -en "Sample usages: "
|
17
|
+
echo '
|
18
|
+
iphoto_big_files.sh -h # provides help
|
19
|
+
iphoto_big_files.sh 300M # finds files bigger than 300M
|
20
|
+
iphoto_big_files.sh 300M -print0 # .. and prints them in a more "xargsable" way
|
21
|
+
iphoto_big_files.sh --dest DESTDIR # to be implemented yet :(
|
22
|
+
More elaborate:
|
23
|
+
iphoto_big_files.sh 400M -print0 | xargs -0 mvto /media/myhd/bigvideos/
|
24
|
+
iphoto_big_files.sh 100M | while read F ; do mv -n "$F" /Volumes/MyDisk/MyDir/; done # moves without overwriting
|
25
|
+
'
|
26
|
+
}
|
27
|
+
#iphoto_big_files.sh 60M | while read t ; do mv -n "$t" /Volumes/FreeAgent\ GoFlex\ Drive/important-backups/; done
|
28
|
+
|
29
|
+
# cathches '-h', '--help' and much else :(
|
30
|
+
if echo "$SIZE" | fgrep -q -- "-h" ; then
|
31
|
+
usage
|
32
|
+
exit 1
|
33
|
+
fi
|
34
|
+
|
35
|
+
echo "# Find big movies in iPhoto dir ($DIR) bigger than $SIZE (additional opts: '$ADDITIONAL_OPTS'):" >&2
|
36
|
+
#echo find "$DIR" -iname '*.mov' -size $SIZE
|
37
|
+
find "$DIR" -iname '*.mov' -size +$SIZE $ADDITIONAL_OPTS
|
data/bin/itunes
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
# http://hints.macworld.com/article.php?story=20011108211802830
|
3
|
+
#
|
4
|
+
####################################
|
5
|
+
# iTunes Command Line Control v1.0
|
6
|
+
# written by David Schlosnagle
|
7
|
+
# created 2001.11.08
|
8
|
+
# adapted by Riccardo Carlesso
|
9
|
+
####################################
|
10
|
+
VER="1.1"
|
11
|
+
|
12
|
+
usage () {
|
13
|
+
echo "------------------------------------";
|
14
|
+
echo "iTunes Command Line Interface (v$VER)";
|
15
|
+
echo "------------------------------------";
|
16
|
+
echo "Usage: `basename $0` <option>";
|
17
|
+
echo;
|
18
|
+
echo "Options:";
|
19
|
+
echo " [h]elp = prints this message";
|
20
|
+
echo " [m]ute = Mute iTunes' volume.";
|
21
|
+
echo " [n]ext = Go to the next track.";
|
22
|
+
echo " [no]shuf = Do not shuffle current playlist";
|
23
|
+
echo " [p]ause = Pause iTunes.";
|
24
|
+
echo " pl[a]y = Start playing iTunes.";
|
25
|
+
echo " [pl]aylist [<PLNAME>] = Show playlists saved in iTunes or play selected playlist ";
|
26
|
+
echo " [pr]ev = Go to the previous track.";
|
27
|
+
echo " q quit = Quit iTunes.";
|
28
|
+
echo " [sh]uf = Shuffle current playlist";
|
29
|
+
echo " [st]atus = Shows iTunes' status, current artist and track.";
|
30
|
+
echo " st[o]p = Stop iTunes.";
|
31
|
+
echo " [u]nmute = Unmute iTunes' volume.";
|
32
|
+
echo " v vol <NN> = Set iTunes' volume to NN [0-100]";
|
33
|
+
echo " - vol down = Increase iTunes' volume by 10%";
|
34
|
+
echo " + vol up = Increase iTunes' volume by 10%";
|
35
|
+
}
|
36
|
+
|
37
|
+
if [ $# = 0 ]; then
|
38
|
+
usage;
|
39
|
+
fi
|
40
|
+
|
41
|
+
while [ $# -gt 0 ]; do
|
42
|
+
arg=$1;
|
43
|
+
case $arg in
|
44
|
+
st|"status" ) state=`osascript -e 'tell application "iTunes" to player state as string'`;
|
45
|
+
echo "iTunes is currently $state.";
|
46
|
+
if [ $state = "playing" ]; then
|
47
|
+
artist=`osascript -e 'tell application "iTunes" to artist of current track as string'`;
|
48
|
+
track=`osascript -e 'tell application "iTunes" to name of current track as string'`;
|
49
|
+
echo "Current track $artist: $track";
|
50
|
+
fi
|
51
|
+
break ;;
|
52
|
+
# Aliases
|
53
|
+
'+' ) $0 vol up ; break ;;
|
54
|
+
'-' ) $0 vol down ; break ;;
|
55
|
+
|
56
|
+
a|"play" ) echo "Playing iTunes.";
|
57
|
+
osascript -e 'tell application "iTunes" to play';
|
58
|
+
break ;;
|
59
|
+
|
60
|
+
p|"pause" ) echo "Pausing iTunes.";
|
61
|
+
osascript -e 'tell application "iTunes" to pause';
|
62
|
+
break ;;
|
63
|
+
|
64
|
+
n|"next" ) echo "Going to next track." ;
|
65
|
+
osascript -e 'tell application "iTunes" to next track';
|
66
|
+
break ;;
|
67
|
+
|
68
|
+
pr|"prev" ) echo "Going to previous track.";
|
69
|
+
osascript -e 'tell application "iTunes" to previous track';
|
70
|
+
break ;;
|
71
|
+
|
72
|
+
m|"mute" ) echo "Muting iTunes volume level.";
|
73
|
+
osascript -e 'tell application "iTunes" to set mute to true';
|
74
|
+
break ;;
|
75
|
+
|
76
|
+
u|"unmute" ) echo "Unmuting iTunes volume level.";
|
77
|
+
osascript -e 'tell application "iTunes" to set mute to false';
|
78
|
+
break ;;
|
79
|
+
|
80
|
+
v|"vol" )
|
81
|
+
vol=`osascript -e 'tell application "iTunes" to sound volume as integer'`;
|
82
|
+
echo "Changing iTunes volume level: '$vol'";
|
83
|
+
if [ "$2" = '' ]; then
|
84
|
+
usage
|
85
|
+
break
|
86
|
+
fi
|
87
|
+
if [ $2 = "up" ]; then
|
88
|
+
newvol=$(( vol+10 ));
|
89
|
+
else if [ $2 = "down" ]; then
|
90
|
+
newvol=$(( vol-10 ));
|
91
|
+
else if [ $2 -gt 0 ]; then
|
92
|
+
newvol=$2;
|
93
|
+
fi
|
94
|
+
fi
|
95
|
+
fi
|
96
|
+
osascript -e "tell application \"iTunes\" to set sound volume to $newvol";
|
97
|
+
break ;;
|
98
|
+
|
99
|
+
o|"stop" ) echo "Stopping iTunes.";
|
100
|
+
osascript -e 'tell application "iTunes" to stop';
|
101
|
+
break ;;
|
102
|
+
|
103
|
+
q|"quit" ) echo "Quitting iTunes.";
|
104
|
+
osascript -e 'tell application "iTunes" to quit';
|
105
|
+
exit 1 ;;
|
106
|
+
|
107
|
+
#And the code for showing available playlists, if there is no parameter given.
|
108
|
+
|
109
|
+
## addition playlist of choice
|
110
|
+
"pl"|"playlist" )
|
111
|
+
if [ -n "$2" ]; then
|
112
|
+
shift
|
113
|
+
PLAYLIST="$*"
|
114
|
+
echo "Changing iTunes playlists to '$PLAYLIST'.";
|
115
|
+
osascript -e 'tell application "iTunes"' -e "set new_playlist to \"$PLAYLIST\" as string" -e "play playlist new_playlist" -e "end tell";
|
116
|
+
break ;
|
117
|
+
else
|
118
|
+
# Show available iTunes playlists.
|
119
|
+
echo "Playlists:";
|
120
|
+
osascript -e 'tell application "iTunes"' -e "set allPlaylists to (get name of every playlist)" -e "end tell";
|
121
|
+
break;
|
122
|
+
fi
|
123
|
+
break;;
|
124
|
+
|
125
|
+
sh|"shuf" ) echo "Shuffle is ON.";
|
126
|
+
osascript -e 'tell application "iTunes" to set shuffle of current playlist to 1';
|
127
|
+
break ;;
|
128
|
+
|
129
|
+
no|"noshuf" ) echo "Shuffle is OFF.";
|
130
|
+
osascript -e 'tell application "iTunes" to set shuffle of current playlist to 0';
|
131
|
+
break ;;
|
132
|
+
|
133
|
+
h|"help" | * ) echo "help:";
|
134
|
+
usage;
|
135
|
+
break ;;
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
esac
|
140
|
+
done
|
data/bin/jason-xpath.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
=begin
|
4
|
+
|
5
|
+
Try also the Oauth playground: http://googlecodesamples.com/oauth_playground/
|
6
|
+
|
7
|
+
Solves this problem with GCE. It was:
|
8
|
+
|
9
|
+
curl -s http://metadata/0.1/meta-data/network | python -c "import sys,json; print json.load(sys.stdin)['networkInterface'][0]['accessConfiguration'][0]['externalIp']"
|
10
|
+
|
11
|
+
It becomes:
|
12
|
+
|
13
|
+
curl -s http://metadata/0.1/meta-data/network |json-xpath.rb networkInterface.0.accessConfiguration.0.externalIp
|
14
|
+
|
15
|
+
=end
|
16
|
+
$default_arg = "networkInterface.0.accessConfiguration.0.externalIp"
|
17
|
+
|
18
|
+
class String
|
19
|
+
def is_number?
|
20
|
+
true if Float(self) rescue false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def usage
|
26
|
+
print "Usage: #{$0} <xpath>
|
27
|
+
|
28
|
+
Example: #{$0} #{ $default_arg } # this will find your public IP from GCE metadata
|
29
|
+
(Try to use this in pipe with 'curl http://metadata.google.internal/0.1/meta-data/network'
|
30
|
+
"
|
31
|
+
exit(1)
|
32
|
+
end
|
33
|
+
|
34
|
+
def process_args(dotted_arg)
|
35
|
+
arr_args = dotted_arg.split '.'
|
36
|
+
python_program_original = "import sys, json; print json.load(sys.stdin)['networkInterface'][0]['accessConfiguration'][0]['externalIp'] "
|
37
|
+
python_program = "import sys, json; print json.load(sys.stdin)"
|
38
|
+
args = arr_args.map { |arg| arg.to_s.is_number? ? arg.to_s : "'" + arg + "'" }.map{|x| "[#{x}]" }
|
39
|
+
my_program = python_program + args.join('')
|
40
|
+
|
41
|
+
cmd_exec = "/usr/bin/python -c \"#{my_program}\" 2>/dev/null"
|
42
|
+
myin = $stdin.read
|
43
|
+
%x( #{cmd_exec} )
|
44
|
+
IO.popen(cmd_exec, mode='w') do |io|
|
45
|
+
io.write(myin)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def main
|
50
|
+
usage unless ARGV[0]
|
51
|
+
process_args(ARGV[0])
|
52
|
+
end
|
53
|
+
|
54
|
+
main()
|