async function ensureMount (fs, path, url) {
  try {
    let st = await fs.stat(path).catch(e => null)
    let key = urlToKey(url)
    if (!st) {
      // add mount
      await fs.mount(path, key)
    } else if (st.mount) {
      if (st.mount.key !== key) {
        // change mount
        await fs.unmount(path)
        await fs.mount(path, key)
      }
    } else {
      console.error('Warning! Filesystem expects a mount but an unexpected file exists at this location.', {path})
    }
  } catch (e) {
    console.error('Filesystem failed to mount drive', {path, url, error: e})
  }
}
@param {Hyperdrive} fs
@param {string} path 
@param {string} url 
@return {Promise<void>}