Page 1 of 15

love-release - in Lua ! - makes LÖVE game release easier

Posted: Tue Nov 05, 2013 6:42 pm
by Rucikir
love-release
Image

Lua 5.1 script that makes LÖVE game release easier (previously Bash script).
Automates LÖVE Game Distribution.
LÖVE forum_topic.
Available as a LuaRocks package.

Features
love-release makes your LÖVE game release easier. It can create from your sources Windows executables, MacOS X applications, Debian packages and simple LÖVE files.

love-release creates only one LÖVE file per release directory and keeps it synced with your sources.

love-release can extract its information from the environment: it guesses your game's title from the directory where it's stored, selects by default the latest LÖVE version from the web or uses its latest bundled LÖVE version, then parses the conf.lua file to extract even more information such as the real LÖVE version your project uses.

Usage

Code: Select all

Usage: love-release [-D] [-M] [-a <author>] [-b] [-d <desc>]
       [-e <email>] [-l <love>] [-p <package>] [-t <title>] [-u <url>]
       [--uti <uti>] [-v <v>] [--version] [-h] [<release>] [<source>]
       [-W [32|64]]

Makes LÖVE games releases easier!

Arguments:
   release               Project release directory.
   source                Project source directory.

Options:
   -D                    Debian package.
   -M                    MacOS X application.
   -W [32|64]            Windows executable.
   -a <author>, --author <author>
                         Author full name.
   -b                    Compile new or updated files to LuaJIT bytecode.
   -d <desc>, --desc <desc>
                         Project description.
   -e <email>, --email <email>
                         Author email.
   -l <love>, --love <love>
                         LÖVE version to use.
   -p <package>, --package <package>
                         Package and command name.
   -t <title>, --title <title>
                         Project title.
   -u <url>, --url <url> Project homepage url.
   --uti <uti>           Project Uniform Type Identifier.
   -v <v>                Project version.
   --version             Show love-release version and exit.
   -h, --help            Show this help message and exit.

For more info, see https://github.com/MisterDA/love-release
Configuration
love-release prints to the command-line a Lua table containing the information it uses to generate your project. These information can be stored in your conf.lua file to be used later.

Code: Select all

function love.conf(t)
  t.releases = {
    title = nil,              -- The project title (string)
    package = nil,            -- The project command and package name (string)
    loveVersion = nil,        -- The project LÖVE version
    version = nil,            -- The project version
    author = nil,             -- Your name (string)
    email = nil,              -- Your email (string)
    description = nil,        -- The project description (string)
    homepage = nil,           -- The project homepage (string)
    identifier = nil,         -- The project Uniform Type Identifier (string)
    releaseDirectory = nil,   -- Where to store the project releases (string)
  }
end
Installation

Dependencies
love-release is only installable through LuaRocks and highly depends on LuaRocks internal API. love-release is currently build on LuaRocks 2.3.0. LuaRocks API is not meant to be stable, and a future update could break love-release. As love-release is made for LÖVE, it is written for Lua 5.1.

Required
- libzip headers for lua-zip.
- lua-zip has no official stable version, thus while available on LuaRocks it must be installed manually.
- Other libraries are automatically installed, but let's give them some credit: luafilesystem, loadconf, middleclass, semver.

Optional
- love can be used to determine your system LÖVE version.
- fakeroot and dpkg-deb are required to create Debian packages.
- LuaJIT can be used to compile your sources, either with luarocks-luajit or if luajit is installed.

Install

Code: Select all

# sudo
luarocks install --server=http://luarocks.org/dev lua-zip

# latest stable version
luarocks install love-release

# development version
luarocks install --server=http://luarocks.org/dev love-release
Remove Bash version
You may have previously installed the Bash version of love-release. You can remove it with the following piece of code. Take the time to assure yourself that the paths are correct and match your installation of love-release.

Code: Select all

