gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Merge
0 1 0
merge 1.0
0 files changed with 11 insertions and 2 deletions:
↑ Collapse diff ↑
Ignore white space 256 line context
1 1
#!/bin/bash
2 2

	
3
YEAR=`date +2003-%Y`
3
YEAR=`date +%Y`
4 4
HGROOT=`hg root`
5 5

	
6
function hg_year() {
7
    if [ -n "$(hg st $1)" ]; then
8
        echo $YEAR
9
    else
10
        hg log -l 1 --template='{date|isodate}\n' $1 |
11
        cut -d '-' -f 1
12
    fi
13
}
14

	
6 15
function update_header() {
7 16
    TMP_FILE=`mktemp`
8 17
    FILE_NAME=$1
9 18

	
10 19
    (echo "/* -*- mode: C++; indent-tabs-mode: nil; -*-
11 20
 *
12 21
 * This file is a part of LEMON, a generic C++ optimization library.
13 22
 *
14
 * Copyright (C) "$YEAR"
23
 * Copyright (C) 2003-"$(hg_year $1)"
15 24
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
16 25
 * (Egervary Research Group on Combinatorial Optimization, EGRES).
17 26
 *
18 27
 * Permission to use, modify and distribute this software is granted
19 28
 * provided that this copyright notice appears in all copies. For
20 29
 * precise terms see the accompanying LICENSE file.
21 30
 *
22 31
 * This software is provided \"AS IS\" with no warranty of any kind,
23 32
 * express or implied, and with no claim as to its suitability for any
24 33
 * purpose.
25 34
 *
26 35
 */
27 36
"
28 37
	awk 'BEGIN { pm=0; }
29 38
     pm==3 { print }
30 39
     /\/\* / && pm==0 { pm=1;}
31 40
     /[^:blank:]/ && (pm==0 || pm==2) { pm=3; print;}
32 41
     /\*\// && pm==1 { pm=2;}
33 42
    ' $1
34 43
	) >$TMP_FILE
35 44

	
36 45
    HEADER_CH=`diff -q $TMP_FILE $FILE_NAME >/dev/null&&echo NO||echo YES`
37 46

	
38 47
    rm $FILE_NAME
39 48
    mv $TMP_FILE $FILE_NAME
40 49
}
41 50

	
42 51
function update_tabs() {
43 52
    TMP_FILE=`mktemp`
44 53
    FILE_NAME=$1
45 54

	
46 55
    cat $1 |
47 56
    sed -e 's/\t/        /g' >$TMP_FILE
48 57

	
49 58
    TABS_CH=`diff -q $TMP_FILE $FILE_NAME >/dev/null&&echo NO||echo YES`
50 59

	
51 60
    rm $FILE_NAME
52 61
    mv $TMP_FILE $FILE_NAME
53 62
}
54 63

	
55 64
function remove_trailing_space() {
56 65
    TMP_FILE=`mktemp`
57 66
    FILE_NAME=$1
58 67

	
59 68
    cat $1 |
60 69
    sed -e 's/ \+$//g' >$TMP_FILE
61 70

	
62 71
    SPACES_CH=`diff -q $TMP_FILE $FILE_NAME >/dev/null&&echo NO||echo YES`
63 72

	
64 73
    rm $FILE_NAME
65 74
    mv $TMP_FILE $FILE_NAME
66 75
}
67 76

	
68 77
function long_line_test() {
69 78
    cat $1 |grep -q -E '.{81,}'
70 79
}
71 80

	
72 81
function update_file() {
73 82
    echo -n '    update' $i ...
74 83

	
75 84
    update_header $1
76 85
    update_tabs $1
77 86
    remove_trailing_space $1
78 87

	
79 88
    CHANGED=NO;
80 89
    if [[ $HEADER_CH = YES ]];
81 90
    then
82 91
	echo -n '  [header updated]'
83 92
	CHANGED=YES;
84 93
    fi
85 94
    if [[ $TABS_CH = YES ]];
86 95
    then
87 96
	echo -n ' [tabs removed]'
88 97
	CHANGED=YES;
89 98
    fi
90 99
    if [[ $SPACES_CH = YES ]];
91 100
    then
92 101
	echo -n ' [trailing spaces removed]'
93 102
	CHANGED=YES;
94 103
    fi
95 104
    if long_line_test $1 ;
96 105
    then
97 106
	echo -n ' [LONG LINES]'
98 107
	((LONG_LINE_FILES++))
99 108
    fi
100 109
    echo
101 110
    if [[ $CHANGED = YES ]];
102 111
    then
103 112
	((CHANGED_FILES++))
104 113
    fi
105 114
}
106 115

	
107 116
CHANGED_FILES=0
108 117
TOTAL_FILES=0
109 118
LONG_LINE_FILES=0
110 119
if [ $# == 0 ]; then
111 120
    echo Update all source files...
112 121
    for i in `hg manifest|grep -E  '\.(cc|h|dox)$'`
113 122
    do
114 123
	update_file $HGROOT/$i
115 124
	((TOTAL_FILES++))
116 125
    done
117 126
    echo '  done.'
118 127
else
119 128
    for i in $*
120 129
    do
121 130
	update_file $i
122 131
	((TOTAL_FILES++))
123 132
    done
124 133
fi
125 134
echo $CHANGED_FILES out of $TOTAL_FILES files has been changed.
126 135
if [[ $LONG_LINE_FILES -gt 1 ]]; then
127 136
    echo
128 137
    echo WARNING: $LONG_LINE_FILES files contains long lines!    
129 138
    echo
130 139
elif [[ $LONG_LINE_FILES -gt 0 ]]; then
131 140
    echo
132 141
    echo WARNING: a file contains long lines!
133 142
    echo
134 143
fi
0 comments (0 inline)