sakuric 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (407) hide show
  1. data/CHANGELOG +13 -0
  2. data/Gemfile +22 -0
  3. data/Gemfile.lock +60 -0
  4. data/HISTORY.yml +13 -0
  5. data/INSTALL +5 -0
  6. data/LICENSE +1 -0
  7. data/Makefile +19 -0
  8. data/Manifest +405 -0
  9. data/README.md +72 -0
  10. data/Rakefile +4 -0
  11. data/TODO +3 -0
  12. data/VERSION +1 -0
  13. data/bashrc +30 -0
  14. data/bashrc.d/00-functions.include +7 -0
  15. data/bashrc.d/01-sakura_checks.include +15 -0
  16. data/bashrc.d/02-uname.include +11 -0
  17. data/bashrc.d/80-ruby.include +4 -0
  18. data/bashrc.d/99-dirs.include +11 -0
  19. data/bashrc.d/aliases.include +20 -0
  20. data/bashrc.d/common.include +7 -0
  21. data/bashrc.d/local.d/README +1 -0
  22. data/bashrc.d/local.d/nothing.include +0 -0
  23. data/bashrc.d/uname.d/Darwin +6 -0
  24. data/bashrc.d/uname.d/Linux +0 -0
  25. data/bashrc.local.sample +11 -0
  26. data/bin/10 +7 -0
  27. data/bin/10times +7 -0
  28. data/bin/1every +22 -0
  29. data/bin/1everyN +22 -0
  30. data/bin/1suN +22 -0
  31. data/bin/2 +5 -0
  32. data/bin/act +24 -0
  33. data/bin/amarelo +2 -0
  34. data/bin/arancio +4 -0
  35. data/bin/arcobaleno +10 -0
  36. data/bin/bianco +3 -0
  37. data/bin/black +2 -0
  38. data/bin/brew-install +3 -0
  39. data/bin/cache +50 -0
  40. data/bin/cache3 +50 -0
  41. data/bin/cheorae +4 -0
  42. data/bin/colorastdouterr +37 -0
  43. data/bin/cp2desktop +3 -0
  44. data/bin/create-git-repo.sh +24 -0
  45. data/bin/csoe +37 -0
  46. data/bin/data +3 -0
  47. data/bin/derive +90 -0
  48. data/bin/dimmi +31 -0
  49. data/bin/dimmiora +4 -0
  50. data/bin/doppioni +48 -0
  51. data/bin/du- +9 -0
  52. data/bin/duplicates +48 -0
  53. data/bin/echodo +7 -0
  54. data/bin/ensure_line_present +82 -0
  55. data/bin/epoch2date +5 -0
  56. data/bin/fanout +100 -0
  57. data/bin/find-broken-symlink +26 -0
  58. data/bin/find-duplicates +48 -0
  59. data/bin/find-special-chars-within-filenames +12 -0
  60. data/bin/fix-terminal +5 -0
  61. data/bin/gce-create-centos-instance +5 -0
  62. data/bin/gce-create-custom-image +8 -0
  63. data/bin/gce-curl-get-instances-for-project +7 -0
  64. data/bin/gce-get-token +3 -0
  65. data/bin/gce-getproject-metadata +35 -0
  66. data/bin/gce-public-ip +4 -0
  67. data/bin/gcutil-fetch +36 -0
  68. data/bin/giallo +2 -0
  69. data/bin/git-clone-in-non-empty-dir +21 -0
  70. data/bin/git-ignore +3 -0
  71. data/bin/git-repos +98 -0
  72. data/bin/git-repos.py +99 -0
  73. data/bin/gitinfo +2 -0
  74. data/bin/google-spreadsheet-cat +40 -0
  75. data/bin/google_ips +5 -0
  76. data/bin/gray +3 -0
  77. data/bin/green +2 -0
  78. data/bin/grigio +3 -0
  79. data/bin/gsutil-debug-bucket +12 -0
  80. data/bin/gsutil-get-oauth2-token +4 -0
  81. data/bin/gugol-image +74 -0
  82. data/bin/hamachi-ubuntu-install +17 -0
  83. data/bin/head-1^-1 +5 -0
  84. data/bin/ifdownup +13 -0
  85. data/bin/immature/ok2 +25 -0
  86. data/bin/immature/twice-still-broken +9 -0
  87. data/bin/install-gic-repo +13 -0
  88. data/bin/install-sakura-on-debian-latest +6 -0
  89. data/bin/iphoto_big_files.sh +37 -0
  90. data/bin/itunes +140 -0
  91. data/bin/jason-xpath.rb +54 -0
  92. data/bin/jsawk +1128 -0
  93. data/bin/json-xpath.rb +54 -0
  94. data/bin/keepup +13 -0
  95. data/bin/lsof-top10 +3 -0
  96. data/bin/minicook +218 -0
  97. data/bin/mv2. +2 -0
  98. data/bin/mv2desktop +2 -0
  99. data/bin/mv2dropbox +2 -0
  100. data/bin/mv2here +2 -0
  101. data/bin/mvto +39 -0
  102. data/bin/nero +2 -0
  103. data/bin/never_as_root +18 -0
  104. data/bin/not +16 -0
  105. data/bin/ok +42 -0
  106. data/bin/orange +4 -0
  107. data/bin/pink +2 -0
  108. data/bin/polygen-dell +7 -0
  109. data/bin/polygen-heanet +6 -0
  110. data/bin/polygen-labs +4 -0
  111. data/bin/print_key_val +4 -0
  112. data/bin/rainbow +10 -0
  113. data/bin/recipe +19 -0
  114. data/bin/red +2 -0
  115. data/bin/remember-command +140 -0
  116. data/bin/remember-command.rb +140 -0
  117. data/bin/richelp +99 -0
  118. data/bin/ricorda-comando +140 -0
  119. data/bin/rosa +2 -0
  120. data/bin/rosso +2 -0
  121. data/bin/run-parts.sh +50 -0
  122. data/bin/sakura-check-version +48 -0
  123. data/bin/sakura-init.DRAFT +5 -0
  124. data/bin/sakura-version +2 -0
  125. data/bin/sano +5 -0
  126. data/bin/sbianca +3 -0
  127. data/bin/sblua +2 -0
  128. data/bin/setterm-reset +5 -0
  129. data/bin/sgialla +2 -0
  130. data/bin/sgrigia +2 -0
  131. data/bin/split +37 -0
  132. data/bin/split.rb +37 -0
  133. data/bin/srosa +1 -0
  134. data/bin/srossa +2 -0
  135. data/bin/strip-white-spaces +2 -0
  136. data/bin/stty-sane +5 -0
  137. data/bin/sudo^-1 +18 -0
  138. data/bin/sverda +6 -0
  139. data/bin/swift-saio-install.sh +336 -0
  140. data/bin/synergyc +0 -0
  141. data/bin/synergys +0 -0
  142. data/bin/syracuse.pl +29 -0
  143. data/bin/tail-n+2 +5 -0
  144. data/bin/tellme +31 -0
  145. data/bin/tellme-time +4 -0
  146. data/bin/timeout3 +91 -0
  147. data/bin/top5 +4 -0
  148. data/bin/trim +4 -0
  149. data/bin/trova-broken-symlink +26 -0
  150. data/bin/twice +5 -0
  151. data/bin/twice.rb +5 -0
  152. data/bin/ubuntu-install-hamachi64 +17 -0
  153. data/bin/ultimo +5 -0
  154. data/bin/upload.py +2380 -0
  155. data/bin/usleep +0 -0
  156. data/bin/varia +90 -0
  157. data/bin/verde +2 -0
  158. data/bin/vermelho +2 -0
  159. data/bin/vim-whereveritis +5 -0
  160. data/bin/viola +1 -0
  161. data/bin/virsh-list-all-vms.py +21 -0
  162. data/bin/virtualbox-manage +41 -0
  163. data/bin/weekend +12 -0
  164. data/bin/whattimeisit +4 -0
  165. data/bin/whereis-ip +5 -0
  166. data/bin/white +3 -0
  167. data/bin/whitefy +3 -0
  168. data/bin/yellow +2 -0
  169. data/bin/yellowfy +2 -0
  170. data/bin/zombies +25 -0
  171. data/docz/polygen/dell.grm +100 -0
  172. data/docz/polygen/frati.grm +85 -0
  173. data/docz/polygen/heanet.grm +54 -0
  174. data/docz/richelp/gcompute.yml +52 -0
  175. data/docz/richelp/gcutil.yml +52 -0
  176. data/docz/richelp/gmail.yml +2 -0
  177. data/docz/richelp/ruby.yml +81 -0
  178. data/docz/richelp/sakura.yml +20 -0
  179. data/docz/richelp/sql.yml +12 -0
  180. data/docz/richelp/ubuntu.yml +22 -0
  181. data/docz/richelp/yaml.yml +39 -0
  182. data/docz/richelp/yml.yml +39 -0
  183. data/etc/sakura/devel.yml +36 -0
  184. data/etc/synergy.conf.example +37 -0
  185. data/images/color-sample.png +0 -0
  186. data/images/google.jpg +0 -0
  187. data/images/icons/toilet.png +0 -0
  188. data/images/sakura.jpg +0 -0
  189. data/images/sakura2.jpg +0 -0
  190. data/init.rb +5 -0
  191. data/lib/classes/arrays.rb +246 -0
  192. data/lib/classes/debug_ric.rb +196 -0
  193. data/lib/classes/fake_data.rb +8 -0
  194. data/lib/classes/ric_debug.rb +0 -0
  195. data/lib/classes/ricconf.rb +110 -0
  196. data/lib/classes/richelp.rb +70 -0
  197. data/lib/classes/strings.rb +284 -0
  198. data/lib/facter/google_compute_engine.rb +10 -0
  199. data/lib/recipes/20120411-puppet-rump-palladius.recipe +2 -0
  200. data/lib/recipes/20120726-skype.ubuntu.recipe +16 -0
  201. data/lib/recipes/20130206-puppet3.ubuntu.recipe +32 -0
  202. data/lib/recipes/20130206-redis.linux.recipe +17 -0
  203. data/lib/recipes/20130208-vanilla.linux.recipe +37 -0
  204. data/lib/recipes/Makefile +4 -0
  205. data/lib/recipes/README.md +29 -0
  206. data/lib/recipes/scripts/redis.sh +14 -0
  207. data/lib/ric.rb +156 -0
  208. data/lib/ric_colors.rb +313 -0
  209. data/lib/ric_strings.rb +285 -0
  210. data/lib/sonice-players/itunes_mac.rb +43 -0
  211. data/lib/sonice-players/itunes_win.rb +47 -0
  212. data/lib/sonice-players/mpd.rb +45 -0
  213. data/lib/sonice-players/rhythmbox.rb +38 -0
  214. data/profile +1 -0
  215. data/sakuric.gemspec +40 -0
  216. data/sbin/install-sakura-on-debian +25 -0
  217. data/sbin/make-install.sh +10 -0
  218. data/sbin/mate-createsymlink +4 -0
  219. data/sounds/0.ogg +0 -0
  220. data/sounds/0.wav +0 -0
  221. data/sounds/01.ogg +0 -0
  222. data/sounds/02.ogg +0 -0
  223. data/sounds/03.ogg +0 -0
  224. data/sounds/08.ogg +0 -0
  225. data/sounds/09.ogg +0 -0
  226. data/sounds/1.ogg +0 -0
  227. data/sounds/1.wav +0 -0
  228. data/sounds/10.ogg +0 -0
  229. data/sounds/100.ogg +0 -0
  230. data/sounds/11.ogg +0 -0
  231. data/sounds/12.ogg +0 -0
  232. data/sounds/13.ogg +0 -0
  233. data/sounds/14.ogg +0 -0
  234. data/sounds/15.ogg +0 -0
  235. data/sounds/16.ogg +0 -0
  236. data/sounds/17.ogg +0 -0
  237. data/sounds/18.ogg +0 -0
  238. data/sounds/19.ogg +0 -0
  239. data/sounds/2.ogg +0 -0
  240. data/sounds/2.wav +0 -0
  241. data/sounds/20.ogg +0 -0
  242. data/sounds/21.ogg +0 -0
  243. data/sounds/22.ogg +0 -0
  244. data/sounds/23.ogg +0 -0
  245. data/sounds/24.ogg +0 -0
  246. data/sounds/26.ogg +0 -0
  247. data/sounds/3.ogg +0 -0
  248. data/sounds/3.wav +0 -0
  249. data/sounds/30.ogg +0 -0
  250. data/sounds/34.ogg +0 -0
  251. data/sounds/4.ogg +0 -0
  252. data/sounds/4.wav +0 -0
  253. data/sounds/40.ogg +0 -0
  254. data/sounds/42.ogg +0 -0
  255. data/sounds/45.ogg +0 -0
  256. data/sounds/47.ogg +0 -0
  257. data/sounds/5.ogg +0 -0
  258. data/sounds/5.wav +0 -0
  259. data/sounds/50.ogg +0 -0
  260. data/sounds/6.ogg +0 -0
  261. data/sounds/6.wav +0 -0
  262. data/sounds/60.ogg +0 -0
  263. data/sounds/7.ogg +0 -0
  264. data/sounds/7.wav +0 -0
  265. data/sounds/70.ogg +0 -0
  266. data/sounds/8.ogg +0 -0
  267. data/sounds/8.wav +0 -0
  268. data/sounds/80.ogg +0 -0
  269. data/sounds/9.ogg +0 -0
  270. data/sounds/9.wav +0 -0
  271. data/sounds/90.ogg +0 -0
  272. data/sounds/a.ogg +0 -0
  273. data/sounds/aaahhh.ogg +0 -0
  274. data/sounds/abologna.ogg +0 -0
  275. data/sounds/adargenta.ogg +0 -0
  276. data/sounds/alzatiecammina.ogg +0 -0
  277. data/sounds/apache.ogg +0 -0
  278. data/sounds/attenzione.ogg +0 -0
  279. data/sounds/awesome.m4a +0 -0
  280. data/sounds/bazinga.mp3 +0 -0
  281. data/sounds/bazinga.ogg +0 -0
  282. data/sounds/bela regaz.wav +0 -0
  283. data/sounds/benvenuti.wav +0 -0
  284. data/sounds/benvenuti2.wav +0 -0
  285. data/sounds/bergonz.ogg +0 -0
  286. data/sounds/boh.ogg +0 -0
  287. data/sounds/buahah.ogg +0 -0
  288. data/sounds/buonasera.ogg +0 -0
  289. data/sounds/buongiorno.ogg +0 -0
  290. data/sounds/burp.ogg +0 -0
  291. data/sounds/carlo.ogg +0 -0
  292. data/sounds/cena.ogg +0 -0
  293. data/sounds/che figata.m4a +0 -0
  294. data/sounds/che figlio di puttana.m4a +0 -0
  295. data/sounds/che.ogg +0 -0
  296. data/sounds/ciao.ogg +0 -0
  297. data/sounds/ciao.wav +0 -0
  298. data/sounds/da.ogg +0 -0
  299. data/sounds/davide.ogg +0 -0
  300. data/sounds/demone.ogg +0 -0
  301. data/sounds/dhcp.ogg +0 -0
  302. data/sounds/dinuovo.ogg +0 -0
  303. data/sounds/dns.ogg +0 -0
  304. data/sounds/dopo.ogg +0 -0
  305. data/sounds/e'.ogg +0 -0
  306. data/sounds/eattivo.ogg +0 -0
  307. data/sounds/ee.ogg +0 -0
  308. data/sounds/ehi.ogg +0 -0
  309. data/sounds/eoragiu.ogg +0 -0
  310. data/sounds/eorasu.ogg +0 -0
  311. data/sounds/eripartita.ogg +0 -0
  312. data/sounds/estato.ogg +0 -0
  313. data/sounds/estatoriavviato.ogg +0 -0
  314. data/sounds/fratro.ogg +0 -0
  315. data/sounds/frozenbubble.ogg +0 -0
  316. data/sounds/funziona.ogg +0 -0
  317. data/sounds/go raibh mile maith agaibh.m4a +0 -0
  318. data/sounds/grazie.ogg +0 -0
  319. data/sounds/h1.ogg +0 -0
  320. data/sounds/hainuovaposta.ogg +0 -0
  321. data/sounds/hogiamangiato.ogg +0 -0
  322. data/sounds/host.ogg +0 -0
  323. data/sounds/il.ogg +0 -0
  324. data/sounds/ilcomputer.ogg +0 -0
  325. data/sounds/ilnumerodaleiselezionatoe.ogg +0 -0
  326. data/sounds/ilprocesso.ogg +0 -0
  327. data/sounds/ilprogramma.ogg +0 -0
  328. data/sounds/ilservizio.ogg +0 -0
  329. data/sounds/imap.ogg +0 -0
  330. data/sounds/imieisuperpoterimidiconoche.ogg +0 -0
  331. data/sounds/infunzione.ogg +0 -0
  332. data/sounds/inpunto.ogg +0 -0
  333. data/sounds/ipmon.ogg +0 -0
  334. data/sounds/laconnessioneadinternet.ogg +0 -0
  335. data/sounds/lastampante.ogg +0 -0
  336. data/sounds/lazzaron.ogg +0 -0
  337. data/sounds/ldap.ogg +0 -0
  338. data/sounds/linterfaccia.ogg +0 -0
  339. data/sounds/lucilla.ogg +0 -0
  340. data/sounds/ma vaffanculo.m4a +0 -0
  341. data/sounds/majjal.wav +0 -0
  342. data/sounds/mamma.ogg +0 -0
  343. data/sounds/mauro.ogg +0 -0
  344. data/sounds/max.ogg +0 -0
  345. data/sounds/meerda.wav +0 -0
  346. data/sounds/meno.ogg +0 -0
  347. data/sounds/merda clo.wav +0 -0
  348. data/sounds/mezza.ogg +0 -0
  349. data/sounds/mila.ogg +0 -0
  350. data/sounds/mille.ogg +0 -0
  351. data/sounds/minuti.ogg +0 -0
  352. data/sounds/named.ogg +0 -0
  353. data/sounds/no.ogg +0 -0
  354. data/sounds/nohofame.ogg +0 -0
  355. data/sounds/nonfunziona.ogg +0 -0
  356. data/sounds/nonriescoatrovare.ogg +0 -0
  357. data/sounds/nonsarebbeoradilavorare.ogg +0 -0
  358. data/sounds/nonstalavorando.ogg +0 -0
  359. data/sounds/numero.wav +0 -0
  360. data/sounds/ooohhh.ogg +0 -0
  361. data/sounds/pinger.ogg +0 -0
  362. data/sounds/pocofa.ogg +0 -0
  363. data/sounds/pop3.ogg +0 -0
  364. data/sounds/porca puttana.m4a +0 -0
  365. data/sounds/porcapupazza.ogg +0 -0
  366. data/sounds/ppp.ogg +0 -0
  367. data/sounds/pranzo.ogg +0 -0
  368. data/sounds/prego.ogg +0 -0
  369. data/sounds/prima.ogg +0 -0
  370. data/sounds/qualcosamidice.ogg +0 -0
  371. data/sounds/raggiungibile.ogg +0 -0
  372. data/sounds/riccardo.ogg +0 -0
  373. data/sounds/salsa ridge.wav +0 -0
  374. data/sounds/scusa.ogg +0 -0
  375. data/sounds/seriously man.m4a +0 -0
  376. data/sounds/si.ogg +0 -0
  377. data/sounds/sito porno con sonoro.wav +0 -0
  378. data/sounds/socmel.wav +0 -0
  379. data/sounds/sono.ogg +0 -0
  380. data/sounds/sonoacasa.ogg +0 -0
  381. data/sounds/sonole.ogg +0 -0
  382. data/sounds/sputo.ogg +0 -0
  383. data/sounds/ssh.ogg +0 -0
  384. data/sounds/stagiocando.ogg +0 -0
  385. data/sounds/statospento.ogg +0 -0
  386. data/sounds/stopaiodipalle.ogg +0 -0
  387. data/sounds/thesedicks.wav +0 -0
  388. data/sounds/tornatosu.ogg +0 -0
  389. data/sounds/trapoco.ogg +0 -0
  390. data/sounds/trequarti.ogg +0 -0
  391. data/sounds/tutti.ogg +0 -0
  392. data/sounds/una.ogg +0 -0
  393. data/sounds/unquarto.ogg +0 -0
  394. data/sounds/virgola.ogg +0 -0
  395. data/sources/c/usleep.c +50 -0
  396. data/spec/my_first_spec.rb +6 -0
  397. data/tasks/sakuric-gem.rake +21 -0
  398. data/tasks/testing.rake +15 -0
  399. data/templates/bashrc.inject +10 -0
  400. data/templates/happy_christmas.ascii_art +5 -0
  401. data/test/roodi.sh +10 -0
  402. data/test/test_mini_failing.rb +3 -0
  403. data/test/test_mini_ok.rb +3 -0
  404. data/test/test_ruby_syntax.sh +12 -0
  405. data/third-party/jsawk/README.markdown +437 -0
  406. data/third-party/jsawk/jsawk +1128 -0
  407. metadata +835 -0
