| author | David Anderson <dvander@alliedmods.net> |
| Wed Feb 25 19:22:36 2009 -0500 (2009-02-25) | |
| changeset 2603 | fa286305bd3f |
| parent 2292 | 96bf4c760579 |
| child 2723 | d8cde305bb14 |
| permissions | -rw-r--r-- |
1 #!/usr/bin/perl
3 use strict;
4 use Cwd;
6 package Build;
8 our $SVN = "/usr/bin/svn";
9 our $SVN_USER = 'dvander';
10 our $SVN_ARGS = '';
12 sub HgRevNum
13 {
14 my ($path) = (@_);
15 my ($cd, $text, $rev);
17 $cd = Cwd::cwd();
18 chdir($path);
19 $text = `hg identify -n`;
20 chdir($cd);
22 chomp $text;
23 if ($text =~ /^(\d+)/)
24 {
25 return $1;
26 }
28 return 0;
29 }
31 sub SvnRevNum
32 {
33 my ($str)=(@_);
35 my $data = Command('svnversion -c ' . $str);
36 if ($data =~ /(\d+):(\d+)/)
37 {
38 return $2;
39 } elsif ($data =~ /(\d+)/) {
40 return $1;
41 } else {
42 return 0;
43 }
44 }
46 sub ProductVersion
47 {
48 my ($file) = (@_);
49 my ($version);
50 open(FILE, $file) or die "Could not open $file: $!\n";
51 $version = <FILE>;
52 close(FILE);
53 chomp $version;
54 return $version;
55 }
57 sub Delete
58 {
59 my ($str)=(@_);
60 if ($^O =~ /MSWin/)
61 {
62 Command("del /S /F /Q \"$str\"");
63 Command("rmdir /S /Q \"$str\"");
64 } else {
65 Command("rm -rf $str");
66 }
67 return !(-e $str);
68 }
70 sub Copy
71 {
72 my ($src,$dest)=(@_);
73 if ($^O =~ /MSWin/)
74 {
75 Command("copy \"$src\" \"$dest\" /y");
76 } else {
77 Command("cp \"$src\" \"$dest\"");
78 }
79 return (-e $dest);
80 }
82 sub Move
83 {
84 my ($src,$dest)=(@_);
85 if ($^O =~ /MSWin/)
86 {
87 Command("move \"$src\" \"$dest\"");
88 } else {
89 Command("mv \"$src\" \"$dest\"");
90 }
91 return (-e $dest);
92 }
94 sub Command
95 {
96 my($cmd)=(@_);
97 print "$cmd\n";
98 return `$cmd`;
99 }
101 sub PathFormat
102 {
103 my ($str)=(@_);
104 if ($^O =~ /MSWin/)
105 {
106 $str =~ s#/#\\#g;
107 } else {
108 $str =~ s#\\#/#g;
109 }
110 return $str;
111 }
113 sub SVN_Remove
114 {
115 my ($file)=(@_);
116 my ($path, $name);
117 if ($^O =~ /MSWin/)
118 {
119 ($path, $name) = ($file =~ /(.+)\/([^\/]+)$/);
120 } else {
121 ($path, $name) = ($file =~ /(.+)\\([^\\]+)$/);
122 }
123 my $dir = Cwd::cwd();
124 chdir($path);
125 Command($SVN . ' ' . $SVN_ARGS . ' delete ' . $name);
126 chdir($dir);
127 }
129 sub SVN_Add
130 {
131 my ($file)=(@_);
132 my ($path, $name);
133 if ($^O =~ /MSWin/)
134 {
135 ($path, $name) = ($file =~ /(.+)\/([^\/]+)$/);
136 } else {
137 ($path, $name) = ($file =~ /(.+)\\([^\\]+)$/);
138 }
139 my $dir = Cwd::cwd();
140 chdir($path);
141 Command($SVN . ' ' . $SVN_ARGS . ' add ' . $name);
142 chdir($dir);
143 }
145 return 1;