1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sourceforge.schemaspy;
20
21 import java.io.BufferedReader;
22 import java.io.File;
23 import java.io.FileReader;
24 import java.io.FileWriter;
25 import java.io.IOException;
26 import java.io.InputStream;
27 import java.io.InputStreamReader;
28
29
30
31
32 public class Revision {
33 private static String rev = "Unknown";
34 private static final String resourceName = "/schemaSpy.rev";
35
36 static {
37 initialize();
38 }
39
40 private static void initialize() {
41 InputStream in = null;
42 BufferedReader reader = null;
43
44 try {
45 in = Revision.class.getResourceAsStream(resourceName);
46
47 if (in != null) {
48 reader = new BufferedReader(new InputStreamReader(in));
49 try {
50 rev = reader.readLine();
51 } catch (IOException exc) {
52 }
53 }
54 } finally {
55 try {
56 if (reader != null)
57 reader.close();
58 else if (in != null)
59 in.close();
60 } catch (IOException ignore) {}
61 }
62 }
63
64 @Override
65 public String toString() {
66 return rev;
67 }
68
69 public static void main(String[] args) throws IOException {
70 File entriesFile = new File(".svn", "entries");
71 BufferedReader entries = new BufferedReader(new FileReader(entriesFile));
72 entries.readLine();
73 entries.readLine();
74 entries.readLine();
75 String revision = entries.readLine();
76 entries.close();
77
78 String buildDir = "output";
79 if (args.length < 1)
80 buildDir = args[0];
81 File revFile = new File(buildDir, resourceName);
82 FileWriter out = new FileWriter(revFile);
83 out.write(revision);
84 out.close();
85
86 initialize();
87 System.out.println("Subversion revision " + new Revision());
88 }
89 }