diff options
| -rw-r--r-- | legacy_license_check.js | 73 | ||||
| -rw-r--r-- | pattern_utils.js | 6 | ||||
| -rw-r--r-- | test.js | 6 | 
3 files changed, 33 insertions, 52 deletions
| diff --git a/legacy_license_check.js b/legacy_license_check.js index 59097ab..73d36bd 100644 --- a/legacy_license_check.js +++ b/legacy_license_check.js @@ -19,10 +19,10 @@  * along with GNU LibreJS.  If not, see <http://www.gnu.org/licenses/>.  */ -var data = require("./license_definitions.js"); -var match_utils = require("./pattern_utils.js").patternUtils; +const { licenses } = require('./license_definitions.js'); +const { patternUtils } = require('./pattern_utils.js'); -var licStartLicEndRe = /@licstartThefollowingistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)(.*)?@licendTheaboveistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)/mi; +const licStartLicEndRe = /@licstartThefollowingistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)(.*)?@licendTheaboveistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)/mi;  /** @@ -33,26 +33,19 @@ var licStartLicEndRe = /@licstartThefollowingistheentirelicensenoticefortheJavaS   * hardcoded in license_definitions.js   *   */ -var stripLicenseToRegexp = function(license) { -  var max = license.licenseFragments.length; -  var item; -  for (var i = 0; i < max; i++) { -    item = license.licenseFragments[i]; -    item.regex = match_utils.removeNonalpha(item.text); -    item.regex = new RegExp( -      match_utils.replaceTokens(item.regex), ''); +const stripLicenseToRegexp = function(license) { +  for (const frag of license.licenseFragments) { +    frag.regex = patternUtils.removeNonalpha(frag.text); +    frag.regex = new RegExp( +      patternUtils.replaceTokens(frag.regex), '');    } -  return license;  }; -var license_regexes = []; - -var init = function() { -  console.log("initializing regexes"); -  for (var item in data.licenses) { -    license_regexes.push(stripLicenseToRegexp(data.licenses[item])); +const init = function() { +  console.log('initializing regexes'); +  for (const key in licenses) { +    stripLicenseToRegexp(licenses[key]);    } -  //console.log(license_regexes);  }  module.exports.init = init; @@ -62,24 +55,18 @@ module.exports.init = init;  *	Takes in the declaration that has been preprocessed and   *	tests it against regexes in our table.  */ -var search_table = function(stripped_comment) { -  var stripped = match_utils.removeNonalpha(stripped_comment); -  //stripped = stripped.replaceTokens(stripped_comment);  - -  //console.log("Looking up license"); -  //console.log(stripped); - -  for (license in data.licenses) { -    frag = data.licenses[license].licenseFragments; -    max_i = data.licenses[license].licenseFragments.length; -    for (i = 0; i < max_i; i++) { -      if (frag[i].regex.test(stripped)) { -        //console.log(data.licenses[license].licenseName); -        return data.licenses[license].licenseName; +const searchTable = function(strippedComment) { +  const stripped = patternUtils.removeNonalpha(strippedComment); +  // looking up license +  for (const key in licenses) { +    const license = licenses[key]; +    for (const frag of license.licenseFragments) { +      if (frag.regex.test(stripped)) { +        return license.licenseName;        }      }    } -  console.log("No global license found."); +  console.log('No global license found.');    return false;  } @@ -88,26 +75,20 @@ var search_table = function(stripped_comment) {  *	Takes the "first comment available on the page"  *	returns true for "free" and false for anything else	  */ -var check = function(license_text) { -  //console.log("checking..."); -  //console.log(license_text); - -  if (license_text === undefined || license_text === null || license_text == "") { -    //console.log("Was not an inline script"); +const check = function(licenseText) { +  if (licenseText === undefined || licenseText === null || licenseText == '') { +    // not an inline script      return false;    }    // remove whitespace -  var stripped = match_utils.removeWhitespace(license_text); +  const stripped = patternUtils.removeWhitespace(licenseText);    // Search for @licstart/@licend    // This assumes that there isn't anything before the comment -  var matches = stripped.match(licStartLicEndRe); +  const matches = stripped.match(licStartLicEndRe);    if (matches == null) {      return false;    } -  var declaration = matches[0]; - -  return search_table(declaration); - +  return searchTable(matches[0]);  };  module.exports.check = check; diff --git a/pattern_utils.js b/pattern_utils.js index 3702e07..ef1e304 100644 --- a/pattern_utils.js +++ b/pattern_utils.js @@ -29,14 +29,12 @@ exports.patternUtils = {     *     */    removeNonalpha: function(str) { -    var regex = /[^a-z0-9<>@]+/gi; -    return str.replace(regex, ''); +    return str.replace(/[^a-z0-9<>@]+/gi, '');    },    removeWhitespace: function(str) {      return str.replace(/\/\//gmi, '').replace(/\*/gmi, '').replace(/\s+/gmi, '');    },    replaceTokens: function(str) { -    var regex = /<.*?>/gi; -    return str.replace(regex, '.*?'); +    return str.replace(/<.*?>/gi, '.*?');    }  }; @@ -32,7 +32,8 @@      .setFirefoxOptions(new firefox.Options()        // Uncomment this line to test using icecat        //		       .setBinary("/usr/bin/icecat") -      .headless()).build() +      .headless() +    ).build()      .then(driver =>        driver.installAddon("./librejs.xpi", /*isTemporary=*/true)          .then(driver.get("about:debugging#/runtime/this-firefox")) @@ -48,5 +49,6 @@          .then(_ => driver.findElement(webdriver.By.css('.jasmine-alert')))          .then(e => e.getText())          .then(console.log) -        .then(_ => driver.quit())); +        .then(_ => driver.quit()) +    );  })(); | 
