bmc-tools 0.1 → 0.2.0
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.
- checksums.yaml +4 -4
- data/bin-other/autobackup +70 -0
- data/bin-other/autobackup.inc +157 -0
- data/bin-other/bob/ExtractPagesFromPDF +0 -0
- data/bin-other/bob/backupsync +46 -0
- data/bin-other/bob/cachesync +58 -0
- data/bin-other/bob/deb +55 -0
- data/bin-other/bob/debmirror +2551 -0
- data/bin-other/bob/debmirror.marlin +2551 -0
- data/bin-other/bob/exif_rotate.sh +34 -0
- data/bin-other/bob/exif_rotate_dates.sh +35 -0
- data/bin-other/bob/git-big-objects +85 -0
- data/bin-other/bob/git-commit-details +22 -0
- data/bin-other/bob/git-commit-sizes +16 -0
- data/bin-other/bob/git-show-biggest.sh +33 -0
- data/bin-other/bob/git_remove_history.sh +24 -0
- data/bin-other/bob/git_staged_status.sh +29 -0
- data/bin-other/bob/identify_extra_raws +137 -0
- data/bin-other/bob/wallpaper_restore.sh +1 -0
- data/bin-other/bob/watch_olsr.sh +1 -0
- data/bin-other/bob/watch_rbpm_node_status +1 -0
- data/bin-other/bob/watermark_bmphoto_large.sh +32 -0
- data/bin-other/bob/watermark_bmphoto_small.sh +32 -0
- data/bin-other/bubbles/deb +42 -0
- data/bin-other/bubbles/firewall.sh +134 -0
- data/bin-other/bubbles/kernel-mirror.sh +15 -0
- data/bin-other/deb +42 -0
- data/bin-other/exif_dates.sh +35 -0
- data/bin-other/git-large-files +62 -0
- data/bin-other/git_add_upto.sh +54 -0
- data/bin-other/git_find_big.sh +33 -0
- data/bin-other/git_staged_status.sh +29 -0
- data/bin-other/image_resize +43 -0
- data/bin-other/kernel-mirror.sh +15 -0
- data/bin-other/marlin/deb +42 -0
- data/bin-other/marlin/firewall.sh +134 -0
- data/bin-other/mysql2svn.sh +36 -0
- data/bin-other/syno-cleanup.sh +31 -0
- data/bin/dockerize +35 -23
- data/bin/image_exif +30 -0
- data/bin/image_process +156 -0
- data/bin/image_process_wname +138 -0
- data/bin/tgv_to_pdf +206 -0
- data/bmc-tools.gemspec +1 -1
- data/lib/cli.rb +8 -0
- data/lib/constants.rb +1 -0
- data/lib/docker.rb +15 -0
- data/lib/git.rb +21 -0
- data/lib/runner.rb +19 -0
- metadata +52 -2
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# watermark.sh
|
4
|
+
# $Id: watermark,v 1.1 2004/10/03 10:52:21 ullgren Exp $
|
5
|
+
#
|
6
|
+
# Add a defined watermark to a series of pictures
|
7
|
+
#
|
8
|
+
|
9
|
+
# Absolute Location of the Watermark file
|
10
|
+
WM="/home/bruno/watermark-bmphoto-small.png"
|
11
|
+
|
12
|
+
if [ ! -n "$1" ]
|
13
|
+
then
|
14
|
+
zenity --error --text "Please select pics to be watermarked!"
|
15
|
+
exit $E_BADARGS
|
16
|
+
fi
|
17
|
+
|
18
|
+
typeset -i CNT=1
|
19
|
+
typeset -i CUR=0
|
20
|
+
|
21
|
+
(
|
22
|
+
for pic in "$@"
|
23
|
+
do
|
24
|
+
echo "#Watermarking $pic"
|
25
|
+
|
26
|
+
composite -dissolve 40% -gravity SouthEast -geometry +0+10 "$WM" "$pic" "$pic"
|
27
|
+
|
28
|
+
CUR=$CNT*100/$#
|
29
|
+
echo $CUR
|
30
|
+
CNT=$CNT+1
|
31
|
+
done
|
32
|
+
) | zenity --progress --auto-close --percentage=0
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
set -ere
|
3
|
+
TASK=$1
|
4
|
+
P2=$2
|
5
|
+
P3=$3
|
6
|
+
|
7
|
+
# Config
|
8
|
+
#HTTP_MIRROR=gulus.usherbrooke.ca
|
9
|
+
#HTTP_MIRROR=non-us.debian.org
|
10
|
+
#HTTP_MIRROR=ftp.proxad.net
|
11
|
+
#HTTP_MIRROR=mir2.ovh.net
|
12
|
+
#HTTP_MIRROR=debian.ens-cachan.fr
|
13
|
+
#HTTP_MIRROR=ftp.thaios.net
|
14
|
+
#HTTP_MIRROR=ftp.be.debian.org
|
15
|
+
HTTP_MIRROR=ftp.fr.debian.org
|
16
|
+
LOCALDIR=/mirrors/debian/
|
17
|
+
RSYNC_UPDATE_ATTRIBS="--recursive --times --progress --delete --links"
|
18
|
+
|
19
|
+
|
20
|
+
case $TASK in
|
21
|
+
|
22
|
+
update | up)
|
23
|
+
debmirror $LOCALDIR \
|
24
|
+
--host=$HTTP_MIRROR \
|
25
|
+
--method=http \
|
26
|
+
--progress --cleanup --no-source --getcontents \
|
27
|
+
--dist=testing,unstable,lenny,sid -arch=i386,amd64 \
|
28
|
+
--exclude-deb-section=embedded,hamradio \
|
29
|
+
--section=main,contrib,non-free,non-us,main/debian-installer \
|
30
|
+
--ignore-release-gpg --pdiff=mirror -\
|
31
|
+
--exclude='openarena.*' \
|
32
|
+
--exclude='supertuxkart' \
|
33
|
+
--exclude='wesnoth'
|
34
|
+
;;
|
35
|
+
*)
|
36
|
+
echo "usage: $0 {up|update|to-nemo|to-hector|from-nemo|from-hector}"
|
37
|
+
exit 1
|
38
|
+
;;
|
39
|
+
esac
|
40
|
+
|
41
|
+
# --dist=testing,unstable,lenny,sid/non-US -arch=i386 \
|
42
|
+
|
@@ -0,0 +1,134 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# set -x
|
3
|
+
#
|
4
|
+
### BEGIN INIT INFO
|
5
|
+
# Provides: firewall
|
6
|
+
# Required-Start: $named $network $syslog
|
7
|
+
# Required-Stop: $named $network $syslog
|
8
|
+
# Should-Start:
|
9
|
+
# Should-Stop:
|
10
|
+
# Default-Start: 2 3 4 5
|
11
|
+
# Default-Stop: 0 1 6
|
12
|
+
# Short-Description: Firewall script
|
13
|
+
# Description: Initializes simple iptables rules for this specific server
|
14
|
+
### END INIT INFO
|
15
|
+
#
|
16
|
+
IPT=/sbin/iptables
|
17
|
+
IF=eth0
|
18
|
+
#set -x
|
19
|
+
|
20
|
+
acceptboth () {
|
21
|
+
accept tcp $1 $2
|
22
|
+
accept udp $1 $2
|
23
|
+
}
|
24
|
+
accept () {
|
25
|
+
local proto="$1"
|
26
|
+
local port="$2"
|
27
|
+
local source="$3"
|
28
|
+
|
29
|
+
for int in $IF
|
30
|
+
do
|
31
|
+
if [ -z "$source" ]
|
32
|
+
then $IPT -A INPUT -i $int -p $proto --dport $port -j ACCEPT
|
33
|
+
else $IPT -A INPUT -i $int -p $proto --dport $port --source "$source" -j ACCEPT
|
34
|
+
fi
|
35
|
+
done
|
36
|
+
}
|
37
|
+
reset () {
|
38
|
+
$IPT -F
|
39
|
+
$IPT -F INPUT
|
40
|
+
$IPT -F OUTPUT
|
41
|
+
$IPT -F FORWARD
|
42
|
+
$IPT -F -t nat
|
43
|
+
$IPT -X
|
44
|
+
$IPT -P INPUT ACCEPT
|
45
|
+
$IPT -P OUTPUT ACCEPT
|
46
|
+
$IPT -P FORWARD ACCEPT
|
47
|
+
}
|
48
|
+
prepare () {
|
49
|
+
$IPT -A INPUT -i $IF -m state --state ESTABLISHED,RELATED -j ACCEPT
|
50
|
+
$IPT -A INPUT -i $IF -p icmp -j ACCEPT
|
51
|
+
$IPT -t nat -A POSTROUTING -o $IF -j MASQUERADE
|
52
|
+
echo 1 > /proc/sys/net/ipv4/ip_forward
|
53
|
+
}
|
54
|
+
lock () {
|
55
|
+
#$IPT -A INPUT -j LOG
|
56
|
+
$IPT -A INPUT -i $IF -j DROP
|
57
|
+
#$IPT -P INPUT DROP
|
58
|
+
}
|
59
|
+
|
60
|
+
case "$1" in
|
61
|
+
start)
|
62
|
+
reset
|
63
|
+
prepare
|
64
|
+
|
65
|
+
# simple services
|
66
|
+
accept tcp 22
|
67
|
+
acceptboth 123
|
68
|
+
accept tcp 21
|
69
|
+
|
70
|
+
# port-forarding CDN
|
71
|
+
accept tcp 22130
|
72
|
+
accept tcp 2240
|
73
|
+
accept tcp 8040
|
74
|
+
|
75
|
+
# vmware
|
76
|
+
accept tcp 8222
|
77
|
+
accept tcp 8333
|
78
|
+
accept tcp 902
|
79
|
+
|
80
|
+
# dns for iodined
|
81
|
+
accept udp 53
|
82
|
+
|
83
|
+
# ldap
|
84
|
+
accept tcp 389
|
85
|
+
accept tcp 636
|
86
|
+
|
87
|
+
# web
|
88
|
+
accept tcp 80
|
89
|
+
accept tcp 443
|
90
|
+
|
91
|
+
# web
|
92
|
+
accept tcp 16514
|
93
|
+
|
94
|
+
# mysql replication
|
95
|
+
accept tcp 3306 crush.bmconseil.com
|
96
|
+
|
97
|
+
# email
|
98
|
+
#accept tcp 25 bourse.brunom.net
|
99
|
+
accept tcp 25
|
100
|
+
accept tcp 143
|
101
|
+
accept tcp 993
|
102
|
+
accept tcp 8080
|
103
|
+
|
104
|
+
# teamspeak
|
105
|
+
accept udp 8767
|
106
|
+
accept tcp 14534
|
107
|
+
|
108
|
+
# rsync
|
109
|
+
accept tcp 873
|
110
|
+
accept tcp 873 bourse.brunom.net
|
111
|
+
accept tcp 873 crush.bmconseil.com
|
112
|
+
|
113
|
+
# icmp
|
114
|
+
#accept icmp proxy.ovh.net
|
115
|
+
#accept icmp proxy.p19.ovh.net
|
116
|
+
#accept icmp proxy.rbx.ovh.net
|
117
|
+
#accept icmp ping.ovh.net
|
118
|
+
#accept icmp lille.brunom.net
|
119
|
+
|
120
|
+
|
121
|
+
lock
|
122
|
+
exit 0
|
123
|
+
;;
|
124
|
+
|
125
|
+
stop)
|
126
|
+
$IPT -F INPUT
|
127
|
+
exit 0
|
128
|
+
;;
|
129
|
+
|
130
|
+
*)
|
131
|
+
echo "Usage: $0 {start|stop}"
|
132
|
+
exit 1
|
133
|
+
;;
|
134
|
+
esac
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
DEST="/data/kernel/pub/"
|
4
|
+
export RSYNC_PASSWORD="eqSiyOon"
|
5
|
+
|
6
|
+
rsync mirrors@filehub.kernel.org::pub $DEST \
|
7
|
+
--verbose --recursive --times \
|
8
|
+
--links --hard-links --delete --delete-after \
|
9
|
+
--sparse --force \
|
10
|
+
--exclude "/pub/dist"
|
11
|
+
|
12
|
+
# --links --hard-links --compress --sparse
|
13
|
+
# --exclude "*.gz" --exclude "*.gz.sign" --exclude "git" --exclude "scm" \
|
14
|
+
# --exclude "*.gz" --exclude "*.gz.sign"
|
15
|
+
|
data/bin-other/deb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
set -e
|
3
|
+
TASK=$1
|
4
|
+
P2=$2
|
5
|
+
P3=$3
|
6
|
+
|
7
|
+
# Config
|
8
|
+
#HTTP_MIRROR=gulus.usherbrooke.ca
|
9
|
+
#HTTP_MIRROR=non-us.debian.org
|
10
|
+
#HTTP_MIRROR=ftp.proxad.net
|
11
|
+
#HTTP_MIRROR=mir2.ovh.net
|
12
|
+
#HTTP_MIRROR=debian.ens-cachan.fr
|
13
|
+
#HTTP_MIRROR=ftp.thaios.net
|
14
|
+
#HTTP_MIRROR=ftp.be.debian.org
|
15
|
+
HTTP_MIRROR=ftp.fr.debian.org
|
16
|
+
LOCALDIR=/mnt/big2/debian/
|
17
|
+
RSYNC_UPDATE_ATTRIBS="--recursive --times --progress --delete --links"
|
18
|
+
|
19
|
+
|
20
|
+
case $TASK in
|
21
|
+
|
22
|
+
update | up)
|
23
|
+
debmirror $LOCALDIR \
|
24
|
+
--host=$HTTP_MIRROR \
|
25
|
+
--method=http \
|
26
|
+
--progress --cleanup --no-source --getcontents \
|
27
|
+
--dist=squeeze,sid -arch=i386,amd64 \
|
28
|
+
--exclude-deb-section=embedded,hamradio \
|
29
|
+
--section=main,contrib,non-free,non-us,main/debian-installer \
|
30
|
+
--ignore-release-gpg \
|
31
|
+
--exclude='openarena.*' \
|
32
|
+
--exclude='supertuxkart' \
|
33
|
+
--exclude='wesnoth'
|
34
|
+
;;
|
35
|
+
*)
|
36
|
+
echo "usage: $0 {up|update|to-nemo|to-hector|from-nemo|from-hector}"
|
37
|
+
exit 1
|
38
|
+
;;
|
39
|
+
esac
|
40
|
+
|
41
|
+
# --dist=testing,unstable,lenny,sid/non-US -arch=i386 \
|
42
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
total=$#
|
3
|
+
current=0
|
4
|
+
percent=0
|
5
|
+
|
6
|
+
(
|
7
|
+
while [[ -n "$1" ]]; do
|
8
|
+
# update progress bar
|
9
|
+
percent=`expr 100 \* $current / $total`
|
10
|
+
echo "$percent" ;
|
11
|
+
echo "# Processing ($current/$total): $1 "
|
12
|
+
#sleep 1
|
13
|
+
|
14
|
+
# process current file, if a file and not a dir
|
15
|
+
if [[ -f "$1" ]]; then
|
16
|
+
jhead -ft "$1"
|
17
|
+
if [ "$?" = -1 ] ; then
|
18
|
+
zenity --error --text="Processing failed"
|
19
|
+
fi
|
20
|
+
fi
|
21
|
+
|
22
|
+
# go to next file
|
23
|
+
shift
|
24
|
+
$((current+=1))
|
25
|
+
done
|
26
|
+
|
27
|
+
echo "# DONE - $total files processed.";
|
28
|
+
|
29
|
+
) |
|
30
|
+
zenity --progress \
|
31
|
+
--title="Changing dates from EXIF" \
|
32
|
+
--text="Processing files ..." \
|
33
|
+
--percentage=0 --auto-kill
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/perl
|
2
|
+
use 5.008;
|
3
|
+
use strict;
|
4
|
+
use Memoize;
|
5
|
+
|
6
|
+
# usage:
|
7
|
+
# git-large-files 500k
|
8
|
+
# git-large-files 0.5m
|
9
|
+
# git-large-files 5b
|
10
|
+
|
11
|
+
sub usage { die "usage: git-large-files <size[b|k|m]> [<git-log arguments ...>]\n" }
|
12
|
+
|
13
|
+
@ARGV or usage();
|
14
|
+
my ( $max_size, $unit ) = ( shift =~ /^(\d+)([bkm]?)\z/ ) ? ( $1, $2 ) : usage();
|
15
|
+
|
16
|
+
my $exp = 10 * ( $unit eq 'b' ? 0 : $unit eq 'k' ? 1 : 2 );
|
17
|
+
my $cutoff = $max_size * 2**$exp;
|
18
|
+
|
19
|
+
sub walk_tree {
|
20
|
+
my ( $tree, @path ) = @_;
|
21
|
+
my @subtree;
|
22
|
+
my @r;
|
23
|
+
|
24
|
+
{
|
25
|
+
open my $ls_tree, '-|', git => 'ls-tree' => -l => $tree
|
26
|
+
or die "Couldn't open pipe to git-ls-tree: $!\n";
|
27
|
+
|
28
|
+
while ( <$ls_tree> ) {
|
29
|
+
my ( $type, $sha1, $size, $name ) = /\A[0-7]{6} (\S+) (\S+) +(\S+)\t(.*)/;
|
30
|
+
if ( $type eq 'tree' ) {
|
31
|
+
push @subtree, [ $sha1, $name ];
|
32
|
+
}
|
33
|
+
elsif ( $type eq 'blob' and $size >= $cutoff ) {
|
34
|
+
push @r, [ $size, @path, $name ];
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
push @r, walk_tree( $_->[0], @path, $_->[1] )
|
40
|
+
for @subtree;
|
41
|
+
|
42
|
+
return @r;
|
43
|
+
}
|
44
|
+
|
45
|
+
memoize 'walk_tree';
|
46
|
+
|
47
|
+
open my $log, '-|', git => log => @ARGV, '--pretty=format:%T %h %cr'
|
48
|
+
or die "Couldn't open pipe to git-log: $!\n";
|
49
|
+
|
50
|
+
my %seen;
|
51
|
+
while ( <$log> ) {
|
52
|
+
chomp;
|
53
|
+
my ( $tree, $commit, $age ) = split " ", $_, 3;
|
54
|
+
my $is_header_printed;
|
55
|
+
for ( walk_tree( $tree ) ) {
|
56
|
+
my ( $size, @path ) = @$_;
|
57
|
+
my $path = join '/', @path;
|
58
|
+
next if $seen{ $path }++;
|
59
|
+
print "$commit $age\n" if not $is_header_printed++;
|
60
|
+
print "\t$size\t$path\n";
|
61
|
+
}
|
62
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
max_size_mb=$1
|
3
|
+
SAVEIFS=$IFS
|
4
|
+
IFS=$(echo -en "\n\b")
|
5
|
+
|
6
|
+
# Init
|
7
|
+
if [ -z "$max_size_mb" ] ; then
|
8
|
+
echo "usage: `basename $0` {max size in MB}"
|
9
|
+
exit
|
10
|
+
fi
|
11
|
+
if [[ "$max_size_mb" = *[^0-9]* ]]
|
12
|
+
then
|
13
|
+
echo "usage: `basename $0` {max size in MB - numeric values only}"
|
14
|
+
exit 1
|
15
|
+
fi
|
16
|
+
if [ "$max_size_mb" -lt "1" ]
|
17
|
+
then
|
18
|
+
echo "usage: `basename $0` {max size in MB - greater than 1 MB}"
|
19
|
+
exit 1
|
20
|
+
fi
|
21
|
+
max_size=$(($max_size_mb*1024*1024))
|
22
|
+
count=0
|
23
|
+
echo "* max total: $(($max_size_mb)) MB"
|
24
|
+
|
25
|
+
# Get total size of staged files
|
26
|
+
staged_size=0
|
27
|
+
for filename in $(git diff --staged --name-only --relative)
|
28
|
+
do
|
29
|
+
filesize=$(stat -f "%z" "$filename")
|
30
|
+
staged_size=$(($staged_size + $filesize))
|
31
|
+
done
|
32
|
+
echo "* current staged total: $(($staged_size /(1024*1024))) MB"
|
33
|
+
|
34
|
+
# Evaluate size with more files
|
35
|
+
for filename in $(git ls-files --o)
|
36
|
+
do
|
37
|
+
filesize=$(stat -f "%z" "$filename")
|
38
|
+
future_size=$(($staged_size + $filesize ))
|
39
|
+
echo "* considering: $filename"
|
40
|
+
if [ "$future_size" -lt "$max_size" ]
|
41
|
+
then
|
42
|
+
echo " adding $(($filesize/1024)) KB"
|
43
|
+
git add "$filename"
|
44
|
+
staged_size=$future_size
|
45
|
+
else
|
46
|
+
echo " not adding $(($filesize/1024)) KB - would exceed $max_size_mb MB limit"
|
47
|
+
break 2
|
48
|
+
fi
|
49
|
+
#echo " size is $current_file_size, total is $staged_size bytes, future is $future_size bytes, max is $max_size bytes"
|
50
|
+
done
|
51
|
+
|
52
|
+
# End
|
53
|
+
echo "* total staged is now $(($staged_size /(1024*1024))) MB"
|
54
|
+
IFS=$SAVEIFS
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#set -x
|
3
|
+
|
4
|
+
# Shows you the largest objects in your repo's pack file.
|
5
|
+
# Written for osx.
|
6
|
+
#
|
7
|
+
# @see http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/
|
8
|
+
# @author Antony Stubbs
|
9
|
+
|
10
|
+
# set the internal field spereator to line break, so that we can iterate easily over the verify-pack output
|
11
|
+
IFS=$'\n';
|
12
|
+
|
13
|
+
# list all objects including their size, sort by size, take top 10
|
14
|
+
objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n 30`
|
15
|
+
|
16
|
+
echo "All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file."
|
17
|
+
|
18
|
+
output="size,pack,SHA,location"
|
19
|
+
for y in $objects
|
20
|
+
do
|
21
|
+
# extract the size in bytes
|
22
|
+
size=$((`echo $y | cut -f 5 -d ' '`/1024))
|
23
|
+
# extract the compressed size in bytes
|
24
|
+
compressedSize=$((`echo $y | cut -f 6 -d ' '`/1024))
|
25
|
+
# extract the SHA
|
26
|
+
sha=`echo $y | cut -f 1 -d ' '`
|
27
|
+
# find the objects location in the repository tree
|
28
|
+
other=`git rev-list --all --objects | grep $sha`
|
29
|
+
#lineBreak=`echo -e "\n"`
|
30
|
+
output="${output}\n${size},${compressedSize},${other}"
|
31
|
+
done
|
32
|
+
|
33
|
+
echo -e $output | column -t -s ', '
|