#require 'shelljs/global'
{spawn} = require 'child_process'

class Mainframe

  constructor: () ->
    echo: (data) -> console.log(data) 

  setup: () -> console.log 'entering setup mode...'

  update: () -> 
    child = spawn 'sudo', ['apt-get', 'update', '-y']
    child.stdout.on 'data', (data) -> echo(data.toString().trim())
    child.stderr.on 'data', (data) -> echo(data.toString().trim())

  upgrade: () -> 
    child = spawn 'sudo', ['apt-get', 'upgrade', '-y']
    child.stdout.on 'data', (data) -> echo(data.toString().trim())
    child.stderr.on 'data', (data) -> echo(data.toString().trim())

  reboot: () -> 
    child = spawn 'sudo', ['reboot']
    child.stdout.on 'data', (data) -> echo(data.toString().trim())
    child.stderr.on 'data', (data) -> echo(data.toString().trim())

  memory: () ->
    child = spawn 'free', ['-m']
    child.stdout.on 'data', (data) -> echo(data.toString().trim())
    child.stderr.on 'data', (data) -> echo(data.toString().trim())

  setHostname: (newHostName) -> console.log "setting host to #{newHostName}"

  addClientSshKey: (key)
  createGitRepo: (repoName) ->
  createNginxSiteRecord: (siteName) ->
  restartNginx: () ->
  showRunningForeverApps () ->
  backupServer () ->
  createMongoDb (dbName) ->
  addMongoUser (username) ->

module.exports = Mainframe
