5,600,123 Members 42,436 Now Online
XDA Developers Android and Mobile Development Forum
Announcement from NemesisRE: ...if you have no time to breakfast, brunch or lunch. You need Dinner!

[TOOL/SCRIPT] Dinner - An easier way to build roms

Tip us?
NemesisRE's Avatar
Senior Member - OP
Thanks Meter 160
Posts: 160
Join Date: Feb 2009
Location: Karlsruhe

Default [TOOL/SCRIPT] Dinner - An easier way to build roms

Android Dinner
...if you have no time to breakfast, brunch or lunch.

What is Dinner?
Dinner is a build script for comfortable and automated building of Android Roms. More or less it's a wrapper for breakfast, repo sync and brunch...

But Dinner is more than that. It uses configs to define a build, these configs can be shared with others so they can build what you built. And there is even more:
  • Nice output (only the information you need)
  • Commandline completion for Dinner
  • Complete logfile of your build and a errorlog which only contains message from STDERR
  • Automatic upload of errorlog to our secure Stikked server (https://paste.nrecom.net)
  • Generating of a changelog
  • Notification about you build status via Mail, Pushbullet or Notify my Android
  • Build via cron, no need for a jenkins or a build bot, you only need Dinner
  • still much more...

Who is it intended for?
Developers and Users, everyone can use and benefit from it.
Developers can attach their Dinner config to the rom thread so that users can build their rom.
Users have an easier way to compile a rom and support the devs by sending the compile errorlog back to them.

What are the requirements?
At the moment you need a build environment, which means you have to install all packages need to compile android (examples from: Google or OmniRom)
  • You should also have a build user (do not build as root or with root privileges).
  • And "mutt" if you want to send e-mail notifications.

How to install?
Dinner installation is quite easy, as build user just run:
curl -sL https://raw.github.com/NemesisRE/dinner/master/bootstrap.sh | /bin/bash
or clone the repository and add the following lines to ${HOME}/.bashrc (or for zsh: ${HOME}/.zshrc):
source [DINNER_INSTALL_PATH]/helper/dinner_completion.sh

How to use it?
Dinner help
Dinner has a good help, run:
dinner help
and you will get pretty much all information you need.

Dinner example config
There is also an example config with description for every variable.

How to start
First thing, create a config! Just run:
dinner config add NAME_OF_YOUR_NEW_CONFIG
or just add an existing:
dinner config add PATH_TO_CONFIG
if you want to change some of the advanced config variables use:
dinner config edit NAME_OF_YOUR_CONFIG
After you created your config, all you need to do is start building process by running:
dinner build NAME_OF_YOUR_CONFIG
or if you want to build all your configs:
dinner build

Is Dinner already finished?
No! I want to add even more features, at the moment easy cherrypicking is one of my main goals. But I think there will be even more ideas from you.

XDA:DevDB Information
Dinner, a Tool/Utility for the Android General

NemesisRE, cb5264

Version Information
Status: Stable
Current Stable Version: 2.0
Stable Release Date: 2014-03-22

Created 2014-03-22
Last Updated 2014-03-25
The Following 3 Users Say Thank You to NemesisRE For This Useful Post: [ Click to Expand ]
(Last edited by NemesisRE; 23rd March 2014 at 07:44 PM.)
NemesisRE's Avatar
Senior Member - OP
Thanks Meter 160
Posts: 160
Join Date: Feb 2009
Location: Karlsruhe

Default Reserved

The whole thing started with this thread http://forum.xda-developers.com/show...php?p=47396058

10 Script lines from XDA Member cb5264, were the beginning of Dinner...

We asked us questions like:
  • do we need jenkins to build a rom on our own?
  • can we have changelog for each build?
  • why don't we get a nice notification when build has finished?

Then XDA Recognized Contributor mithun46 showed us his script with already 24 lines.

Then I thought we would need some more error handling and more options for the user to make their own decisions, this was the beginning of Dinner.
The first Dinner version had already over 300 lines of code and now it has more the 1500, and I'm not finished yet.

Here are some Screenshoots

And an example error log:
The Following User Says Thank You to NemesisRE For This Useful Post: [ Click to Expand ]
NemesisRE's Avatar
Senior Member - OP
Thanks Meter 160
Posts: 160
Join Date: Feb 2009
Location: Karlsruhe

I'm thinking about, that configs could/should be git repositories that way devs can also add scripts or change the config and users could easily update their config with a command like "dinner config update"

This would mean:
  • "dinner config add CONFIGNAME" would create a git repo
  • "dinner config add URL" would try to pull a repo or another command "dinner config pull URL"
  • we would need a "push" command for configs
  • a command like "dinner config cd [CONFIGNAME]" would also be nice (like homeshick)
  • we would need a better way to run scripts before and after the build process, like based on the script name (pre_*.sh and post_*.sh)
Phone: LG G2 (d802)
ROM: OmniRom (vertigo)
Kernel: ayysir
Recovery: TWRP

Old Phones:
  • Samsung Galaxy S3 (I9300)
  • Motorola Milestone 2
  • Samsung Omnia i900

Tablet: Asus Transformer Prime (TF201)
ROM: Namidairo CM11 unoffical
Kernel: Stock CM
Recovery: TWRP 2.6.3
Bootloader: JB

Universal NAVBar Mod now with AROMA Galaxy S3/S4/Note (maybe your phone too)

Dinner... An easier way to build ROMs

Did I help you? - Say Thanks (Hit the Thanks Button)
vishal_android freak
vishal_android freak's Avatar
Recognized Contributor
Thanks Meter 3339
Posts: 1,460
Join Date: Dec 2012
Location: Mumbai
This is an awesome new things you guys have come up with.. Surely gona give it a try and also try improving it.. Appreciate the efforts of you guys..

Sent from my Nexus 5 using Tapatalk


| Pure Xperia HD, Official Carbon Rom 4.4.2, Unofficial Omni Rom 4.4.2, AOKP-4.4.2, Unofficial HellKat 4.4.2, Carbon Rom 4.3.1, Dark Xperia |

My Guides and Tools

| All in one drivers guide for ubislate tabs, CWM recovery for a13 tabs |

My kernel

| Super Fusion kernel for all HDPI devices |

Devices I Support

| All 2011 Xperias , Xperia M , Lg p760 and p765, Xperia Tipo, Xperia L |
automation, build, cyanogenmod, jenkins, omnirom
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes