Beispiel #1
0
function getRepo(runner, cb) {
  var dir = path.dirname(runner)
  var pkgPath
  if (common.isUrl(runner)) {
    pkgPath = dir + '/../package.json'
    get(pkgPath, cb)

  } else { // is local file
    pkgPath = path.join(dir, '..', 'package.json')
    if (common.isExistedFile(pkgPath)) {
      var pkg = JSON.parse(fs.readFileSync(pkgPath))
      cb(pkg.repository && pkg.repository.url)

    } else {
      getInfo('git', dir, function(repo) {
        if (repo) {
          cb(repo)
        } else {
          getInfo('svn', dir, function(repo) {
            cb(repo)
          })
        }
      })
    }
  }
}
Beispiel #2
0
function adapt(id, content, adapter) {
    if (!adapter) {
        adapter = guessAdapter(content)
        if (!adapter) {
            return new Error('Can not guess which adapter should be used, ' +
                    'please choose one of "' + defaultAdapters +
                    '" or apply your own adapter.')
        }
    } else if (common.isKeyword(adapter)) {
        if (defaultAdapters.indexOf(adapter.toLowerCase()) === -1) {
            return new Error('Specified adapter "' + adapter + '" is not available, ' +
                    'please choose one of "' + defaultAdapters +
                    '" or apply your own adapter.')
        }
    }

    var insertPos = getInsertPos(content, adapter)
    if(!insertPos) {
        return new Error('Can not decide where to insert adapter.')
    }

    var src
    if (common.isUrl(adapter)) {
        src = adapter
    } else if (common.isKeyword(adapter)) {
        src = '/adapters/' + adapter + '.js'
    } else {
        src = '/runner/' + id + '/' + adapter
    }

    return content.substring(0, insertPos) +
            '<script src="/adapters/totoro.js"></script>' +
            '<script src="' + src + '"></script>' +
            content.substring(insertPos)
}
Beispiel #3
0
function parseUrl(p, host, port) {
    if (!p || common.isKeyword(p)) {
        return
    } else if(common.isUrl(p)) {
        return url.parse(p)
    } else {
        return url.parse('http://' + host + ':' + port + '/' + p)
    }
}
Beispiel #4
0
function handleRunner(cfg) {
    var runner = cfg.runner

    if (!common.isUrl(runner)) {
        if (isExistedFile(runner)) {
            cfg.runner = path.resolve(runner)
        } else {
            logger.error('specified runner: ' + runner + ' is not available')
        }
    }
}
Beispiel #5
0
function handleAdapter(cfg) {
    if (cfg.adapter) {
        var runner = cfg.runner
        var adapter = cfg.adapter

        /*
         * NOTE
         * if runner is url, adapter must not be local file
         * if runner is local file, adapter must not be url
         * see #80
         */
        if (common.isKeyword(adapter)) {
            // do nothing
        } else if (common.isUrl(adapter)) {
            if (!common.isUrl(runner)) {
                logger.error('Runner is file, can not specify a url adapter.')
            }

        } else {
            if (common.isUrl(runner)) {
                logger.error('Runner is url, can not specify a file adapter.')
            }

            if (isExistedFile(adapter)) {
                if (path.extname(adapter) === '.js') {
                    cfg.adapter = path.resolve(adapter)
                } else {
                    logger.error('Specified adapter <' + adapter + '> is not a js file.')
                }
            } else {
                logger.error('Specified adapter <' + adapter + '> dose not exist.')
            }
        }

    } else {
        cfg.adapter = findAdapter(cfg)
    }
}
Beispiel #6
0
function handleRunner(cfg) {
  if (cfg.runner) {
    var runner = cfg.runner
    if (!common.isUrl(runner)) {
      if (isExistedFile(runner)) {
        cfg.runner = path.resolve(runner)
      } else {
        logger.error('Specified runner <', runner, '> is not available.')
      }
    }
  } else {
    cfg.runner = findRunner()
  }
}
Beispiel #7
0
function handleAdapter(cfg) {
    findAdapter(cfg)
    var adapter = cfg.adapter

    if (adapter && !common.isUrl(adapter) && !common.isKeyword(adapter)) {
        if (isExistedFile(adapter)) {
            if (path.extname(adapter) == '.js') {
                cfg.adapter = path.resolve(adapter)
            } else {
                logger.error('adapter: ' + adapter + ' is not a js file')
            }
        } else {
            logger.error('specified adapter: ' + adapter + ' is not available')
        }
    }
}
Beispiel #8
0
    async.forEach(scripts, function(script, cb) {
        var content

        if (common.isUrl(script)) {
            content = '<script src="' + script + '"></script>'
            scriptsStr += content
            cb()
        } else {
            script = path.resolve(script)
            if (!common.isExistedFile(script)) {
                logger.warn('Not found file ' + script)
            } else {
                content = '<script>' + fs.readFileSync(script) + '</script>'
                scriptsStr += content
            }
            cb()
        }

    }, function(err) {
Beispiel #9
0
    scripts.forEach(function(script) {
        var content

        if (common.isUrl(script)) {
            content = '<script src="' + script + '"></script>'
            scriptsStr += content
        } else {
            if (common.isExistedFile(script)) {
                logger.debug('Found insert script.', {
                    script: script
                })
                content = '<script>' + fs.readFileSync(script) + '</script>'
                scriptsStr += content
            } else {
                logger.warn('Not found insert script.', {
                    script: script
                })
            }
        }
    })