2015-12-31 12:27:03 +09:00
|
|
|
|
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;
|
2016-01-26 15:08:53 +09:00
|
|
|
|
case "-out": mOutput = param[0]; continue;
|
2015-12-31 12:27:03 +09:00
|
|
|
|
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");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|