#ifndef CMD_PARSE_HEADER
#define CMD_PARSE_HEADER

#include <Poco/Exception.h>
#include <Poco/Util/OptionCallback.h>
#include <Poco/Util/OptionProcessor.h>
#include <Poco/Util/OptionSet.h>
#include <Poco/Util/ServerApplication.h>
#include "public.hpp"

// Poco::Util::Validator* month = new Poco::Util::RegExpValidator(
// 				"[0-9]{6,8}");
// 		options.addOption(
// 				Option("month", "m",
// "date(yyyymm/yyyymmdd)").required(true).repeatable(
// 						false).argument("month").validator(month).binding(
// 						"application.month").callback(
// 						Poco::Util::OptionCallback < DataLoader
// 								> (this, &DataLoader::handleMonth)));
// ————————————————

//                             版权声明:本文为博主原创文章,遵循 CC 4.0
//                             BY-SA
//                             版权协议,转载请附上原文出处链接和本声明。

// 原文链接:https://blog.csdn.net/hwjcmozw/article/details/42963633

class CPackBinaryCmd : public Poco::Util::ServerApplication
{
protected:
    void initialize(Poco::Util::Application& self) override;
    void uninitialize() override;
    void defineOptions(Poco::Util::OptionSet& options) override;
    void handleHelp(const std::string& name, const std::string& value);
    void handleInput(const std::string& name, const std::string& value);
    int main(const std::vector<std::string>& args) override;

private:
    bool validCheck();
private:
    CmdResult result_;
};

#endif