VFS in external crate (#297)

* vroom

* Port dir middleware

* Filter rules

* Directory metadata

* Project support

* Enable Lua support

* StringValue support

* CSV

* rbxm, rbxmx, and rbxlx

* JSON models

* Clean up some warnings

* Strip out PathMap

* Unwatch paths when they're reported as removed

* Fix 'rojo upload' behavior

* Upgrade to Insta 0.13.1

* Update dependencies

* Release 0.6.0-alpha.2

* Fix bad merge

* Replace MemoryBackend with InMemoryFs

* Sledgehammer tests into passing for now

* Txt middleware

* Update easy snapshot tests

* Lua tests

* Project middleware tests

* Try to fix test failures by sorting

* Port first set of serve session tests

* Add InMemoryFs::raise_event

* Finish porting serve session tests

* Remove UI code for introspecting VFS for now

* VFS docs
This commit is contained in:
Lucien Greathouse
2020-03-10 17:38:49 -07:00
committed by GitHub
parent a884f693ae
commit 477e0ada32
38 changed files with 846 additions and 2509 deletions

View File

@@ -5,13 +5,10 @@ use std::{
use snafu::{ResultExt, Snafu};
use tokio::runtime::Runtime;
use vfs::Vfs;
use crate::{
cli::BuildCommand,
project::ProjectError,
serve_session::ServeSession,
snapshot::RojoTree,
vfs::{RealFetcher, Vfs, WatchMode},
cli::BuildCommand, project::ProjectError, serve_session::ServeSession, snapshot::RojoTree,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
@@ -75,13 +72,7 @@ pub fn build(options: BuildCommand) -> Result<(), BuildError> {
fn build_inner(options: BuildCommand) -> Result<(), Error> {
log::trace!("Constructing in-memory filesystem");
let watch_mode = if options.watch {
WatchMode::Enabled
} else {
WatchMode::Disabled
};
let vfs = Vfs::new(RealFetcher::new(watch_mode));
let vfs = Vfs::new_default();
let session = ServeSession::new(vfs, &options.absolute_project());
let mut cursor = session.message_queue().cursor();