@@ -0,0 +1,2 @@
1
+
2
+ echodo "cat .git/config"
@@ -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
+
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+
3
+ # See: http://support.google.com/a/bin/answer.py?hl=en&answer=60764
4
+
5
+ nslookup -q=TXT _netblocks.google.com 8.8.8.8
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+ echo -en "\033[1;30m$*\033[0m\n"
3
+
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ echo -en "\033[1;32m$*\033[0m\n"
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+ echo -en "\033[1;30m$*\033[0m\n"
3
+
@@ -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
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ cat ~/.boto | grep gs_oauth2_refresh_token | cut -d'=' -f 2|sed -e 's/ //g'
4
+
@@ -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
+
@@ -0,0 +1,5 @@
1
+
2
+ # removes the first line from STDIN!
3
+
4
+ tail -n +2
5
+
@@ -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
+
@@ -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,9 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require "~/lib/ric.rb"
4
+
5
+ (1..2).each {|i|
6
+ deb [ i, 'eseguo "' , ARGV , "\"\n" ].join('')
7
+ system ARGV.join(' ')
8
+ }
9
+
@@ -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,6 @@
1
+ #!/bin/bash
2
+
3
+ set -x
4
+ curl 'https://raw.github.com/palladius/sakura/master/sbin/install-sakura-on-debian' | sudo sh &&
5
+ green OK ||
6
+ red ERROR
@@ -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
@@ -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
@@ -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()