New --version-machine CLI command

This commit is contained in:
Nav
2022-05-06 19:30:43 +01:00
parent 52c9669d14
commit 7776ba88c3
3 changed files with 30 additions and 3 deletions

View File

@@ -7,8 +7,9 @@ If no environment name or command is provided, Bloom will fallback to the enviro
If no such environment exists, Bloom will exit. If no such environment exists, Bloom will exit.
Commands: Commands:
--help, -h Displays this help text. --help, -h Displays this help text.
--version, -v Displays the current version number. --version, -v Displays Bloom's version number.
init Creates a new Bloom project configuration file (bloom.json), in the working directory. --version-machine Outputs Bloom's version number in JSON format.
init Creates a new Bloom project configuration file (bloom.json), in the working directory.
For more information on getting started with Bloom, please visit https://bloom.oscillate.io/docs/getting-started. For more information on getting started with Bloom, please visit https://bloom.oscillate.io/docs/getting-started.

View File

@@ -287,6 +287,21 @@ namespace Bloom
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
int Application::presentVersionMachineText() {
Logger::silence();
std::cout << QJsonDocument(QJsonObject({
{"version", QString::fromStdString(Application::VERSION.toString())},
{"components", QJsonObject({
{"major", Application::VERSION.getMajor()},
{"minor", Application::VERSION.getMinor()},
{"patch", Application::VERSION.getPatch()},
})},
})).toJson().toStdString();
return EXIT_SUCCESS;
}
int Application::initProject() { int Application::initProject() {
auto configFile = QFile( auto configFile = QFile(
QString::fromStdString(std::filesystem::current_path().string() + "/bloom.json") QString::fromStdString(std::filesystem::current_path().string() + "/bloom.json")

View File

@@ -156,6 +156,10 @@ namespace Bloom
"-v", "-v",
std::bind(&Application::presentVersionText, this) std::bind(&Application::presentVersionText, this)
}, },
{
"--version-machine",
std::bind(&Application::presentVersionMachineText, this)
},
{ {
"init", "init",
std::bind(&Application::initProject, this) std::bind(&Application::initProject, this)
@@ -210,6 +214,13 @@ namespace Bloom
*/ */
int presentVersionText(); int presentVersionText();
/**
* Presents the current Bloom version number, in JSON format.
*
* @return
*/
int presentVersionMachineText();
/** /**
* Initialises a project in the user's working directory. * Initialises a project in the user's working directory.
* *