using System; using System.IO; namespace arookas { class CommandLineSettings { string mInput, mOutput; bool mOutputHeader, mOutputText, mOutputData, mOutputDynsym, mOutputBss; public string Input { get { return mInput; } } public string Output { get { return mOutput; } } public bool OutputHeader { get { return mOutputHeader; } } public bool OutputText { get { return mOutputText; } } public bool OutputData { get { return mOutputData; } } public bool OutputDynsym { get { return mOutputDynsym; } } public bool OutputBss { get { return mOutputBss; } } public CommandLineSettings(CommandLine cmd) { if (cmd == null) { throw new ArgumentNullException("cmd"); } foreach (var param in cmd) { switch (param.Name) { case "-in": mInput = param[0]; continue; case "-out": mOutput = param[0]; continue; case "-H": mOutputHeader = true; continue; case "-h": mOutputHeader = false; continue; case "-T": mOutputText = true; continue; case "-t": mOutputText = false; continue; case "-D": mOutputData = true; continue; case "-d": mOutputData = false; continue; case "-S": mOutputDynsym = true; continue; case "-s": mOutputDynsym = false; continue; case "-B": mOutputBss = true; continue; case "-b": mOutputBss = false; continue; } } if (mInput == null) { throw new Exception("Missing input file setting."); } if (mOutput == null) { mOutput = Path.ChangeExtension(mInput, ".txt"); } } } }