public static NFSClient Parse(string str) { var data = str.Split(new char[] { '(', ')' }); var result = new NFSClient(); result.Client = data[0]; if (data.Length > 1) { data = data.Skip(1).ToArray(); var args = data[0].Split(','); if (args.Contains("sync")) { result.IOMode = NFSIOMode.Sync; } if (args.Contains("rw")) { result.Permission = NFSPermission.ReadAndWrite; } if (args.Contains("no_root_squash")) { result.Squash = NFSSquash.No; } else if (data.Contains("all_squash")) { result.Squash = NFSSquash.All; } } return(result); }
public static NFSMount Parse(string str) { var reg = new Regex(@"\s+"); var data = reg.Split(str, 2); var result = new NFSMount(); result.Path = data[0]; if (data.Length > 1) { result.Clients.AddRange( data[1].Split(new char[] { ')' }, StringSplitOptions.RemoveEmptyEntries) .Select(x => x.Trim() + ")") .Select(x => NFSClient.Parse(x)) ); } return(result); }