code: func EvaluateSymlinksInsideApp(appRootfs, path string) (string, error) {
  	chroot, err := newChroot(appRootfs)
  	if err != nil {
  		return "", errwrap.Wrapf(fmt.Sprintf("chroot to %q failed", appRootfs), err)
  	}
  
  	target, err := fileutil.EvalSymlinksAlways(path)
  	if err != nil {
  		return "", errwrap.Wrapf(fmt.Sprintf("evaluating symlinks of %q failed", path), err)
  	}
  
  	// EvalSymlinksAlways might return a relative path
  	abs, err := filepath.Abs(target)
  	if err != nil {
  		return "", errwrap.Wrapf(fmt.Sprintf("failed to get absolute representation of %q", target), err)
  	}
  
  	if err := chroot.escape(); err != nil {
  		return "", errwrap.Wrapf(fmt.Sprintf("escaping chroot %q failed", appRootfs), err)
  	}
  
  	return abs, nil
  }
docs: // EvaluateSymlinksInsideApp tries to resolve symlinks within the path.
  // It returns the actual path relative to the app rootfs for the given path.
  // This is needed for absolute symlinks - we are in a different rootfs.