Ejemplo n.º 1
0
void TOpts::PrintCmdLine(const TStringBuf& program, IOutputStream& os, const NColorizer::TColors& colors) const {
    os << colors.BoldColor() << "Usage" << colors.OldColor() << ": " << program << " ";
    if (CustomCmdLineDescr) {
        os << CustomCmdLineDescr << Endl;
        return;
    }
    os << "[OPTIONS]";

    for (ui32 i = 0; i < FreeArgsMin_; ++i)
        os << ' ' << GetFreeArgTitle(i);

    if (FreeArgsMax_ > FreeArgsMin_) {
        if (FreeArgsMax_ == Max<ui32>()) {
            // print all described args
            for (ui32 i = FreeArgsMin_; i < FreeArgSpecs_.size(); ++i)
                os << " [" << GetFreeArgTitle(i) << "]";
            os << " [" << DefaultFreeArgSpec.Title << "]...";
        } else {
            for (ui32 i = FreeArgsMin_; i < FreeArgsMax_; ++i)
                os << " [" << GetFreeArgTitle(i) << "]";
        }
    }

    os << Endl;
}
Ejemplo n.º 2
0
void TOpts::PrintFreeArgsDesc(IOutputStream& os, const NColorizer::TColors& colors) const {
    if (0 == FreeArgsMax_)
        return;

    size_t leftFreeWidth = 0;
    for (size_t i = 0; i < FreeArgSpecs_.size(); ++i) {
        leftFreeWidth = Max(leftFreeWidth, GetFreeArgTitle(i).size());
    }

    if (CustomDefaultArg_) {
        leftFreeWidth = Max(leftFreeWidth, DefaultFreeArgSpec.Title.size());
    }

    leftFreeWidth = Min(leftFreeWidth, size_t(30));
    os << Endl << colors.BoldColor() << "Free args"<< colors.OldColor() <<":";

    os << " min: " << colors.GreenColor() << FreeArgsMin_ << colors.OldColor() << ",";
    os << " max: " << colors.GreenColor();
    if (FreeArgsMax_ != Max<ui32>()) {
        os << FreeArgsMax_;
    } else {
        os << "unlimited";
    }
    os << colors.OldColor();

    os << " (listed described args only)" << Endl;
    const size_t limit = FreeArgSpecs_.empty() ? 0 : FreeArgSpecs_.rbegin()->first;
    for (size_t i = 0; i <= limit; ++i) {
        const TString& help = GetFreeArgHelp(i);
        os << "  " << colors.GreenColor() << RightPad(GetFreeArgTitle(i), leftFreeWidth, ' ') << colors.OldColor();

        if (!help.Empty())
            os << "  " << help;

        os << Endl;
    }

    if (CustomDefaultArg_) {
        os << "  " << colors.GreenColor() << RightPad(DefaultFreeArgSpec.Title, leftFreeWidth, ' ') << colors.OldColor();

        os << "  " << (!DefaultFreeArgSpec.Help ? DefaultHelp : DefaultFreeArgSpec.Help);

        os << Endl;
    }
}
Ejemplo n.º 3
0
void TOpts::PrintFreeArgsDesc(TOutputStream& os) const {
    if (0 == FreeArgsMax_)
        return;

    size_t leftFreeWidth = 0;
    for (size_t i = 0; i < FreeArgSpecs_.size(); ++i) {
        leftFreeWidth = Max(leftFreeWidth, GetFreeArgTitle(i).size());
    }

    if (CustomDefaultArg_) {
        leftFreeWidth = Max(leftFreeWidth, DefaultArgTitle_.size());
    }

    leftFreeWidth = Min(leftFreeWidth, size_t(30));
    os << Endl << "Free args:";

    os << " min: " << FreeArgsMin_ << ",";
    os << " max: ";
    if (FreeArgsMax_ != Max<ui32>()) {
        os << FreeArgsMax_;
    } else {
        os << "unlimited";
    }

    os << " (listed described args only)" << Endl;
    for (size_t i = 0; i < FreeArgSpecs_.size(); ++i) {
        const Stroka& help = GetFreeArgHelp(i);
        os << "  " << RightPad(GetFreeArgTitle(i), leftFreeWidth, ' ');

        if (!help.Empty())
            os << "  " << help;

        os << Endl;
    }

    if (CustomDefaultArg_) {
        os << "  " << RightPad(DefaultArgTitle_, leftFreeWidth, ' ');

        if (!DefaultArgHelp_.Empty())
            os << "  " << (!DefaultArgHelp_ ? DefaultHelp : DefaultArgHelp_);

        os << Endl;
    }
}
Ejemplo n.º 4
0
void TOpts::PrintCmdLine(const TStringBuf& program, TOutputStream& os) const {
    os << "Usage: " << program << " [OPTIONS]";

    for (ui32 i = 0; i < FreeArgsMin_; ++i)
        os << ' ' << GetFreeArgTitle(i);

    if (FreeArgsMax_ > FreeArgsMin_) {
        if (FreeArgsMax_ == Max<ui32>()) {
            // print all described args
            for (ui32 i = FreeArgsMin_; i < FreeArgSpecs_.size(); ++i)
                os << " [" << GetFreeArgTitle(i) << "]";
            os << " [" << DefaultArgTitle_ << "]...";
        } else {
            for (ui32 i = FreeArgsMin_; i < FreeArgsMax_; ++i)
                os << " [" << GetFreeArgTitle(i) << "]";
        }
    }

    os << Endl;
}