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.
- 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/cheorae
ADDED
data/bin/colorastdouterr
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
VER=1.0
|
|
4
|
+
|
|
5
|
+
# trasforma stdin in rosso o verde
|
|
6
|
+
function fverde() {
|
|
7
|
+
echo -en "\033[0;32m$*\033[0m\n"
|
|
8
|
+
}
|
|
9
|
+
function frosso() {
|
|
10
|
+
echo -en "\033[1;31m$*\033[0m\n"
|
|
11
|
+
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function riscrivi() {
|
|
15
|
+
COLOR=$1
|
|
16
|
+
if echo $COLOR | egrep -q '^green' ; then
|
|
17
|
+
while read LINE; do
|
|
18
|
+
fverde $LINE
|
|
19
|
+
done
|
|
20
|
+
fi
|
|
21
|
+
if echo $COLOR | egrep -q '^red' ; then
|
|
22
|
+
while read LINE; do
|
|
23
|
+
frosso $LINE
|
|
24
|
+
done
|
|
25
|
+
fi
|
|
26
|
+
while read LINE; do
|
|
27
|
+
echo "???> $LINE"
|
|
28
|
+
done
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
bianco "# >$(whoami):$(pwd)\$ $*"
|
|
32
|
+
(
|
|
33
|
+
# sono un GENIO!!!! era: '($* 2>&3 ...'
|
|
34
|
+
(eval "$@" 2>&3 |riscrivi green >&2) 3>&1 |riscrivi red 2>&1
|
|
35
|
+
)2>&1
|
|
36
|
+
# Non posso sapere come esce purtroppo poiche' passa per 'riscrivi'
|
|
37
|
+
#bianco "# Uscita: $?"
|
data/bin/cp2desktop
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
VER=0.9.4
|
|
4
|
+
REPO=${1:-MISSING_REPO_NAME}
|
|
5
|
+
# With the basename you lose the directory (etc/) :(
|
|
6
|
+
#REPO=$(basename $REPO .git) # eliminates .git in the end, if such
|
|
7
|
+
REPODIR="$REPO"
|
|
8
|
+
|
|
9
|
+
usage() {
|
|
10
|
+
echo "Usage: $(basename $0) REPONAME.git"
|
|
11
|
+
echo " (.git in the end is mandatory)"
|
|
12
|
+
}
|
|
13
|
+
if echo $REPODIR |egrep -v "\.git$" ; then
|
|
14
|
+
usage
|
|
15
|
+
ll
|
|
16
|
+
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
echo "Creating repo called '$REPODIR'"
|
|
20
|
+
mkdir "$REPODIR" &&
|
|
21
|
+
cd "$REPODIR" &&
|
|
22
|
+
git init --bare
|
|
23
|
+
|
|
24
|
+
echo -en "Tudo bem. Now please edit the file: \n vim $REPODIR/description\n"
|
data/bin/csoe
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
VER=1.0
|
|
4
|
+
|
|
5
|
+
# trasforma stdin in rosso o verde
|
|
6
|
+
function fverde() {
|
|
7
|
+
echo -en "\033[0;32m$*\033[0m\n"
|
|
8
|
+
}
|
|
9
|
+
function frosso() {
|
|
10
|
+
echo -en "\033[1;31m$*\033[0m\n"
|
|
11
|
+
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function riscrivi() {
|
|
15
|
+
COLOR=$1
|
|
16
|
+
if echo $COLOR | egrep -q '^green' ; then
|
|
17
|
+
while read LINE; do
|
|
18
|
+
fverde $LINE
|
|
19
|
+
done
|
|
20
|
+
fi
|
|
21
|
+
if echo $COLOR | egrep -q '^red' ; then
|
|
22
|
+
while read LINE; do
|
|
23
|
+
frosso $LINE
|
|
24
|
+
done
|
|
25
|
+
fi
|
|
26
|
+
while read LINE; do
|
|
27
|
+
echo "???> $LINE"
|
|
28
|
+
done
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
bianco "# >$(whoami):$(pwd)\$ $*"
|
|
32
|
+
(
|
|
33
|
+
# sono un GENIO!!!! era: '($* 2>&3 ...'
|
|
34
|
+
(eval "$@" 2>&3 |riscrivi green >&2) 3>&1 |riscrivi red 2>&1
|
|
35
|
+
)2>&1
|
|
36
|
+
# Non posso sapere come esce purtroppo poiche' passa per 'riscrivi'
|
|
37
|
+
#bianco "# Uscita: $?"
|
data/bin/data
ADDED
data/bin/derive
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
export PATH=$PATH:$SVNHOME/bin
|
|
4
|
+
|
|
5
|
+
#########################################################
|
|
6
|
+
# Author: Riccardo Carlesso, all rights reserved
|
|
7
|
+
# Email: palladiusbonton@gmail.com
|
|
8
|
+
# Site: www.palladius.it
|
|
9
|
+
#
|
|
10
|
+
# Questo programma e' cio' che ho sempre sognato, verifica se
|
|
11
|
+
# cio' che segue cambia o meno. Se non cambia, non ha stdout, se no ce l'ha in formato mail...
|
|
12
|
+
# Quindi in sostanza fa la derivata di un output...
|
|
13
|
+
#########################################################
|
|
14
|
+
# TODO
|
|
15
|
+
#
|
|
16
|
+
# Come dice giustamente MB, la prima volta che avvii l'esecuzione,
|
|
17
|
+
# varia DEVE dare output nullo, se ci pensi e' semanticamente cosi'
|
|
18
|
+
# anche se poi non e' comodo implementativamente ;)
|
|
19
|
+
#########################################################
|
|
20
|
+
|
|
21
|
+
VER="2.0"
|
|
22
|
+
|
|
23
|
+
DEBUG=false
|
|
24
|
+
|
|
25
|
+
# 2011 12 23 2.0 Moved to sakura (open source and in English for my international fans!)
|
|
26
|
+
# 2007 05 22 1.8 messo debug che se diff e' attiva catta anche i 2 out (ottenevo delle diff strane!)
|
|
27
|
+
# 2007 01 17 1.7 messi copyright e messo indenta interno
|
|
28
|
+
# 2007 01 03 1.6 la exit e' corretta (0 uguali, <>0 diversi)
|
|
29
|
+
# 2006 07 04 1.5 aqggiunto supporto a utenti (carlo, riccardo, ...)
|
|
30
|
+
# 2006 02 13 1.4 aggiunta roba, tolta parte verbosa con date (un giorno sara' nel -v)
|
|
31
|
+
|
|
32
|
+
MD5=$(echo $*|md5sum|awk '{print $1}')
|
|
33
|
+
PAZ="/tmp/varia/"
|
|
34
|
+
MYUSER=$(whoami) # dovesse un giorno non bastare + in UTENET andra' l'ulteriore specificazione (chesso', utente+computer+dominio+cliente, ....
|
|
35
|
+
OLD="$PAZ/$MD5.$MYUSER.old"
|
|
36
|
+
ERR="$PAZ/$MD5.$MYUSER.err"
|
|
37
|
+
NEW="$PAZ/$MD5.$MYUSER.new"
|
|
38
|
+
OK="$PAZ/$MD5.$MYUSER.nochanges" # how long its been like this
|
|
39
|
+
CNT="$PAZ/$MD5.$MYUSER.count" # change history
|
|
40
|
+
OLDNEWGLOB="$PAZ/$MD5.$MYUSER.*" # glob to catch all and only these (two?) files
|
|
41
|
+
SEP="---------------------------------------------"
|
|
42
|
+
INDENTSEP=" | "
|
|
43
|
+
|
|
44
|
+
function indenta() {
|
|
45
|
+
while read LINE ; do
|
|
46
|
+
echo "$1$LINE"
|
|
47
|
+
done
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
write_infos() {
|
|
51
|
+
echo "pwd: `pwd`"
|
|
52
|
+
echo "date: `date`"
|
|
53
|
+
echo "Who: '$MYUSER'"
|
|
54
|
+
echo 'COUNT: (Count the chars over this line:)' # will be populated by plus
|
|
55
|
+
echo
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
mkdir -p $PAZ 2>/dev/null
|
|
59
|
+
chmod 777 $PAZ 2>/dev/null
|
|
60
|
+
touch $NEW # cosi' al primo colpo va gia'
|
|
61
|
+
|
|
62
|
+
# guarantees that now files get created with "rw-------"
|
|
63
|
+
umask 066
|
|
64
|
+
|
|
65
|
+
mv $NEW $OLD
|
|
66
|
+
eval "$@" 1>$NEW 2>$ERR
|
|
67
|
+
if diff -q $NEW $OLD >/dev/null; then
|
|
68
|
+
touch $OK
|
|
69
|
+
echo -n + >> $CNT
|
|
70
|
+
exit 0
|
|
71
|
+
else
|
|
72
|
+
#echo "NUOVO($(date))"
|
|
73
|
+
write_infos > $CNT
|
|
74
|
+
#echo "Subject: [varia] '"$*"'"
|
|
75
|
+
#echo
|
|
76
|
+
echo "+ Differences on `date +"%Y%m%d-%H%M%S"`:"
|
|
77
|
+
diff $NEW $OLD | sed -e 's/^>/OLD /'| sed -e 's/^</NEW /' | indenta "$INDENTSEP"
|
|
78
|
+
echo " --"
|
|
79
|
+
echo " $0, ver $VER"
|
|
80
|
+
if $DEBUG; then
|
|
81
|
+
echo " --"
|
|
82
|
+
echo "NEW:"
|
|
83
|
+
cat $NEW|indenta 'NEW> '
|
|
84
|
+
echo
|
|
85
|
+
echo OLD:
|
|
86
|
+
cat $OLD|indenta 'OLD> '
|
|
87
|
+
fi
|
|
88
|
+
echo "# More info here: $CNT"
|
|
89
|
+
exit 42
|
|
90
|
+
fi
|
data/bin/dimmi
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
DIMMIPATH="$SAKURADIR/sounds/"
|
|
4
|
+
SUONA=/usr/bin/ogg123
|
|
5
|
+
|
|
6
|
+
if [ ! -f $SUONA ] ; then
|
|
7
|
+
echo "Ogg123 not installed, try: sudo apt-get install vorbis-tools"
|
|
8
|
+
exit 2
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
function gestisci() {
|
|
12
|
+
PAROLA="$*"
|
|
13
|
+
if test -z "$1" ; then
|
|
14
|
+
return
|
|
15
|
+
fi
|
|
16
|
+
FNAME="$DIMMIPATH/$PAROLA.ogg"
|
|
17
|
+
RISERVA="$DIMMIPATH/boh.ogg"
|
|
18
|
+
if [ -f "$FNAME" ] ; then
|
|
19
|
+
$SUONA "$FNAME" >/dev/null 2>/dev/null
|
|
20
|
+
else
|
|
21
|
+
$SUONA "$RISERVA" >/dev/null 2>/dev/null
|
|
22
|
+
echo "'$FNAME' not found" >&2
|
|
23
|
+
fi
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
gestisci "$1"
|
|
27
|
+
while shift; do
|
|
28
|
+
if test ! -z "$1" ; then
|
|
29
|
+
gestisci $1
|
|
30
|
+
fi
|
|
31
|
+
done
|
data/bin/dimmiora
ADDED
data/bin/doppioni
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
DIR=${1:-.}
|
|
4
|
+
#DEBUG=true
|
|
5
|
+
DEBUG=false
|
|
6
|
+
|
|
7
|
+
################################################################################
|
|
8
|
+
# This program finds all files in the current directrory with the same md5 and it prints them out.
|
|
9
|
+
################################################################################
|
|
10
|
+
|
|
11
|
+
function debugga() {
|
|
12
|
+
if $DEBUG ; then
|
|
13
|
+
echo '#DEB# ' $* >&2
|
|
14
|
+
fi
|
|
15
|
+
}
|
|
16
|
+
TMPFILE="/tmp/md5z.$USER.$$"
|
|
17
|
+
#DOPPIONIcaTMP_DUPLICATES="/tmp/m5d-duplicates"
|
|
18
|
+
#TMPFILE='./.md5z.list'
|
|
19
|
+
TMP_DUPLICATES='./.md5z.duplicates'
|
|
20
|
+
FIND_OPTS='-not -type l'
|
|
21
|
+
|
|
22
|
+
# creao lista degli md5 almeno doppi.
|
|
23
|
+
rm -f $TMPFILE $TMP_DUPLICATES
|
|
24
|
+
# in case its empty..
|
|
25
|
+
touch $TMPFILE $TMP_DUPLICATES
|
|
26
|
+
find "$DIR" $FIND_OPTS | fgrep -v '/.svn/' | while read F; do
|
|
27
|
+
debugga File "$F"
|
|
28
|
+
md5sum "$F" >>$TMPFILE # 2>/dev/null
|
|
29
|
+
done
|
|
30
|
+
|
|
31
|
+
debugga "Creating file with duplicates from dir: '$DIR'"
|
|
32
|
+
cat $TMPFILE|sort|awk '{print $1}'|uniq -c|egrep -v " 1"|awk '{print $2}' >$TMP_DUPLICATES
|
|
33
|
+
|
|
34
|
+
#debugga "Leggo i file e ti dico cosa ho trovato:"
|
|
35
|
+
|
|
36
|
+
cat $TMP_DUPLICATES|while read row
|
|
37
|
+
do
|
|
38
|
+
echo " ### MD5: $row ###"
|
|
39
|
+
fgrep $row $TMPFILE|cut -d" " -f 2-
|
|
40
|
+
echo
|
|
41
|
+
done
|
|
42
|
+
|
|
43
|
+
if $DEBUG; then
|
|
44
|
+
debugga Leaving files where they are for debug.
|
|
45
|
+
else
|
|
46
|
+
rm -f $TMPFILE $TMP_DUPLICATES
|
|
47
|
+
fi
|
|
48
|
+
|
data/bin/du-
ADDED
data/bin/duplicates
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
DIR=${1:-.}
|
|
4
|
+
#DEBUG=true
|
|
5
|
+
DEBUG=false
|
|
6
|
+
|
|
7
|
+
################################################################################
|
|
8
|
+
# This program finds all files in the current directrory with the same md5 and it prints them out.
|
|
9
|
+
################################################################################
|
|
10
|
+
|
|
11
|
+
function debugga() {
|
|
12
|
+
if $DEBUG ; then
|
|
13
|
+
echo '#DEB# ' $* >&2
|
|
14
|
+
fi
|
|
15
|
+
}
|
|
16
|
+
TMPFILE="/tmp/md5z.$USER.$$"
|
|
17
|
+
#DOPPIONIcaTMP_DUPLICATES="/tmp/m5d-duplicates"
|
|
18
|
+
#TMPFILE='./.md5z.list'
|
|
19
|
+
TMP_DUPLICATES='./.md5z.duplicates'
|
|
20
|
+
FIND_OPTS='-not -type l'
|
|
21
|
+
|
|
22
|
+
# creao lista degli md5 almeno doppi.
|
|
23
|
+
rm -f $TMPFILE $TMP_DUPLICATES
|
|
24
|
+
# in case its empty..
|
|
25
|
+
touch $TMPFILE $TMP_DUPLICATES
|
|
26
|
+
find "$DIR" $FIND_OPTS | fgrep -v '/.svn/' | while read F; do
|
|
27
|
+
debugga File "$F"
|
|
28
|
+
md5sum "$F" >>$TMPFILE # 2>/dev/null
|
|
29
|
+
done
|
|
30
|
+
|
|
31
|
+
debugga "Creating file with duplicates from dir: '$DIR'"
|
|
32
|
+
cat $TMPFILE|sort|awk '{print $1}'|uniq -c|egrep -v " 1"|awk '{print $2}' >$TMP_DUPLICATES
|
|
33
|
+
|
|
34
|
+
#debugga "Leggo i file e ti dico cosa ho trovato:"
|
|
35
|
+
|
|
36
|
+
cat $TMP_DUPLICATES|while read row
|
|
37
|
+
do
|
|
38
|
+
echo " ### MD5: $row ###"
|
|
39
|
+
fgrep $row $TMPFILE|cut -d" " -f 2-
|
|
40
|
+
echo
|
|
41
|
+
done
|
|
42
|
+
|
|
43
|
+
if $DEBUG; then
|
|
44
|
+
debugga Leaving files where they are for debug.
|
|
45
|
+
else
|
|
46
|
+
rm -f $TMPFILE $TMP_DUPLICATES
|
|
47
|
+
fi
|
|
48
|
+
|
data/bin/echodo
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
=begin
|
|
4
|
+
|
|
5
|
+
############################################################
|
|
6
|
+
@author: Riccardo Carlesso
|
|
7
|
+
@email: riccardo.carlesso@gmail.com
|
|
8
|
+
@maturity: development
|
|
9
|
+
@language: Ruby
|
|
10
|
+
@synopsis: ensure a line $2-$$ is present in file $1. Sim ilar to Augeas, just simpler
|
|
11
|
+
@tags: development, rcarlesso, test
|
|
12
|
+
@description:
|
|
13
|
+
Adds a line to a file if it doesnt find it :)
|
|
14
|
+
############################################################
|
|
15
|
+
|
|
16
|
+
=end
|
|
17
|
+
|
|
18
|
+
# http://ruby.about.com/od/advancedruby/a/optionparser.htm
|
|
19
|
+
require 'optparse'
|
|
20
|
+
# Sakura Ruby library :)
|
|
21
|
+
require ENV['SAKURALIB'] + "/ric.rb"
|
|
22
|
+
|
|
23
|
+
# Program constants, automagically picked up by RicLib
|
|
24
|
+
# More configuration could be written in:
|
|
25
|
+
# $SVNHOME/etc/ricsvn/<FILENAME>.yml
|
|
26
|
+
# That would go into the variable '$prog_conf_d'
|
|
27
|
+
$myconf = {
|
|
28
|
+
:app_name => 'ensure_line_present',
|
|
29
|
+
:hello => 'Welcome to this terrific application',
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
$PROG_VER = '0.9.1'
|
|
33
|
+
$DEBUG = true
|
|
34
|
+
$TEMPLATE_VER = '1.5.7'
|
|
35
|
+
|
|
36
|
+
def usage(comment=nil)
|
|
37
|
+
puts "#{$0} v.#{$PROG_VER}"
|
|
38
|
+
puts "Usage: #{File.basename $0} [-dhjv] [-l LOGFILE] FILE [content to be there]"
|
|
39
|
+
deb $opts
|
|
40
|
+
pred comment if comment
|
|
41
|
+
puts "Example (quotes are for clarity, yet unnecessary):\n #{File.basename $0} /etc/hosts '8.8.8.8 gugoldns'"
|
|
42
|
+
exit 11
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def init() # see lib_autoinit in lib/util.rb
|
|
46
|
+
$opts = {}
|
|
47
|
+
optparse = OptionParser.new do |opts|
|
|
48
|
+
opts.banner = "#{$0} v.#{$PROG_VER}\n Usage: #{File.basename $0} file [content to be there]"
|
|
49
|
+
opts.on( '-d', '--debug', 'enables debug (DFLT=false)' ) { $opts[:debug] = true }
|
|
50
|
+
opts.on( '-h', '--help', 'Display this screen' ) { puts(opts); exit 1 }
|
|
51
|
+
opts.on( '-j', '--jabba', 'Activates my Jabber powerful CLI' ) { $opts[:jabba] = true }
|
|
52
|
+
opts.on( '-l', '--logfile FILE', 'Write log to FILE' ) {|file| $opts[:logfile] = file }
|
|
53
|
+
opts.on( '-v', '--verbose', 'Output more information' ) { $opts[:verbose] = true}
|
|
54
|
+
end
|
|
55
|
+
optparse.parse!
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def real_program
|
|
59
|
+
# Maybe you may want to check on ARGV
|
|
60
|
+
unless ARGV.size == 2
|
|
61
|
+
usage "Give me 2 or more arguments!"
|
|
62
|
+
end
|
|
63
|
+
deb("Hello world from a templated '#{$0 }'")
|
|
64
|
+
deb "+ Options are: #{$opts}"
|
|
65
|
+
deb "+ Depured args: #{ARGV}"
|
|
66
|
+
|
|
67
|
+
deb "PS Please find me in " + __FILE__
|
|
68
|
+
deb "Maybe you forgot to do:
|
|
69
|
+
git add #{__FILE__} # add to GIT
|
|
70
|
+
guarda #{__FILE__} & # edit file
|
|
71
|
+
always -- #{__FILE__} -d # to see what happens..."
|
|
72
|
+
# Your code goes here...
|
|
73
|
+
puts "Hello world!"
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def main()
|
|
77
|
+
#init
|
|
78
|
+
#real_program
|
|
79
|
+
puts "To be implemented yet, please bear with me when my gf leaves my house :)"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
main()
|