sakuric 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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()