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

Showcase your libraries, tools and other projects that help your fellow love users.
Post Reply
User avatar
Rucikir
Party member
Posts: 129
Joined: Tue Nov 05, 2013 6:33 pm

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

Post 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!
Last edited by Rucikir on Thu Feb 16, 2017 7:36 pm, edited 48 times in total.
jjmafiae
Party member
Posts: 1331
Joined: Tue Jul 24, 2012 8:22 am

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

Post by jjmafiae »

is it for 0.8.0 or 0.9.0?
Kyle
Party member
Posts: 146
Joined: Sat Mar 16, 2013 9:46 pm

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

Post 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.
User avatar
Roland_Yonaba
Inner party member
Posts: 1563
Joined: Tue Jun 21, 2011 6:08 pm
Location: Ouagadougou (Burkina Faso)
Contact:

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

Post by Roland_Yonaba »

Nice script. Meh starred it.
User avatar
Kingdaro
Party member
Posts: 395
Joined: Sun Jul 18, 2010 3:08 am

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

Post 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.
bekey
Party member
Posts: 255
Joined: Tue Sep 03, 2013 6:27 pm

[]

Post by bekey »

-snip-
Last edited by bekey on Fri Jan 24, 2014 2:05 am, edited 1 time in total.
User avatar
slime
Solid Snayke
Posts: 3163
Joined: Mon Aug 23, 2010 6:45 am
Location: Nova Scotia, Canada
Contact:

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

Post 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.
jjmafiae
Party member
Posts: 1331
Joined: Tue Jul 24, 2012 8:22 am

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

Post 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
User avatar
Rucikir
Party member
Posts: 129
Joined: Tue Nov 05, 2013 6:33 pm

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

Post 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.
User avatar
T-Bone
Inner party member
Posts: 1492
Joined: Thu Jun 09, 2011 9:03 am

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

Post by T-Bone »

Seems like a nice script. Of course, it would have been even nicer if it built .deb-files :neko:
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 6 guests