async Task <List <VirtualNode> > resolveParameters() { List <VirtualNode> nodes = new List <VirtualNode> (); // if there are command line parameters, resolve them if (parameters.Count > 0) { foreach (string p in parameters) { try { Path resolvedPath = FileSystemSubsystems.ResolveRelativePath(env) (p); VirtualNode node = FileSystemSubsystems.Node(resolvedPath); nodes.Add(node); } catch (VirtualIOException ex) { Log.Error(ex); await Output.WriteLineAsync(ex.Message); } } } // otherwise, use the current working directory else { nodes.Add(env.WorkingDirectory); } return(nodes); }
public LocalShare(string rootPath) { VirtualDirectory d = FileSystemSubsystems.ParseNativePath(nativePath: rootPath) as RegularDirectory; if (d == null) { throw new ArgumentNullException("rootPath", "rootPath is no valid directory"); } RootDirectory = d; }
VirtualDirectory findHomeDirectory() { VirtualDirectory dir; dir = FileSystemSubsystems.ParseNativePath(PlatformInfo.User.HomeDirectory) as VirtualDirectory; if (dir != null) { return(dir); } dir = FileSystemSubsystems.DefaultRootDirectory; return(dir); }
protected override Task ExecuteInternalAsync() { VirtualDirectory node = parameters.Count >= 1 ? FileSystemSubsystems.Directory(FileSystemSubsystems.ResolveRelativePath(env) (parameters [0])) : env.HomeDirectory; Log.Debug("change directory to: ", node); node.Validate(throwExceptions: true); env.WorkingDirectory = node; return(TaskHelper.Completed); }