rm -rf '/usr/bin/love-release'
rm -rf '/usr/share/love-release'
rm -rf '/usr/share/man/man1/love-release.1.gz'
rm -rf '/usr/share/bash-completion/completions/love-release' '/etc/bash_completion.d/love-release'
Contribute
The documentation of love-release internals is written with LDoc. Generate it by running ldoc ..
I do not plan to keep developing the Bash script, not even fixing it. If there appears to be any need for it, let me know and I might consider doing so.
Every bug report or feature request is gladly welcome!


Thanks to the LÖVE developers!
Thanks to Josefnpat, Positive07, socketubs, nundonato, kikito, Alloyed and the others for their support on love-release development on Github!
Also, thanks for the little reviews made here ericjmritz.name, and here ambiance.sk and for all the people who have commented, requested features or found bugs, and who have starred the project on Github!

Re: Love-Release. Bash script to make it easier.

Posted: Tue Nov 05, 2013 8:06 pm
by jjmafiae
is it for 0.8.0 or 0.9.0?

Re: Love-Release. Bash script to make it easier.

Posted: Tue Nov 05, 2013 10:22 pm
by Kyle
jjmafiae wrote:is it for 0.8.0 or 0.9.0?
Why would it matter? The process has been the same for longer than you've been around here.

Re: Love-Release. Bash script to make it easier.

Posted: Tue Nov 05, 2013 10:30 pm
by Roland_Yonaba
Nice script. Meh starred it.

Re: Love-Release. Bash script to make it easier.

Posted: Tue Nov 05, 2013 11:03 pm
by Kingdaro
Very nice! May I suggest that the script uses a local version of files provided by the user? It's possible that the LÖVE website could be down and the files could be inaccessible, or if you're not connected to the internet.

[]

Posted: Tue Nov 05, 2013 11:34 pm
by bekey
-snip-

Re: Love-Release. Bash script to make it easier.

Posted: Tue Nov 05, 2013 11:36 pm
by slime
Kyle wrote:
jjmafiae wrote:is it for 0.8.0 or 0.9.0?
Why would it matter? The process has been the same for longer than you've been around here.
The filenames of the LÖVE downloads might not stay exactly consistent between releases. For example the script has this for OS X:

Code: Select all

wget https://bitbucket.org/rude/love/downloads/love-$LOVE_VERSION-macosx-ub.zip
But the official Mac download for 0.9.0 isn't being built as a universal binary, so the filename probably won't have the 'ub' suffix.

Re: Love-Release. Bash script to make it easier.

Posted: Wed Nov 06, 2013 8:35 am
by jjmafiae
Kyle wrote:
jjmafiae wrote:is it for 0.8.0 or 0.9.0?
Why would it matter? The process has been the same for longer than you've been around here.
thats was not what i meant, never mind

Re: Love-Release. Bash script to make it easier.

Posted: Wed Nov 06, 2013 5:08 pm
by Rucikir
slime wrote:The filenames of the LÖVE downloads might not stay exactly consistent between releases. For example the script has this for OS X:

Code: Select all

wget https://bitbucket.org/rude/love/downloads/love-$LOVE_VERSION-macosx-ub.zip
But the official Mac download for 0.9.0 isn't being built as a universal binary, so the filename probably won't have the 'ub' suffix.
I didn't think of that...
Are there already 0.9.0 builds for Mac and Windows ? Because I just used the URLs from https://bitbucket.org/rude/love/downloads...
Will someday Löve be in version 1.x.y ? I need to make some modifications if so.
Kingdaro wrote:Very nice! May I suggest that the script uses a local version of files provided by the user? It's possible that the LÖVE website could be down and the files could be inaccessible, or if you're not connected to the internet.
It's a very good idea... Just thinking, what options should be used ? Coming in next update !
Roland_Yonaba wrote:Nice script. Meh starred it.
Thanks ! One of my firsts stars on Github... I Löve you too !

I will keep the script in the first post updated.

Re: Love-Release. Bash script to make it easier.

Posted: Wed Nov 06, 2013 7:17 pm
by T-Bone
Seems like a nice script. Of course, it would have been even nicer if it built .deb-files :neko: