]> git.lizzy.rs Git - rust.git/blob - src/etc/licenseck.py
Merge remote-tracking branch 'brson/nocommupstream'
[rust.git] / src / etc / licenseck.py
1 # Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2 # file at the top-level directory of this distribution and at
3 # http://rust-lang.org/COPYRIGHT.
4 #
5 # Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 # http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 # <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 # option. This file may not be copied, modified, or distributed
9 # except according to those terms.
10
11 license1 = """// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
12 // file at the top-level directory of this distribution and at
13 // http://rust-lang.org/COPYRIGHT.
14 //
15 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
16 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
17 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
18 // option. This file may not be copied, modified, or distributed
19 // except according to those terms.
20 """
21
22 license2 = """// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
23 // file at the top-level directory of this distribution and at
24 // http://rust-lang.org/COPYRIGHT.
25 //
26 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
27 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
28 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
29 // option. This file may not be copied, modified, or distributed
30 // except according to those terms.
31 """
32
33 license3 = """# Copyright 2013 The Rust Project Developers. See the COPYRIGHT
34 # file at the top-level directory of this distribution and at
35 # http://rust-lang.org/COPYRIGHT.
36 #
37 # Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
38 # http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
39 # <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
40 # option. This file may not be copied, modified, or distributed
41 # except according to those terms.
42 """
43
44 licenses = [license1, license2, license3]
45
46 exceptions = [
47     "rt/rust_android_dummy.cpp", # BSD, chromium
48     "rt/rust_android_dummy.h", # BSD, chromium
49     "rt/isaac/randport.cpp", # public domain
50     "rt/isaac/rand.h", # public domain
51     "rt/isaac/standard.h", # public domain
52 ]
53
54 def check_license(name, contents):
55     valid_license = False
56     for a_valid_license in licenses:
57         if contents.startswith(a_valid_license):
58             valid_license = True
59             break
60     if valid_license:
61         return True
62
63     for exception in exceptions:
64         if name.endswith(exception):
65             return True
66
67     firstlineish = contents[:100]
68     if firstlineish.find("xfail-license") != -1:
69         return True
70
71     return False
72