/// <summary> /// Initializes the statically held instance of the PlayerParam class. /// </summary> /// <returns>True iff initialization successful.</returns> public static bool Initialize() { Instance = new PlayerParam(); string configDirectory = ConfigDirectory; string environmentalVariableConfigDirectory = System.Environment.GetEnvironmentVariable("RCSS_CONF_DIR"); if (environmentalVariableConfigDirectory != null) { configDirectory = environmentalVariableConfigDirectory; } System.IO.FileInfo filePath; System.IO.DirectoryInfo configPath; try { configPath = new System.IO.DirectoryInfo(Utilities.tildeExpand(configDirectory)); if (configPath.Exists) { filePath = new System.IO.FileInfo(configPath.FullName + System.IO.Path.DirectorySeparatorChar + PlayerConfigName); } else { configPath.Create(); filePath = new System.IO.FileInfo(configPath.FullName + System.IO.Path.DirectorySeparatorChar + PlayerConfigName); } } catch (System.Exception excption) { Console.Error.WriteLine(" Exception caught! " + excption.Message + System.Environment.NewLine + "Could not read config directory '" + Utilities.tildeExpand(configDirectory) + "'" + excption.StackTrace); return(false); } if (!Instance.parseCreateConf(filePath)) { Console.Error.WriteLine("could not parse configuration file '" + filePath.FullName); return(false); } return(true); }
/// <summary> /// Parses or creates a configuration file. /// </summary> /// <param name="configFileName">The information of the file to parse or create.</param> /// <returns>True iff succesfully parsed or created config file.</returns> private bool parseCreateConf(System.IO.FileInfo configFileName) { string path = configFileName.FullName; System.Xml.Serialization.XmlSerializer serialize = new System.Xml.Serialization.XmlSerializer(typeof(PlayerParam)); if (!configFileName.Exists) { System.IO.Stream newConfigFile = new System.IO.FileStream(configFileName.FullName, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write); serialize.Serialize(newConfigFile, this); newConfigFile.Close(); return(true); } else { System.IO.StreamReader oldConfigFile = new System.IO.StreamReader(configFileName.FullName); Instance = (PlayerParam)serialize.Deserialize(oldConfigFile); oldConfigFile.Close(); return(true); } }
/// <summary> /// Initalizes the server paramters (including Player Parameters, CVSSaver Parameters, and command lines). /// </summary> /// <param name="args">Arguments from the command line.</param> /// <returns>Returns true after successful intialization.</returns> public static bool Initialize(string[] args) { Instance = new ServerParam(); string configDirectory = CONF_DIR; string environmentalVariableConfDirectory = System.Environment.GetEnvironmentVariable("RCSS_CONF_DIR"); if (environmentalVariableConfDirectory != null) { configDirectory = environmentalVariableConfDirectory; } System.IO.DirectoryInfo configPath; try { configPath = new System.IO.DirectoryInfo(Utilities.tildeExpand(configDirectory)); if (!configPath.Exists) { configPath.Create(); if (!configPath.Exists) { Console.Error.WriteLine("Could not read or create the config directory '" + configPath.FullName + "'"); return(false); } } } catch (System.Exception exception) { Console.Error.WriteLine("Exception caught! " + exception.Message + System.Environment.NewLine + "Could not read or create config directory '" + Utilities.tildeExpand(configDirectory) + "' in " + exception.TargetSite); return(false); } System.IO.FileInfo filePath = new System.IO.FileInfo(configPath.FullName + System.IO.Path.DirectorySeparatorChar + SERVER_CONF); if (!Instance.parseCreateConf(filePath)) { Console.Error.WriteLine("could not create or parse configuration file '" + filePath.ToString() + "'"); return(false); } if (!PlayerParam.Initialize()) { return(false); } return(true); }