use str

var ignore = [
  _
  PWD
  SHLVL
  PATH
]

fn apply-env {|env|
  for var $env {
    if (eq $var '') {
      break
    }

    var key value = (str:split &max=2 "=" $var)
    if (has-value $ignore $key) {
      continue
    }

    put +$key
    set-env $key $value
  }
}

# helper to set environment from programs that output a bash script to `eval`
edit:add-var eval-export~ {
  var script = (slurp)
  var output = (env -i sh -c $script"\n/usr/bin/env -0")

  var @vars = (str:split "\x00" $output)
  edit:notify "Applying vars"
  edit:notify (print (apply-env $vars))
}