text: /*
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   */
  
  'use strict'
  
  var fs = require('fs')
  var path = require('path')
  var test = require('tap').test
  var config = require('fuge-config')()
  var runner = require('../runner')()
  
  
  function configureLogs (system) {
    var logPath = path.resolve(path.join(__dirname, 'fixture', 'system', 'fuge', 'log'))
    if (!fs.existsSync(logPath)) {
      fs.mkdirSync(logPath)
    }
    system.global.log_path = logPath
  }
  
  
  test('shell execute test', function (t) {
    t.plan(2)
  
    config.load(path.join(__dirname, 'fixture', 'system', 'fuge', 'runner.yml'), function (err, system) {
      t.equal(err, null)
  
      configureLogs(system)
      runner.shell(system, 'ls -la', function (err) {
        t.equal(err, null)
      })
    })
  })
  
  
  test('apply execute test', function (t) {
    t.plan(2)
  
    config.load(path.join(__dirname, 'fixture', 'system', 'fuge', 'docker.yml'), function (err, system) {
      t.equal(err, null)
  
      configureLogs(system)
      runner.apply(system, 'ls -la', function (err) {
        t.equal(err, null)
      })
    })
  })
  
  