       makedirp appRootPath, username, (err)->
         if err then cb err
         else
-          exec "test -d #{versionedPath}", (err, stdout, stderr)->
+          exec bash("test -d %s", [versionedPath]), (err, stdout, stderr)->
             unless err or stderr.length then cb "[ERROR] Version is already published, change version and try again!"
             else
-              exec "cp -r #{userAppPath} #{versionedPath}", (err, stdout, stderr)->
+              exec bash("cp -r %s %s", [userAppPath, versionedPath]), (err, stdout, stderr)->
                 if err or stderr then cb err
                 else
                   manifestPath = "#{versionedPath}/.manifest"
-                  exec "cat #{manifestPath}", (err, stdout, stderr)->
+                  exec bash("cat %s", [manifestPath]), (err, stdout, stderr)->
                     if err or stderr then cb err
                     else
-                      exec "rm -f #{manifestPath}", ->
+                      exec bash("rm -f %s", [manifestPath]), ->
                         manifest = JSON.parse stdout
                         manifest.author = "#{profile.firstName} #{profile.lastName}"
                         manifest.authorNick = username

      console.error err if err
      callback? err, null

    exec "test -d #{versionedPath}", (err, stdout, stderr)->
      if err or stderr.length
        cb "[ERROR] Version is not exists!", version
      else
        exec "rm -f #{latestPath} && ln -s #{versionedPath} #{latestPath}", (err, stdout, stderr)->
          if err or stderr then cb err
          else cb null


    #     * remove archive from config.suspendDir
    #
    # options =
    #   userToSuspend    : String #userToSuspend of the unix user
    #
    {userToSuspend, username} = options

    return unless username in ['chris', 'devrim', 'gokmen']

    homeDir = nodePath.join config.usersPath,userToSuspend

    cmd1 = bash "/usr/sbin/usermod -U %s", [userToSuspend]
    unlock = exec cmd1, (err,stdout,stderr)->
      if err?
        callback? "[ERROR] can't unlock user #{userToSuspend}: #{stderr}"
      else
        log.debug "[OK] func:unSuspendUser: /usr/sbin/usermod -U #{userToSuspend}"
        userInputs = [userToSuspend]
        cmd2 = bash "tar -C #{config.usersPath} -xzf #{config.suspendDir}/%s.tar.gz", userInputs
        uncompress = exec cmd2,(err,stdout,stderr)->
          if err?
            callback? "[ERROR] can't uncompress user's homedir #{config.suspendDir}/#{userToSuspend}.tar.gz: #{stderr}"
          else
            log.debug "[OK] func:unSuspendUser: tar -C #{config.usersPath} -xzf #{config.suspendDir}/#{userToSuspend}.tar.gz"
            userInputs = [userToSuspend]
            cmd3 = bash "rm #{config.suspendDir}/%s.tar.gz", userInputs
            rmarchive = exec cmd3, (err,stdout,stderr)->
              if err?
                e = "[ERROR] can't remove archive #{config.suspendDir}/#{userToSuspend}.tar.gz: #{stderr}"
                log.error e; callback? e
              else
                log.debug "[OK] func:unSuspendUser: rm #{config.suspendDir}/#{userToSuspend}.tar.gz"
                userInputs = [userToSuspend]
                cmd4 = bash "/usr/sbin/cagefsctl -w %s", userInputs
                remount = exec cmd4,(err,stdout,stderr)->
                  if err?
                    e = "[ERROR] can't remount user #{userToSuspend}: #{stderr}"
                    log.error e; callback? e
                  else
                    log.debug "[OK] func:unSuspendUser: /usr/sbin/cagefsctl -w #{userToSuspend}"
                    res = "[OK] user #{userToSuspend} was successfully unsuspended"
                    log.info res; callback? null, res
