From 019156ee0e6e7ae13ccdfba746f7fe61233407e8 Mon Sep 17 00:00:00 2001 From: premek <1145361+premek@users.noreply.github.com> Date: Thu, 20 Oct 2022 23:44:45 +0200 Subject: [PATCH] print usage when there is no game and when --help option is used --- src/love.cpp | 22 ++++++++++++++++++++++ src/modules/love/boot.lua | 11 +++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/love.cpp b/src/love.cpp index 0833aa2f4..4f235cf61 100644 --- a/src/love.cpp +++ b/src/love.cpp @@ -141,6 +141,21 @@ enum DoneAction DONE_RESTART, }; +static void print_usage() +{ + // when editing this message, change it at boot.lua too + printf("LÖVE is an *awesome* framework you can use to make 2D games in Lua\n" + "https://love2d.org\n" + "\n" + "usage:\n" + " love --version prints LÖVE version and quits\n" + " love --help prints this message and quits\n" + " love path/to/gamedir runs the game from the given directory which contains a main.lua file\n" + " love path/to/packagedgame.love runs the packaged game from the provided .love file\n" + " love path/to/file.lua runs the game from the given .lua file\n" + ); +} + static DoneAction runlove(int argc, char **argv, int &retval, love::Variant &restartvalue) { // Oh, you just want the version? Okay! @@ -155,6 +170,13 @@ static DoneAction runlove(int argc, char **argv, int &retval, love::Variant &res return DONE_QUIT; } + if (argc > 1 && strcmp(argv[1], "--help") == 0) + { + print_usage(); + retval = 0; + return DONE_QUIT; + } + // Create the virtual machine. lua_State *L = luaL_newstate(); luaL_openlibs(L); diff --git a/src/modules/love/boot.lua b/src/modules/love/boot.lua index 736950476..8eb030604 100644 --- a/src/modules/love/boot.lua +++ b/src/modules/love/boot.lua @@ -135,6 +135,17 @@ function love.boot() end if not can_has_game then + -- when editing this message, change it at love.cpp too + print([[LÖVE is an *awesome* framework you can use to make 2D games in Lua +https://love2d.org + +usage: + love --version prints LÖVE version and quits + love --help prints this message and quits + love path/to/gamedir runs the game from the given directory which contains a main.lua file + love path/to/packagedgame.love runs the packaged game from the provided .love file + love path/to/file.lua runs the game from the given .lua file +]]); local nogame = require("love.nogame") nogame() end