WIP datasources: Add support for specifying multiple datasources

WIP

If multiple sources are specified, the first available source is used.
Idk, I'm not too concerned about this since we're immediately going to die afterwards. You could easily pass in a stop channel, I still think that's preferable to the list manipulation