code: function(path, options) {
  		var self = this;
  		options = options || ["-lah"];
  		if (!options.forEach)
  			options = [options];
  		var func = function(s, e) {
  			options.push(path);
  			return self._exec("ls", options);
  		};
  		func._isDone_ = true;
  		return self._enqueue(func);
  	}
docs: /*spawn:function(cmd, args){
  var self = this;
  var func = function(s,e){
  args = args || [];
  if(!args.forEach)
  args = [args];
  var proc = null;
  var cmder = proc = spawn(cmd, args, self._env.state),
  def = deep.Deferred();
  self._env.shell = function(){ return proc; };
  var report = {
  "out":"",
  "error":"",
  code:0
  };
  if(!self._env.quiet)
  console.log("deep.sh.Chain :", self._env.state.cwd, " : spawn : ", cmd, args);
  cmder.stdout.on('data', function (data) {
  if(!self._env.quiet)
  console.log('stdout: ', data.toString());
  report.out += data.toString();
  });
  
  cmder.stderr.on('data', function (data) {
  if(!self._env.quiet)
  console.warn('stderr: ', data.toString());
  report.error += data.toString();
  });
  
  cmder.on('close', function (code) {
  if(!self._env.quiet)
  console.log(cmd, ': child process exited with code ' + code);
  report.code = code;
  self._env.shell = null;
  if(code === 0)
  def.resolve(report);
  else
  def.reject(report);
  });
  return def.promise();
  };
  func._isDone_ = true;
  return self._enqueue(func);
  },