/**
 * @param {string} args
 */
exports.parseArgs = function (args) {
  const parts = args.split(/\s+/)
  const result = []
  let arg
  let index = 0
  for (const part of parts) {
    const l = part.length
    if (!arg && part.charAt(0) === '"') {
      arg = part.substr(1)
    } else if (part.charAt(l - 1) === '"' && (
      l === 1 || part.charAt(l - 2) !== '\\'
    )) {
      arg += args.charAt(index - 1) + part.substr(0, l - 1)
      result.push(arg)
      arg = null
    } else if (arg) {
      arg += args.charAt(index - 1) + part
    } else {
      result.push(part)
    }
    index += part.length + 1
  }
  return result
}
