aboutsummaryrefslogtreecommitdiff
path: root/forbidden.go
diff options
context:
space:
mode:
Diffstat (limited to 'forbidden.go')
-rw-r--r--forbidden.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/forbidden.go b/forbidden.go
new file mode 100644
index 0000000..6c02ee5
--- /dev/null
+++ b/forbidden.go
@@ -0,0 +1,48 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package licenseclassifier
+
+import "regexp"
+
+var (
+ reCCBYNC = regexp.MustCompile(`(?i).*\bAttribution NonCommercial\b.*`)
+ reCCBYNCND = regexp.MustCompile(`(?i).*\bAttribution NonCommercial NoDerivs\b.*`)
+ reCCBYNCSA = regexp.MustCompile(`(?i).*\bAttribution NonCommercial ShareAlike\b.*`)
+
+ // forbiddenRegexps are regular expressions we expect to find in
+ // forbidden licenses. If we think we have a forbidden license but
+ // don't find the equivalent phrase, then it's probably just a
+ // misclassification.
+ forbiddenRegexps = map[string]*regexp.Regexp{
+ AGPL10: regexp.MustCompile(`(?i).*\bAFFERO GENERAL PUBLIC LICENSE\b.*`),
+ AGPL30: regexp.MustCompile(`(?i).*\bGNU AFFERO GENERAL PUBLIC LICENSE\b.*`),
+ CCBYNC10: reCCBYNC,
+ CCBYNC20: reCCBYNC,
+ CCBYNC25: reCCBYNC,
+ CCBYNC30: reCCBYNC,
+ CCBYNC40: reCCBYNC,
+ CCBYNCND10: regexp.MustCompile(`(?i).*\bAttribution NoDerivs NonCommercial\b.*`),
+ CCBYNCND20: reCCBYNCND,
+ CCBYNCND25: reCCBYNCND,
+ CCBYNCND30: reCCBYNCND,
+ CCBYNCND40: regexp.MustCompile(`(?i).*\bAttribution NonCommercial NoDerivatives\b.*`),
+ CCBYNCSA10: reCCBYNCSA,
+ CCBYNCSA20: reCCBYNCSA,
+ CCBYNCSA25: reCCBYNCSA,
+ CCBYNCSA30: reCCBYNCSA,
+ CCBYNCSA40: reCCBYNCSA,
+ WTFPL: regexp.MustCompile(`(?i).*\bDO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE\b.*`),
+ }
+)