fish: use piped source instead of eval