Exemple #1
0
        public void Reload()
        {
            // 取得NFS Exports設定
            if (!File.Exists(Environment.GetEnvironmentVariable("Exports")))
            {
                using (File.Create(Environment.GetEnvironmentVariable("Exports"))) { }
            }

            Mounts = File.ReadAllText(Environment.GetEnvironmentVariable("Exports"))
                     .Split('\n')                    // 每行切割
                     .Select(x => x.Trim())
                     .Where(x => !x.StartsWith("#")) // 略過註解
                     .Where(x => !string.IsNullOrWhiteSpace(x))
                     .Select(x => NFSMount.Parse(x))
                     .ToList();

#if DEBUG
            if (Mounts.Count == 0)
            {
                Mounts.Add(new NFSMount()
                {
                    Path    = "/app",
                    Clients = new List <NFSClient>
                                  ()
                });
                Mounts.Add(new NFSMount()
                {
                    Path    = "/app2",
                    Clients = new List <NFSClient>
                                  ()
                });
            }
#endif
        }
Exemple #2
0
        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);
        }