       final_status_error: colors.red
       final_status_success: colors.blue
     if err
-      rl.write "#{styles.final_status_error err.stack?.trim() or err.message}\n"
+      write "#{styles.final_status_error err.stack?.trim() or err.message}\n"
       process.exit()
     hostlength = 20
-    for s in config.servers then hostlength = Math.max(hostlength, s.host.length+2)
+    for s in config.servers then hostlength = Math.max(hostlength, (s.shortname or s.host).length+2)
     multihost = params.hosts?.length isnt 1 and config.servers.length isnt 1
     times = {}
     multihost = true
+    init()
     for k, v of config.styles
       styles[k] = if typeof v is 'string' then colors[v] else v
     run params, config

        else "#{styles.status_false middleware.label_false or '--'}"
        line += pad "#{statusmsg}", 20
        line += "#{styles.time print_time time}"
        rl.cursor = 0
        rl.line = ''
        rl._refreshLine() unless multihost
        if err or status?
          rl.write line
          rl.write '\n'
      .on 'wait', (middleware) ->
        return if multihost
        line = ''
        line += pad "#{styles.fqdn ctx.config.host}", hostlength
        line += pad "#{styles.label middleware.header}", 40
        line += pad "#{styles.status_wait 'WAIT'}", 20
        rl.cursor = 0
        rl.line = ''
        rl._refreshLine()
        rl.write line
      .on 'waited', (middleware) ->
        return if multihost
        line = ''
        line += pad "#{ctx.config.host}", hostlength
        line += pad "#{middleware.header}", 40
        line += pad "#{styles.status_start 'WORKING'}", 20
        rl.cursor = 0
        rl.line = ''
        rl._refreshLine()
        rl.write line
      # .on 'error', (err) ->
      #   line = ''
      #   line += pad "#{styles.fqdn ctx.config.host}", hostlength
      #   line += pad "", 40
      #   line += pad "#{styles.status_error 'ERROR'}", 20
      #   line += '\n'
      #   line += "#{styles.final_status_error err.stack?.trim() or err.message}\n"
      #   rl._refreshLine() unless multihost
      #   rl.write line
    .on 'server', (ctx, err) ->
      return unless config.servers.length
      line = ''
      line += pad "#{ctx.config.host}", hostlength + 40
      line += if err then "#{styles.host_status_error 'FAILURE'}" else "#{styles.host_status_success 'SUCCESS'}"
      rl.write line
      rl.write '\n'
    .on 'end', ->
      rl.write "#{styles.final_status_success 'Installation is finished'}\n"
      rl.close()
    .on 'error', (err) ->
      if err.errors
        rl.write '\n'
        rl.write "#{err.message}\n"
        for err in err.errors
          rl.write "#{styles.final_status_error err.stack?.trim() or err.message}\n"
      else
        rl.write "#{styles.final_status_error err.stack?.trim() or err.message}\n"
      rl.close()

      .on 'middleware_skip', (middleware) ->
        return unless middleware.header?
        line = ''
        line += pad "#{styles.fqdn ctx.config.shortname or ctx.config.host}", hostlength
        line += pad "#{styles.label middleware.header}", 40
        line += pad "#{styles.status_skip 'SKIPPED'}", 20
        write line+'\n'
      .on 'middleware_start', (middleware) ->
        return unless middleware.header?
        times[ctx.config.shortname or ctx.config.host] = Date.now()
        return if multihost
        line = ''
        line += pad "#{styles.fqdn ctx.config.shortname or ctx.config.host}", hostlength
        line += pad "#{styles.label middleware.header}", 40
        line += pad "#{styles.status_start 'WORKING'}", 20
        write line
      .on 'middleware_stop', (middleware, err, status) ->
        return unless middleware.header?
        time = Date.now() - times[ctx.config.shortname or ctx.config.host]
        line = ''
        line += pad "#{styles.fqdn ctx.config.shortname or ctx.config.host}", hostlength
        line += pad "#{styles.label middleware.header}", 40
        statusmsg = if err then "#{styles.status_error middleware.label_error or 'ERROR'}"
        else if typeof status is 'string' then status
