# Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT # file at the top-level directory of this distribution and at # http://rust-lang.org/COPYRIGHT. # # Licensed under the Apache License, Version 2.0 or the MIT license # , at your # option. This file may not be copied, modified, or distributed # except according to those terms. import re license_re = re.compile( u"""(#|//) Copyright .* The Rust Project Developers. See the COPYRIGHT \\1 file at the top-level directory of this distribution and at \\1 http://rust-lang.org/COPYRIGHT. \\1 \\1 Licensed under the Apache License, Version 2.0 or the MIT license \\1 , at your \\1 option. This file may not be copied, modified, or distributed \\1 except according to those terms.""") exceptions = [ "libstd/sync/mpsc/mpsc_queue.rs", # BSD "libstd/sync/mpsc/spsc_queue.rs", # BSD "test/bench/shootout-binarytrees.rs", # BSD "test/bench/shootout-chameneos-redux.rs", # BSD "test/bench/shootout-fannkuch-redux.rs", # BSD "test/bench/shootout-fasta.rs", # BSD "test/bench/shootout-fasta-redux.rs", # BSD "test/bench/shootout-k-nucleotide.rs", # BSD "test/bench/shootout-mandelbrot.rs", # BSD "test/bench/shootout-meteor.rs", # BSD "test/bench/shootout-nbody.rs", # BSD "test/bench/shootout-regex-dna.rs", # BSD "test/bench/shootout-reverse-complement.rs", # BSD "test/bench/shootout-spectralnorm.rs", # BSD "test/bench/shootout-threadring.rs", # BSD ] def check_license(name, contents): # Whitelist check if any(name.endswith(e) for e in exceptions): return True # Xfail check firstlineish = contents[:100] if "ignore-license" in firstlineish: return True # License check boilerplate = contents[:500] return bool(license_re.search(boilerplate))