// Copyright 2024:
//   JaiaRobotics LLC
// File authors:
//   Toby Schneider <toby@gobysoft.org>
//
//
// This file is part of the JaiaBot Project Binaries
// ("The Jaia Binaries").
//
// The Jaia Binaries are free software: you can redistribute them and/or modify
// them under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
//
// The Jaia Binaries are distributed in the hope that they will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with the Jaia Binaries.  If not, see <http://www.gnu.org/licenses/>.

syntax = "proto2";
import "goby/middleware/protobuf/app_config.proto";
import "goby/protobuf/option_extensions.proto";

package jaiabot.config;

message VersionTool
{
    option (goby.msg).cfg.tool = {
        is_tool: true
        has_subtools: false
        has_help_action: false
    };

    optional goby.middleware.protobuf.AppConfig app = 1
        [(goby.field) = { cfg { action: DEVELOPER } }];

    enum Version
    {
        jaiabot = 1;
        goby = 2;
        moos = 3;
        ivp = 4;
        raspi = 5;
        image = 6;
    }
    repeated Version display_version = 10 [(goby.field) = {
        description: "Versions to display. If none are selected, all versions are displayed.",
        cfg { position: { enable: true, max_count: -1 }, cli_short: "d" }
    }];

    enum Format
    {
        protobuf = 1;
        json = 2;
        text = 3;
    }

    optional Format format = 11 [
        default = text,
        (goby.field) = {
            description: "Desired output format",
            cfg { cli_short: "f" }
        }
    ];
}
