From 29bc0a181ba002d5bf705aa154e2b12d17a1b879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1ximo=20Cuadros?= Date: Wed, 15 Apr 2020 17:27:48 +0200 Subject: [PATCH] data: replace substring package with regex package --- data/documentation.go | 40 +-- data/test.go | 24 +- data/vendor.go | 326 +++++++++--------- go.mod | 2 - go.sum | 4 - .../assets/documentation.go.tmpl | 9 +- internal/code-generator/assets/vendor.go.tmpl | 8 +- .../generator/test_files/documentation.gold | 40 +-- .../generator/test_files/vendor.gold | 326 +++++++++--------- utils.go | 17 +- 10 files changed, 401 insertions(+), 395 deletions(-) diff --git a/data/documentation.go b/data/documentation.go index 2494c6f..77ce04b 100644 --- a/data/documentation.go +++ b/data/documentation.go @@ -3,24 +3,24 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" -var DocumentationMatchers = substring.Or( - substring.Regexp(`^[Dd]ocs?/`), - substring.Regexp(`(^|/)[Dd]ocumentation/`), - substring.Regexp(`(^|/)[Gg]roovydoc/`), - substring.Regexp(`(^|/)[Jj]avadoc/`), - substring.Regexp(`^[Mm]an/`), - substring.Regexp(`^[Ee]xamples/`), - substring.Regexp(`^[Dd]emos?/`), - substring.Regexp(`(^|/)inst/doc/`), - substring.Regexp(`(^|/)CHANGE(S|LOG)?(\.|$)`), - substring.Regexp(`(^|/)CONTRIBUTING(\.|$)`), - substring.Regexp(`(^|/)COPYING(\.|$)`), - substring.Regexp(`(^|/)INSTALL(\.|$)`), - substring.Regexp(`(^|/)LICEN[CS]E(\.|$)`), - substring.Regexp(`(^|/)[Ll]icen[cs]e(\.|$)`), - substring.Regexp(`(^|/)README(\.|$)`), - substring.Regexp(`(^|/)[Rr]eadme(\.|$)`), - substring.Regexp(`^[Ss]amples?/`), -) +var DocumentationMatchers = []regex.EnryRegexp{ + regex.MustCompile(`^[Dd]ocs?/`), + regex.MustCompile(`(^|/)[Dd]ocumentation/`), + regex.MustCompile(`(^|/)[Gg]roovydoc/`), + regex.MustCompile(`(^|/)[Jj]avadoc/`), + regex.MustCompile(`^[Mm]an/`), + regex.MustCompile(`^[Ee]xamples/`), + regex.MustCompile(`^[Dd]emos?/`), + regex.MustCompile(`(^|/)inst/doc/`), + regex.MustCompile(`(^|/)CHANGE(S|LOG)?(\.|$)`), + regex.MustCompile(`(^|/)CONTRIBUTING(\.|$)`), + regex.MustCompile(`(^|/)COPYING(\.|$)`), + regex.MustCompile(`(^|/)INSTALL(\.|$)`), + regex.MustCompile(`(^|/)LICEN[CS]E(\.|$)`), + regex.MustCompile(`(^|/)[Ll]icen[cs]e(\.|$)`), + regex.MustCompile(`(^|/)README(\.|$)`), + regex.MustCompile(`(^|/)[Rr]eadme(\.|$)`), + regex.MustCompile(`^[Ss]amples?/`), +} diff --git a/data/test.go b/data/test.go index f2a913f..bf2a240 100644 --- a/data/test.go +++ b/data/test.go @@ -1,17 +1,17 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" // TestMatchers is hand made collection of regexp used by the function `enry.IsTest` // to identify test files in different languages. -var TestMatchers = substring.Or( - substring.Regexp(`(^|/)tests/.*Test\.php$`), - substring.Regexp(`(^|/)test/.*Test(s?)\.java$`), - substring.Regexp(`(^|/)test(/|/.*/)Test.*\.java$`), - substring.Regexp(`(^|/)test/.*(Test(s?)|Spec(s?))\.scala$`), - substring.Regexp(`(^|/)test_.*\.py$`), - substring.Regexp(`(^|/).*_test\.go$`), - substring.Regexp(`(^|/).*_(test|spec)\.rb$`), - substring.Regexp(`(^|/).*Test(s?)\.cs$`), - substring.Regexp(`(^|/).*\.(test|spec)\.(ts|tsx|js)$`), -) +var TestMatchers = []regex.EnryRegexp{ + regex.MustCompile(`(^|/)tests/.*Test\.php$`), + regex.MustCompile(`(^|/)test/.*Test(s?)\.java$`), + regex.MustCompile(`(^|/)test(/|/.*/)Test.*\.java$`), + regex.MustCompile(`(^|/)test/.*(Test(s?)|Spec(s?))\.scala$`), + regex.MustCompile(`(^|/)test_.*\.py$`), + regex.MustCompile(`(^|/).*_test\.go$`), + regex.MustCompile(`(^|/).*_(test|spec)\.rb$`), + regex.MustCompile(`(^|/).*Test(s?)\.cs$`), + regex.MustCompile(`(^|/).*\.(test|spec)\.(ts|tsx|js)$`), +} diff --git a/data/vendor.go b/data/vendor.go index 178d7b4..82e8880 100644 --- a/data/vendor.go +++ b/data/vendor.go @@ -3,167 +3,167 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" -var VendorMatchers = substring.Or( - substring.Regexp(`(^|/)cache/`), - substring.Regexp(`^[Dd]ependencies/`), - substring.Regexp(`(^|/)dist/`), - substring.Regexp(`^deps/`), - substring.Regexp(`(^|/)configure$`), - substring.Regexp(`(^|/)config.guess$`), - substring.Regexp(`(^|/)config.sub$`), - substring.Regexp(`(^|/)aclocal.m4`), - substring.Regexp(`(^|/)libtool.m4`), - substring.Regexp(`(^|/)ltoptions.m4`), - substring.Regexp(`(^|/)ltsugar.m4`), - substring.Regexp(`(^|/)ltversion.m4`), - substring.Regexp(`(^|/)lt~obsolete.m4`), - substring.Regexp(`dotnet-install\.(ps1|sh)$`), - substring.Regexp(`cpplint.py`), - substring.Regexp(`node_modules/`), - substring.Regexp(`(^|/)\.yarn/releases/`), - substring.Regexp(`(^|/)_esy$`), - substring.Regexp(`bower_components/`), - substring.Regexp(`^rebar$`), - substring.Regexp(`erlang.mk`), - substring.Regexp(`Godeps/_workspace/`), - substring.Regexp(`(^|/)testdata/`), - substring.Regexp(`.indent.pro`), - substring.Regexp(`(\.|-)min\.(js|css)$`), - substring.Regexp(`([^\s]*)import\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)bootstrap([^.]*)\.(js|css|less|scss|styl)$`), - substring.Regexp(`(^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$`), - substring.Regexp(`(^|/)font-?awesome\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)font-?awesome/.*\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)foundation\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)normalize\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)skeleton\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)animate\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)materialize\.(css|less|scss|styl|js)$`), - substring.Regexp(`(^|/)select2/.*\.(css|scss|js)$`), - substring.Regexp(`(^|/)bulma\.(css|sass|scss)$`), - substring.Regexp(`(3rd|[Tt]hird)[-_]?[Pp]arty/`), - substring.Regexp(`vendors?/`), - substring.Regexp(`extern(al)?/`), - substring.Regexp(`(^|/)[Vv]+endor/`), - substring.Regexp(`^debian/`), - substring.Regexp(`run.n$`), - substring.Regexp(`bootstrap-datepicker/`), - substring.Regexp(`(^|/)jquery([^.]*)\.js$`), - substring.Regexp(`(^|/)jquery\-\d\.\d+(\.\d+)?\.js$`), - substring.Regexp(`(^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?\.(js|css)$`), - substring.Regexp(`(^|/)jquery\.(ui|effects)\.([^.]*)\.(js|css)$`), - substring.Regexp(`jquery.fn.gantt.js`), - substring.Regexp(`jquery.fancybox.(js|css)`), - substring.Regexp(`fuelux.js`), - substring.Regexp(`(^|/)jquery\.fileupload(-\w+)?\.js$`), - substring.Regexp(`jquery.dataTables.js`), - substring.Regexp(`bootbox.js`), - substring.Regexp(`pdf.worker.js`), - substring.Regexp(`(^|/)slick\.\w+.js$`), - substring.Regexp(`(^|/)Leaflet\.Coordinates-\d+\.\d+\.\d+\.src\.js$`), - substring.Regexp(`leaflet.draw-src.js`), - substring.Regexp(`leaflet.draw.css`), - substring.Regexp(`Control.FullScreen.css`), - substring.Regexp(`Control.FullScreen.js`), - substring.Regexp(`leaflet.spin.js`), - substring.Regexp(`wicket-leaflet.js`), - substring.Regexp(`.sublime-project`), - substring.Regexp(`.sublime-workspace`), - substring.Regexp(`.vscode`), - substring.Regexp(`(^|/)prototype(.*)\.js$`), - substring.Regexp(`(^|/)effects\.js$`), - substring.Regexp(`(^|/)controls\.js$`), - substring.Regexp(`(^|/)dragdrop\.js$`), - substring.Regexp(`(.*?)\.d\.ts$`), - substring.Regexp(`(^|/)mootools([^.]*)\d+\.\d+.\d+([^.]*)\.js$`), - substring.Regexp(`(^|/)dojo\.js$`), - substring.Regexp(`(^|/)MochiKit\.js$`), - substring.Regexp(`(^|/)yahoo-([^.]*)\.js$`), - substring.Regexp(`(^|/)yui([^.]*)\.js$`), - substring.Regexp(`(^|/)ckeditor\.js$`), - substring.Regexp(`(^|/)tiny_mce([^.]*)\.js$`), - substring.Regexp(`(^|/)tiny_mce/(langs|plugins|themes|utils)`), - substring.Regexp(`(^|/)ace-builds/`), - substring.Regexp(`(^|/)fontello(.*?)\.css$`), - substring.Regexp(`(^|/)MathJax/`), - substring.Regexp(`(^|/)Chart\.js$`), - substring.Regexp(`(^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo)`), - substring.Regexp(`(^|/)shBrush([^.]*)\.js$`), - substring.Regexp(`(^|/)shCore\.js$`), - substring.Regexp(`(^|/)shLegacy\.js$`), - substring.Regexp(`(^|/)angular([^.]*)\.js$`), - substring.Regexp(`(^|\/)d3(\.v\d+)?([^.]*)\.js$`), - substring.Regexp(`(^|/)react(-[^.]*)?\.js$`), - substring.Regexp(`(^|/)flow-typed/.*\.js$`), - substring.Regexp(`(^|/)modernizr\-\d\.\d+(\.\d+)?\.js$`), - substring.Regexp(`(^|/)modernizr\.custom\.\d+\.js$`), - substring.Regexp(`(^|/)knockout-(\d+\.){3}(debug\.)?js$`), - substring.Regexp(`(^|/)docs?/_?(build|themes?|templates?|static)/`), - substring.Regexp(`(^|/)admin_media/`), - substring.Regexp(`(^|/)env/`), - substring.Regexp(`^fabfile\.py$`), - substring.Regexp(`^waf$`), - substring.Regexp(`^.osx$`), - substring.Regexp(`\.xctemplate/`), - substring.Regexp(`\.imageset/`), - substring.Regexp(`(^|/)Carthage/`), - substring.Regexp(`(^|/)Sparkle/`), - substring.Regexp(`Crashlytics.framework/`), - substring.Regexp(`Fabric.framework/`), - substring.Regexp(`BuddyBuildSDK.framework/`), - substring.Regexp(`Realm.framework`), - substring.Regexp(`RealmSwift.framework`), - substring.Regexp(`gitattributes$`), - substring.Regexp(`gitignore$`), - substring.Regexp(`gitmodules$`), - substring.Regexp(`(^|/)gradlew$`), - substring.Regexp(`(^|/)gradlew\.bat$`), - substring.Regexp(`(^|/)gradle/wrapper/`), - substring.Regexp(`(^|/)mvnw$`), - substring.Regexp(`(^|/)mvnw\.cmd$`), - substring.Regexp(`(^|/)\.mvn/wrapper/`), - substring.Regexp(`-vsdoc\.js$`), - substring.Regexp(`\.intellisense\.js$`), - substring.Regexp(`(^|/)jquery([^.]*)\.validate(\.unobtrusive)?\.js$`), - substring.Regexp(`(^|/)jquery([^.]*)\.unobtrusive\-ajax\.js$`), - substring.Regexp(`(^|/)[Mm]icrosoft([Mm]vc)?([Aa]jax|[Vv]alidation)(\.debug)?\.js$`), - substring.Regexp(`^[Pp]ackages\/.+\.\d+\/`), - substring.Regexp(`(^|/)extjs/.*?\.js$`), - substring.Regexp(`(^|/)extjs/.*?\.xml$`), - substring.Regexp(`(^|/)extjs/.*?\.txt$`), - substring.Regexp(`(^|/)extjs/.*?\.html$`), - substring.Regexp(`(^|/)extjs/.*?\.properties$`), - substring.Regexp(`(^|/)extjs/.sencha/`), - substring.Regexp(`(^|/)extjs/docs/`), - substring.Regexp(`(^|/)extjs/builds/`), - substring.Regexp(`(^|/)extjs/cmd/`), - substring.Regexp(`(^|/)extjs/examples/`), - substring.Regexp(`(^|/)extjs/locale/`), - substring.Regexp(`(^|/)extjs/packages/`), - substring.Regexp(`(^|/)extjs/plugins/`), - substring.Regexp(`(^|/)extjs/resources/`), - substring.Regexp(`(^|/)extjs/src/`), - substring.Regexp(`(^|/)extjs/welcome/`), - substring.Regexp(`(^|/)html5shiv\.js$`), - substring.Regexp(`^[Tt]ests?/fixtures/`), - substring.Regexp(`^[Ss]pecs?/fixtures/`), - substring.Regexp(`(^|/)cordova([^.]*)\.js$`), - substring.Regexp(`(^|/)cordova\-\d\.\d(\.\d)?\.js$`), - substring.Regexp(`foundation(\..*)?\.js$`), - substring.Regexp(`^Vagrantfile$`), - substring.Regexp(`.[Dd][Ss]_[Ss]tore$`), - substring.Regexp(`^vignettes/`), - substring.Regexp(`^inst/extdata/`), - substring.Regexp(`octicons.css`), - substring.Regexp(`sprockets-octicons.scss`), - substring.Regexp(`(^|/)activator$`), - substring.Regexp(`(^|/)activator\.bat$`), - substring.Regexp(`proguard.pro`), - substring.Regexp(`proguard-rules.pro`), - substring.Regexp(`^puphpet/`), - substring.Regexp(`(^|/)\.google_apis/`), - substring.Regexp(`^Jenkinsfile$`), -) +var VendorMatchers = []regex.EnryRegexp{ + regex.MustCompile(`(^|/)cache/`), + regex.MustCompile(`^[Dd]ependencies/`), + regex.MustCompile(`(^|/)dist/`), + regex.MustCompile(`^deps/`), + regex.MustCompile(`(^|/)configure$`), + regex.MustCompile(`(^|/)config.guess$`), + regex.MustCompile(`(^|/)config.sub$`), + regex.MustCompile(`(^|/)aclocal.m4`), + regex.MustCompile(`(^|/)libtool.m4`), + regex.MustCompile(`(^|/)ltoptions.m4`), + regex.MustCompile(`(^|/)ltsugar.m4`), + regex.MustCompile(`(^|/)ltversion.m4`), + regex.MustCompile(`(^|/)lt~obsolete.m4`), + regex.MustCompile(`dotnet-install\.(ps1|sh)$`), + regex.MustCompile(`cpplint.py`), + regex.MustCompile(`node_modules/`), + regex.MustCompile(`(^|/)\.yarn/releases/`), + regex.MustCompile(`(^|/)_esy$`), + regex.MustCompile(`bower_components/`), + regex.MustCompile(`^rebar$`), + regex.MustCompile(`erlang.mk`), + regex.MustCompile(`Godeps/_workspace/`), + regex.MustCompile(`(^|/)testdata/`), + regex.MustCompile(`.indent.pro`), + regex.MustCompile(`(\.|-)min\.(js|css)$`), + regex.MustCompile(`([^\s]*)import\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)bootstrap([^.]*)\.(js|css|less|scss|styl)$`), + regex.MustCompile(`(^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$`), + regex.MustCompile(`(^|/)font-?awesome\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)font-?awesome/.*\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)foundation\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)normalize\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)skeleton\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)animate\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)materialize\.(css|less|scss|styl|js)$`), + regex.MustCompile(`(^|/)select2/.*\.(css|scss|js)$`), + regex.MustCompile(`(^|/)bulma\.(css|sass|scss)$`), + regex.MustCompile(`(3rd|[Tt]hird)[-_]?[Pp]arty/`), + regex.MustCompile(`vendors?/`), + regex.MustCompile(`extern(al)?/`), + regex.MustCompile(`(^|/)[Vv]+endor/`), + regex.MustCompile(`^debian/`), + regex.MustCompile(`run.n$`), + regex.MustCompile(`bootstrap-datepicker/`), + regex.MustCompile(`(^|/)jquery([^.]*)\.js$`), + regex.MustCompile(`(^|/)jquery\-\d\.\d+(\.\d+)?\.js$`), + regex.MustCompile(`(^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?\.(js|css)$`), + regex.MustCompile(`(^|/)jquery\.(ui|effects)\.([^.]*)\.(js|css)$`), + regex.MustCompile(`jquery.fn.gantt.js`), + regex.MustCompile(`jquery.fancybox.(js|css)`), + regex.MustCompile(`fuelux.js`), + regex.MustCompile(`(^|/)jquery\.fileupload(-\w+)?\.js$`), + regex.MustCompile(`jquery.dataTables.js`), + regex.MustCompile(`bootbox.js`), + regex.MustCompile(`pdf.worker.js`), + regex.MustCompile(`(^|/)slick\.\w+.js$`), + regex.MustCompile(`(^|/)Leaflet\.Coordinates-\d+\.\d+\.\d+\.src\.js$`), + regex.MustCompile(`leaflet.draw-src.js`), + regex.MustCompile(`leaflet.draw.css`), + regex.MustCompile(`Control.FullScreen.css`), + regex.MustCompile(`Control.FullScreen.js`), + regex.MustCompile(`leaflet.spin.js`), + regex.MustCompile(`wicket-leaflet.js`), + regex.MustCompile(`.sublime-project`), + regex.MustCompile(`.sublime-workspace`), + regex.MustCompile(`.vscode`), + regex.MustCompile(`(^|/)prototype(.*)\.js$`), + regex.MustCompile(`(^|/)effects\.js$`), + regex.MustCompile(`(^|/)controls\.js$`), + regex.MustCompile(`(^|/)dragdrop\.js$`), + regex.MustCompile(`(.*?)\.d\.ts$`), + regex.MustCompile(`(^|/)mootools([^.]*)\d+\.\d+.\d+([^.]*)\.js$`), + regex.MustCompile(`(^|/)dojo\.js$`), + regex.MustCompile(`(^|/)MochiKit\.js$`), + regex.MustCompile(`(^|/)yahoo-([^.]*)\.js$`), + regex.MustCompile(`(^|/)yui([^.]*)\.js$`), + regex.MustCompile(`(^|/)ckeditor\.js$`), + regex.MustCompile(`(^|/)tiny_mce([^.]*)\.js$`), + regex.MustCompile(`(^|/)tiny_mce/(langs|plugins|themes|utils)`), + regex.MustCompile(`(^|/)ace-builds/`), + regex.MustCompile(`(^|/)fontello(.*?)\.css$`), + regex.MustCompile(`(^|/)MathJax/`), + regex.MustCompile(`(^|/)Chart\.js$`), + regex.MustCompile(`(^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo)`), + regex.MustCompile(`(^|/)shBrush([^.]*)\.js$`), + regex.MustCompile(`(^|/)shCore\.js$`), + regex.MustCompile(`(^|/)shLegacy\.js$`), + regex.MustCompile(`(^|/)angular([^.]*)\.js$`), + regex.MustCompile(`(^|\/)d3(\.v\d+)?([^.]*)\.js$`), + regex.MustCompile(`(^|/)react(-[^.]*)?\.js$`), + regex.MustCompile(`(^|/)flow-typed/.*\.js$`), + regex.MustCompile(`(^|/)modernizr\-\d\.\d+(\.\d+)?\.js$`), + regex.MustCompile(`(^|/)modernizr\.custom\.\d+\.js$`), + regex.MustCompile(`(^|/)knockout-(\d+\.){3}(debug\.)?js$`), + regex.MustCompile(`(^|/)docs?/_?(build|themes?|templates?|static)/`), + regex.MustCompile(`(^|/)admin_media/`), + regex.MustCompile(`(^|/)env/`), + regex.MustCompile(`^fabfile\.py$`), + regex.MustCompile(`^waf$`), + regex.MustCompile(`^.osx$`), + regex.MustCompile(`\.xctemplate/`), + regex.MustCompile(`\.imageset/`), + regex.MustCompile(`(^|/)Carthage/`), + regex.MustCompile(`(^|/)Sparkle/`), + regex.MustCompile(`Crashlytics.framework/`), + regex.MustCompile(`Fabric.framework/`), + regex.MustCompile(`BuddyBuildSDK.framework/`), + regex.MustCompile(`Realm.framework`), + regex.MustCompile(`RealmSwift.framework`), + regex.MustCompile(`gitattributes$`), + regex.MustCompile(`gitignore$`), + regex.MustCompile(`gitmodules$`), + regex.MustCompile(`(^|/)gradlew$`), + regex.MustCompile(`(^|/)gradlew\.bat$`), + regex.MustCompile(`(^|/)gradle/wrapper/`), + regex.MustCompile(`(^|/)mvnw$`), + regex.MustCompile(`(^|/)mvnw\.cmd$`), + regex.MustCompile(`(^|/)\.mvn/wrapper/`), + regex.MustCompile(`-vsdoc\.js$`), + regex.MustCompile(`\.intellisense\.js$`), + regex.MustCompile(`(^|/)jquery([^.]*)\.validate(\.unobtrusive)?\.js$`), + regex.MustCompile(`(^|/)jquery([^.]*)\.unobtrusive\-ajax\.js$`), + regex.MustCompile(`(^|/)[Mm]icrosoft([Mm]vc)?([Aa]jax|[Vv]alidation)(\.debug)?\.js$`), + regex.MustCompile(`^[Pp]ackages\/.+\.\d+\/`), + regex.MustCompile(`(^|/)extjs/.*?\.js$`), + regex.MustCompile(`(^|/)extjs/.*?\.xml$`), + regex.MustCompile(`(^|/)extjs/.*?\.txt$`), + regex.MustCompile(`(^|/)extjs/.*?\.html$`), + regex.MustCompile(`(^|/)extjs/.*?\.properties$`), + regex.MustCompile(`(^|/)extjs/.sencha/`), + regex.MustCompile(`(^|/)extjs/docs/`), + regex.MustCompile(`(^|/)extjs/builds/`), + regex.MustCompile(`(^|/)extjs/cmd/`), + regex.MustCompile(`(^|/)extjs/examples/`), + regex.MustCompile(`(^|/)extjs/locale/`), + regex.MustCompile(`(^|/)extjs/packages/`), + regex.MustCompile(`(^|/)extjs/plugins/`), + regex.MustCompile(`(^|/)extjs/resources/`), + regex.MustCompile(`(^|/)extjs/src/`), + regex.MustCompile(`(^|/)extjs/welcome/`), + regex.MustCompile(`(^|/)html5shiv\.js$`), + regex.MustCompile(`^[Tt]ests?/fixtures/`), + regex.MustCompile(`^[Ss]pecs?/fixtures/`), + regex.MustCompile(`(^|/)cordova([^.]*)\.js$`), + regex.MustCompile(`(^|/)cordova\-\d\.\d(\.\d)?\.js$`), + regex.MustCompile(`foundation(\..*)?\.js$`), + regex.MustCompile(`^Vagrantfile$`), + regex.MustCompile(`.[Dd][Ss]_[Ss]tore$`), + regex.MustCompile(`^vignettes/`), + regex.MustCompile(`^inst/extdata/`), + regex.MustCompile(`octicons.css`), + regex.MustCompile(`sprockets-octicons.scss`), + regex.MustCompile(`(^|/)activator$`), + regex.MustCompile(`(^|/)activator\.bat$`), + regex.MustCompile(`proguard.pro`), + regex.MustCompile(`proguard-rules.pro`), + regex.MustCompile(`^puphpet/`), + regex.MustCompile(`(^|/)\.google_apis/`), + regex.MustCompile(`^Jenkinsfile$`), +} diff --git a/go.mod b/go.mod index cc75d74..274d6c6 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,5 @@ go 1.14 require ( github.com/go-enry/go-oniguruma v1.2.0 github.com/stretchr/testify v1.3.0 - github.com/toqueteos/trie v1.0.0 // indirect - gopkg.in/toqueteos/substring.v1 v1.0.2 gopkg.in/yaml.v2 v2.2.8 ) diff --git a/go.sum b/go.sum index de8e3d4..7871dc6 100644 --- a/go.sum +++ b/go.sum @@ -8,11 +8,7 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/toqueteos/trie v1.0.0 h1:8i6pXxNUXNRAqP246iibb7w/pSFquNTQ+uNfriG7vlk= -github.com/toqueteos/trie v1.0.0/go.mod h1:Ywk48QhEqhU1+DwhMkJ2x7eeGxDHiGkAdc9+0DYcbsM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/toqueteos/substring.v1 v1.0.2 h1:urLqCeMm6x/eTuQa1oZerNw8N1KNOIp5hD5kGL7lFsE= -gopkg.in/toqueteos/substring.v1 v1.0.2/go.mod h1:Eb2Z1UYehlVK8LYW2WBVR2rwbujsz3aX8XDrM1vbNew= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/internal/code-generator/assets/documentation.go.tmpl b/internal/code-generator/assets/documentation.go.tmpl index 1a82ffd..bc9d88b 100644 --- a/internal/code-generator/assets/documentation.go.tmpl +++ b/internal/code-generator/assets/documentation.go.tmpl @@ -1,9 +1,10 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" -var DocumentationMatchers = substring.Or( +var DocumentationMatchers = []regex.EnryRegexp{ {{range $regexp := . -}} - substring.Regexp(`{{ $regexp }}`), + regex.MustCompile(`{{ $regexp }}`), {{end -}} -) +} + diff --git a/internal/code-generator/assets/vendor.go.tmpl b/internal/code-generator/assets/vendor.go.tmpl index 46402d2..2d6a521 100644 --- a/internal/code-generator/assets/vendor.go.tmpl +++ b/internal/code-generator/assets/vendor.go.tmpl @@ -1,9 +1,9 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" -var VendorMatchers = substring.Or( +var VendorMatchers = []regex.EnryRegexp{ {{range $regexp := . -}} - substring.Regexp(`{{ $regexp }}`), + regex.MustCompile(`{{ $regexp }}`), {{end -}} -) +} diff --git a/internal/code-generator/generator/test_files/documentation.gold b/internal/code-generator/generator/test_files/documentation.gold index 2494c6f..77ce04b 100644 --- a/internal/code-generator/generator/test_files/documentation.gold +++ b/internal/code-generator/generator/test_files/documentation.gold @@ -3,24 +3,24 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" -var DocumentationMatchers = substring.Or( - substring.Regexp(`^[Dd]ocs?/`), - substring.Regexp(`(^|/)[Dd]ocumentation/`), - substring.Regexp(`(^|/)[Gg]roovydoc/`), - substring.Regexp(`(^|/)[Jj]avadoc/`), - substring.Regexp(`^[Mm]an/`), - substring.Regexp(`^[Ee]xamples/`), - substring.Regexp(`^[Dd]emos?/`), - substring.Regexp(`(^|/)inst/doc/`), - substring.Regexp(`(^|/)CHANGE(S|LOG)?(\.|$)`), - substring.Regexp(`(^|/)CONTRIBUTING(\.|$)`), - substring.Regexp(`(^|/)COPYING(\.|$)`), - substring.Regexp(`(^|/)INSTALL(\.|$)`), - substring.Regexp(`(^|/)LICEN[CS]E(\.|$)`), - substring.Regexp(`(^|/)[Ll]icen[cs]e(\.|$)`), - substring.Regexp(`(^|/)README(\.|$)`), - substring.Regexp(`(^|/)[Rr]eadme(\.|$)`), - substring.Regexp(`^[Ss]amples?/`), -) +var DocumentationMatchers = []regex.EnryRegexp{ + regex.MustCompile(`^[Dd]ocs?/`), + regex.MustCompile(`(^|/)[Dd]ocumentation/`), + regex.MustCompile(`(^|/)[Gg]roovydoc/`), + regex.MustCompile(`(^|/)[Jj]avadoc/`), + regex.MustCompile(`^[Mm]an/`), + regex.MustCompile(`^[Ee]xamples/`), + regex.MustCompile(`^[Dd]emos?/`), + regex.MustCompile(`(^|/)inst/doc/`), + regex.MustCompile(`(^|/)CHANGE(S|LOG)?(\.|$)`), + regex.MustCompile(`(^|/)CONTRIBUTING(\.|$)`), + regex.MustCompile(`(^|/)COPYING(\.|$)`), + regex.MustCompile(`(^|/)INSTALL(\.|$)`), + regex.MustCompile(`(^|/)LICEN[CS]E(\.|$)`), + regex.MustCompile(`(^|/)[Ll]icen[cs]e(\.|$)`), + regex.MustCompile(`(^|/)README(\.|$)`), + regex.MustCompile(`(^|/)[Rr]eadme(\.|$)`), + regex.MustCompile(`^[Ss]amples?/`), +} diff --git a/internal/code-generator/generator/test_files/vendor.gold b/internal/code-generator/generator/test_files/vendor.gold index 178d7b4..82e8880 100644 --- a/internal/code-generator/generator/test_files/vendor.gold +++ b/internal/code-generator/generator/test_files/vendor.gold @@ -3,167 +3,167 @@ package data -import "gopkg.in/toqueteos/substring.v1" +import "github.com/go-enry/go-enry/v2/regex" -var VendorMatchers = substring.Or( - substring.Regexp(`(^|/)cache/`), - substring.Regexp(`^[Dd]ependencies/`), - substring.Regexp(`(^|/)dist/`), - substring.Regexp(`^deps/`), - substring.Regexp(`(^|/)configure$`), - substring.Regexp(`(^|/)config.guess$`), - substring.Regexp(`(^|/)config.sub$`), - substring.Regexp(`(^|/)aclocal.m4`), - substring.Regexp(`(^|/)libtool.m4`), - substring.Regexp(`(^|/)ltoptions.m4`), - substring.Regexp(`(^|/)ltsugar.m4`), - substring.Regexp(`(^|/)ltversion.m4`), - substring.Regexp(`(^|/)lt~obsolete.m4`), - substring.Regexp(`dotnet-install\.(ps1|sh)$`), - substring.Regexp(`cpplint.py`), - substring.Regexp(`node_modules/`), - substring.Regexp(`(^|/)\.yarn/releases/`), - substring.Regexp(`(^|/)_esy$`), - substring.Regexp(`bower_components/`), - substring.Regexp(`^rebar$`), - substring.Regexp(`erlang.mk`), - substring.Regexp(`Godeps/_workspace/`), - substring.Regexp(`(^|/)testdata/`), - substring.Regexp(`.indent.pro`), - substring.Regexp(`(\.|-)min\.(js|css)$`), - substring.Regexp(`([^\s]*)import\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)bootstrap([^.]*)\.(js|css|less|scss|styl)$`), - substring.Regexp(`(^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$`), - substring.Regexp(`(^|/)font-?awesome\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)font-?awesome/.*\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)foundation\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)normalize\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)skeleton\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)animate\.(css|less|scss|styl)$`), - substring.Regexp(`(^|/)materialize\.(css|less|scss|styl|js)$`), - substring.Regexp(`(^|/)select2/.*\.(css|scss|js)$`), - substring.Regexp(`(^|/)bulma\.(css|sass|scss)$`), - substring.Regexp(`(3rd|[Tt]hird)[-_]?[Pp]arty/`), - substring.Regexp(`vendors?/`), - substring.Regexp(`extern(al)?/`), - substring.Regexp(`(^|/)[Vv]+endor/`), - substring.Regexp(`^debian/`), - substring.Regexp(`run.n$`), - substring.Regexp(`bootstrap-datepicker/`), - substring.Regexp(`(^|/)jquery([^.]*)\.js$`), - substring.Regexp(`(^|/)jquery\-\d\.\d+(\.\d+)?\.js$`), - substring.Regexp(`(^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?\.(js|css)$`), - substring.Regexp(`(^|/)jquery\.(ui|effects)\.([^.]*)\.(js|css)$`), - substring.Regexp(`jquery.fn.gantt.js`), - substring.Regexp(`jquery.fancybox.(js|css)`), - substring.Regexp(`fuelux.js`), - substring.Regexp(`(^|/)jquery\.fileupload(-\w+)?\.js$`), - substring.Regexp(`jquery.dataTables.js`), - substring.Regexp(`bootbox.js`), - substring.Regexp(`pdf.worker.js`), - substring.Regexp(`(^|/)slick\.\w+.js$`), - substring.Regexp(`(^|/)Leaflet\.Coordinates-\d+\.\d+\.\d+\.src\.js$`), - substring.Regexp(`leaflet.draw-src.js`), - substring.Regexp(`leaflet.draw.css`), - substring.Regexp(`Control.FullScreen.css`), - substring.Regexp(`Control.FullScreen.js`), - substring.Regexp(`leaflet.spin.js`), - substring.Regexp(`wicket-leaflet.js`), - substring.Regexp(`.sublime-project`), - substring.Regexp(`.sublime-workspace`), - substring.Regexp(`.vscode`), - substring.Regexp(`(^|/)prototype(.*)\.js$`), - substring.Regexp(`(^|/)effects\.js$`), - substring.Regexp(`(^|/)controls\.js$`), - substring.Regexp(`(^|/)dragdrop\.js$`), - substring.Regexp(`(.*?)\.d\.ts$`), - substring.Regexp(`(^|/)mootools([^.]*)\d+\.\d+.\d+([^.]*)\.js$`), - substring.Regexp(`(^|/)dojo\.js$`), - substring.Regexp(`(^|/)MochiKit\.js$`), - substring.Regexp(`(^|/)yahoo-([^.]*)\.js$`), - substring.Regexp(`(^|/)yui([^.]*)\.js$`), - substring.Regexp(`(^|/)ckeditor\.js$`), - substring.Regexp(`(^|/)tiny_mce([^.]*)\.js$`), - substring.Regexp(`(^|/)tiny_mce/(langs|plugins|themes|utils)`), - substring.Regexp(`(^|/)ace-builds/`), - substring.Regexp(`(^|/)fontello(.*?)\.css$`), - substring.Regexp(`(^|/)MathJax/`), - substring.Regexp(`(^|/)Chart\.js$`), - substring.Regexp(`(^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo)`), - substring.Regexp(`(^|/)shBrush([^.]*)\.js$`), - substring.Regexp(`(^|/)shCore\.js$`), - substring.Regexp(`(^|/)shLegacy\.js$`), - substring.Regexp(`(^|/)angular([^.]*)\.js$`), - substring.Regexp(`(^|\/)d3(\.v\d+)?([^.]*)\.js$`), - substring.Regexp(`(^|/)react(-[^.]*)?\.js$`), - substring.Regexp(`(^|/)flow-typed/.*\.js$`), - substring.Regexp(`(^|/)modernizr\-\d\.\d+(\.\d+)?\.js$`), - substring.Regexp(`(^|/)modernizr\.custom\.\d+\.js$`), - substring.Regexp(`(^|/)knockout-(\d+\.){3}(debug\.)?js$`), - substring.Regexp(`(^|/)docs?/_?(build|themes?|templates?|static)/`), - substring.Regexp(`(^|/)admin_media/`), - substring.Regexp(`(^|/)env/`), - substring.Regexp(`^fabfile\.py$`), - substring.Regexp(`^waf$`), - substring.Regexp(`^.osx$`), - substring.Regexp(`\.xctemplate/`), - substring.Regexp(`\.imageset/`), - substring.Regexp(`(^|/)Carthage/`), - substring.Regexp(`(^|/)Sparkle/`), - substring.Regexp(`Crashlytics.framework/`), - substring.Regexp(`Fabric.framework/`), - substring.Regexp(`BuddyBuildSDK.framework/`), - substring.Regexp(`Realm.framework`), - substring.Regexp(`RealmSwift.framework`), - substring.Regexp(`gitattributes$`), - substring.Regexp(`gitignore$`), - substring.Regexp(`gitmodules$`), - substring.Regexp(`(^|/)gradlew$`), - substring.Regexp(`(^|/)gradlew\.bat$`), - substring.Regexp(`(^|/)gradle/wrapper/`), - substring.Regexp(`(^|/)mvnw$`), - substring.Regexp(`(^|/)mvnw\.cmd$`), - substring.Regexp(`(^|/)\.mvn/wrapper/`), - substring.Regexp(`-vsdoc\.js$`), - substring.Regexp(`\.intellisense\.js$`), - substring.Regexp(`(^|/)jquery([^.]*)\.validate(\.unobtrusive)?\.js$`), - substring.Regexp(`(^|/)jquery([^.]*)\.unobtrusive\-ajax\.js$`), - substring.Regexp(`(^|/)[Mm]icrosoft([Mm]vc)?([Aa]jax|[Vv]alidation)(\.debug)?\.js$`), - substring.Regexp(`^[Pp]ackages\/.+\.\d+\/`), - substring.Regexp(`(^|/)extjs/.*?\.js$`), - substring.Regexp(`(^|/)extjs/.*?\.xml$`), - substring.Regexp(`(^|/)extjs/.*?\.txt$`), - substring.Regexp(`(^|/)extjs/.*?\.html$`), - substring.Regexp(`(^|/)extjs/.*?\.properties$`), - substring.Regexp(`(^|/)extjs/.sencha/`), - substring.Regexp(`(^|/)extjs/docs/`), - substring.Regexp(`(^|/)extjs/builds/`), - substring.Regexp(`(^|/)extjs/cmd/`), - substring.Regexp(`(^|/)extjs/examples/`), - substring.Regexp(`(^|/)extjs/locale/`), - substring.Regexp(`(^|/)extjs/packages/`), - substring.Regexp(`(^|/)extjs/plugins/`), - substring.Regexp(`(^|/)extjs/resources/`), - substring.Regexp(`(^|/)extjs/src/`), - substring.Regexp(`(^|/)extjs/welcome/`), - substring.Regexp(`(^|/)html5shiv\.js$`), - substring.Regexp(`^[Tt]ests?/fixtures/`), - substring.Regexp(`^[Ss]pecs?/fixtures/`), - substring.Regexp(`(^|/)cordova([^.]*)\.js$`), - substring.Regexp(`(^|/)cordova\-\d\.\d(\.\d)?\.js$`), - substring.Regexp(`foundation(\..*)?\.js$`), - substring.Regexp(`^Vagrantfile$`), - substring.Regexp(`.[Dd][Ss]_[Ss]tore$`), - substring.Regexp(`^vignettes/`), - substring.Regexp(`^inst/extdata/`), - substring.Regexp(`octicons.css`), - substring.Regexp(`sprockets-octicons.scss`), - substring.Regexp(`(^|/)activator$`), - substring.Regexp(`(^|/)activator\.bat$`), - substring.Regexp(`proguard.pro`), - substring.Regexp(`proguard-rules.pro`), - substring.Regexp(`^puphpet/`), - substring.Regexp(`(^|/)\.google_apis/`), - substring.Regexp(`^Jenkinsfile$`), -) +var VendorMatchers = []regex.EnryRegexp{ + regex.MustCompile(`(^|/)cache/`), + regex.MustCompile(`^[Dd]ependencies/`), + regex.MustCompile(`(^|/)dist/`), + regex.MustCompile(`^deps/`), + regex.MustCompile(`(^|/)configure$`), + regex.MustCompile(`(^|/)config.guess$`), + regex.MustCompile(`(^|/)config.sub$`), + regex.MustCompile(`(^|/)aclocal.m4`), + regex.MustCompile(`(^|/)libtool.m4`), + regex.MustCompile(`(^|/)ltoptions.m4`), + regex.MustCompile(`(^|/)ltsugar.m4`), + regex.MustCompile(`(^|/)ltversion.m4`), + regex.MustCompile(`(^|/)lt~obsolete.m4`), + regex.MustCompile(`dotnet-install\.(ps1|sh)$`), + regex.MustCompile(`cpplint.py`), + regex.MustCompile(`node_modules/`), + regex.MustCompile(`(^|/)\.yarn/releases/`), + regex.MustCompile(`(^|/)_esy$`), + regex.MustCompile(`bower_components/`), + regex.MustCompile(`^rebar$`), + regex.MustCompile(`erlang.mk`), + regex.MustCompile(`Godeps/_workspace/`), + regex.MustCompile(`(^|/)testdata/`), + regex.MustCompile(`.indent.pro`), + regex.MustCompile(`(\.|-)min\.(js|css)$`), + regex.MustCompile(`([^\s]*)import\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)bootstrap([^.]*)\.(js|css|less|scss|styl)$`), + regex.MustCompile(`(^|/)custom\.bootstrap([^\s]*)(js|css|less|scss|styl)$`), + regex.MustCompile(`(^|/)font-?awesome\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)font-?awesome/.*\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)foundation\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)normalize\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)skeleton\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)animate\.(css|less|scss|styl)$`), + regex.MustCompile(`(^|/)materialize\.(css|less|scss|styl|js)$`), + regex.MustCompile(`(^|/)select2/.*\.(css|scss|js)$`), + regex.MustCompile(`(^|/)bulma\.(css|sass|scss)$`), + regex.MustCompile(`(3rd|[Tt]hird)[-_]?[Pp]arty/`), + regex.MustCompile(`vendors?/`), + regex.MustCompile(`extern(al)?/`), + regex.MustCompile(`(^|/)[Vv]+endor/`), + regex.MustCompile(`^debian/`), + regex.MustCompile(`run.n$`), + regex.MustCompile(`bootstrap-datepicker/`), + regex.MustCompile(`(^|/)jquery([^.]*)\.js$`), + regex.MustCompile(`(^|/)jquery\-\d\.\d+(\.\d+)?\.js$`), + regex.MustCompile(`(^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?\.(js|css)$`), + regex.MustCompile(`(^|/)jquery\.(ui|effects)\.([^.]*)\.(js|css)$`), + regex.MustCompile(`jquery.fn.gantt.js`), + regex.MustCompile(`jquery.fancybox.(js|css)`), + regex.MustCompile(`fuelux.js`), + regex.MustCompile(`(^|/)jquery\.fileupload(-\w+)?\.js$`), + regex.MustCompile(`jquery.dataTables.js`), + regex.MustCompile(`bootbox.js`), + regex.MustCompile(`pdf.worker.js`), + regex.MustCompile(`(^|/)slick\.\w+.js$`), + regex.MustCompile(`(^|/)Leaflet\.Coordinates-\d+\.\d+\.\d+\.src\.js$`), + regex.MustCompile(`leaflet.draw-src.js`), + regex.MustCompile(`leaflet.draw.css`), + regex.MustCompile(`Control.FullScreen.css`), + regex.MustCompile(`Control.FullScreen.js`), + regex.MustCompile(`leaflet.spin.js`), + regex.MustCompile(`wicket-leaflet.js`), + regex.MustCompile(`.sublime-project`), + regex.MustCompile(`.sublime-workspace`), + regex.MustCompile(`.vscode`), + regex.MustCompile(`(^|/)prototype(.*)\.js$`), + regex.MustCompile(`(^|/)effects\.js$`), + regex.MustCompile(`(^|/)controls\.js$`), + regex.MustCompile(`(^|/)dragdrop\.js$`), + regex.MustCompile(`(.*?)\.d\.ts$`), + regex.MustCompile(`(^|/)mootools([^.]*)\d+\.\d+.\d+([^.]*)\.js$`), + regex.MustCompile(`(^|/)dojo\.js$`), + regex.MustCompile(`(^|/)MochiKit\.js$`), + regex.MustCompile(`(^|/)yahoo-([^.]*)\.js$`), + regex.MustCompile(`(^|/)yui([^.]*)\.js$`), + regex.MustCompile(`(^|/)ckeditor\.js$`), + regex.MustCompile(`(^|/)tiny_mce([^.]*)\.js$`), + regex.MustCompile(`(^|/)tiny_mce/(langs|plugins|themes|utils)`), + regex.MustCompile(`(^|/)ace-builds/`), + regex.MustCompile(`(^|/)fontello(.*?)\.css$`), + regex.MustCompile(`(^|/)MathJax/`), + regex.MustCompile(`(^|/)Chart\.js$`), + regex.MustCompile(`(^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo)`), + regex.MustCompile(`(^|/)shBrush([^.]*)\.js$`), + regex.MustCompile(`(^|/)shCore\.js$`), + regex.MustCompile(`(^|/)shLegacy\.js$`), + regex.MustCompile(`(^|/)angular([^.]*)\.js$`), + regex.MustCompile(`(^|\/)d3(\.v\d+)?([^.]*)\.js$`), + regex.MustCompile(`(^|/)react(-[^.]*)?\.js$`), + regex.MustCompile(`(^|/)flow-typed/.*\.js$`), + regex.MustCompile(`(^|/)modernizr\-\d\.\d+(\.\d+)?\.js$`), + regex.MustCompile(`(^|/)modernizr\.custom\.\d+\.js$`), + regex.MustCompile(`(^|/)knockout-(\d+\.){3}(debug\.)?js$`), + regex.MustCompile(`(^|/)docs?/_?(build|themes?|templates?|static)/`), + regex.MustCompile(`(^|/)admin_media/`), + regex.MustCompile(`(^|/)env/`), + regex.MustCompile(`^fabfile\.py$`), + regex.MustCompile(`^waf$`), + regex.MustCompile(`^.osx$`), + regex.MustCompile(`\.xctemplate/`), + regex.MustCompile(`\.imageset/`), + regex.MustCompile(`(^|/)Carthage/`), + regex.MustCompile(`(^|/)Sparkle/`), + regex.MustCompile(`Crashlytics.framework/`), + regex.MustCompile(`Fabric.framework/`), + regex.MustCompile(`BuddyBuildSDK.framework/`), + regex.MustCompile(`Realm.framework`), + regex.MustCompile(`RealmSwift.framework`), + regex.MustCompile(`gitattributes$`), + regex.MustCompile(`gitignore$`), + regex.MustCompile(`gitmodules$`), + regex.MustCompile(`(^|/)gradlew$`), + regex.MustCompile(`(^|/)gradlew\.bat$`), + regex.MustCompile(`(^|/)gradle/wrapper/`), + regex.MustCompile(`(^|/)mvnw$`), + regex.MustCompile(`(^|/)mvnw\.cmd$`), + regex.MustCompile(`(^|/)\.mvn/wrapper/`), + regex.MustCompile(`-vsdoc\.js$`), + regex.MustCompile(`\.intellisense\.js$`), + regex.MustCompile(`(^|/)jquery([^.]*)\.validate(\.unobtrusive)?\.js$`), + regex.MustCompile(`(^|/)jquery([^.]*)\.unobtrusive\-ajax\.js$`), + regex.MustCompile(`(^|/)[Mm]icrosoft([Mm]vc)?([Aa]jax|[Vv]alidation)(\.debug)?\.js$`), + regex.MustCompile(`^[Pp]ackages\/.+\.\d+\/`), + regex.MustCompile(`(^|/)extjs/.*?\.js$`), + regex.MustCompile(`(^|/)extjs/.*?\.xml$`), + regex.MustCompile(`(^|/)extjs/.*?\.txt$`), + regex.MustCompile(`(^|/)extjs/.*?\.html$`), + regex.MustCompile(`(^|/)extjs/.*?\.properties$`), + regex.MustCompile(`(^|/)extjs/.sencha/`), + regex.MustCompile(`(^|/)extjs/docs/`), + regex.MustCompile(`(^|/)extjs/builds/`), + regex.MustCompile(`(^|/)extjs/cmd/`), + regex.MustCompile(`(^|/)extjs/examples/`), + regex.MustCompile(`(^|/)extjs/locale/`), + regex.MustCompile(`(^|/)extjs/packages/`), + regex.MustCompile(`(^|/)extjs/plugins/`), + regex.MustCompile(`(^|/)extjs/resources/`), + regex.MustCompile(`(^|/)extjs/src/`), + regex.MustCompile(`(^|/)extjs/welcome/`), + regex.MustCompile(`(^|/)html5shiv\.js$`), + regex.MustCompile(`^[Tt]ests?/fixtures/`), + regex.MustCompile(`^[Ss]pecs?/fixtures/`), + regex.MustCompile(`(^|/)cordova([^.]*)\.js$`), + regex.MustCompile(`(^|/)cordova\-\d\.\d(\.\d)?\.js$`), + regex.MustCompile(`foundation(\..*)?\.js$`), + regex.MustCompile(`^Vagrantfile$`), + regex.MustCompile(`.[Dd][Ss]_[Ss]tore$`), + regex.MustCompile(`^vignettes/`), + regex.MustCompile(`^inst/extdata/`), + regex.MustCompile(`octicons.css`), + regex.MustCompile(`sprockets-octicons.scss`), + regex.MustCompile(`(^|/)activator$`), + regex.MustCompile(`(^|/)activator\.bat$`), + regex.MustCompile(`proguard.pro`), + regex.MustCompile(`proguard-rules.pro`), + regex.MustCompile(`^puphpet/`), + regex.MustCompile(`(^|/)\.google_apis/`), + regex.MustCompile(`^Jenkinsfile$`), +} diff --git a/utils.go b/utils.go index 6984f8f..ad2f785 100644 --- a/utils.go +++ b/utils.go @@ -6,6 +6,7 @@ import ( "strings" "github.com/go-enry/go-enry/v2/data" + "github.com/go-enry/go-enry/v2/regex" ) const binSniffLen = 8000 @@ -46,7 +47,7 @@ func GetMIMEType(path string, language string) string { // IsDocumentation returns whether or not path is a documentation path. func IsDocumentation(path string) bool { - return data.DocumentationMatchers.Match(path) + return matchRegexSlice(data.DocumentationMatchers, path) } // IsDotFile returns whether or not path has dot as a prefix. @@ -57,12 +58,12 @@ func IsDotFile(path string) bool { // IsVendor returns whether or not path is a vendor path. func IsVendor(path string) bool { - return data.VendorMatchers.Match(path) + return matchRegexSlice(data.VendorMatchers, path) } // IsTest returns whether or not path is a test path. func IsTest(path string) bool { - return data.TestMatchers.Match(path) + return matchRegexSlice(data.TestMatchers, path) } // IsBinary detects if data is a binary value based on: @@ -91,3 +92,13 @@ func GetColor(language string) string { return "#cccccc" } + +func matchRegexSlice(exprs []regex.EnryRegexp, str string) bool { + for _, expr := range exprs { + if expr.MatchString(str) { + return true + } + } + + return false +}