|
|
| Line 1: |
Line 1: |
| − | __TOC__
| + | FIELD_MESSAGE_cdronorbasd |
| − | | + | |
| − | Writing lunar [[modules]] can be extremely complex or very simple, and is analogous to performing the steps needed to install a [[package]] manually. However, there are so many variables you need to think of when writing modules, that it's hard to get them all right if you're new at writing modules.
| + | |
| − | | + | |
| − | ==Before you start==
| + | |
| − | Take some time to think about ''why'' you want to make a new module. Also, there might be things to consider that would prevent you from writing a module at all. Here's some quick guidelines...
| + | |
| − | | + | |
| − | * Check if the package is already in the Lunar [[moonbase]]. Nothing is worse then doing the same work twice.
| + | |
| − | * Check the dependencies required for the module, and see if those also meet these requirements. Sometimes a module might take so much time to write that it's not worth it.
| + | |
| − | * Check if you're not better off installing it manually or using a binary. Plenty of packages are so easy to install into your home directory and even though a module would be nice, it's often just easier to install it manually.
| + | |
| − | | + | |
| − | ==Starting the module==
| + | |
| − | | + | |
| − | Find a good spot in [[moonbase]]. You should always work in the [[zlocal]] section. Your system [[moonbase]] is located in "/var/lib/lunar/moonbase".
| + | |
| − | | + | |
| − | cd /var/lib/lunar/moonbase/zlocal
| + | |
| − | mkdir mymodule
| + | |
| − | cd mymodule
| + | |
| − | | + | |
| − | Every module is defined as the group of files and directories including a [[DETAILS]] file in a directory. So we need a [[DETAILS]] file:
| + | |
| − | | + | |
| − | MODULE=mymodule
| + | |
| − | VERSION=1.0
| + | |
| − | SOURCE=$MODULE-$VERSION.tar.bz2
| + | |
| − | SOURCE_URL=http://my.site.org/files/
| + | |
| − | SOURCE_VFY=sha1:e96df66f703c5ab1a295e216b5035ee14d6202b2
| + | |
| − | WEB_SITE=http://my.site.org/
| + | |
| − | ENTERED=20050808
| + | |
| − | UPDATED=20050808
| + | |
| − | SHORT="Makes module writing easy"
| + | |
| − | | + | |
| − | cat<<EOF
| + | |
| − | MyModule is a simple tool to explain module writing in
| + | |
| − | detail. It doesn't actually exist but is used as an example
| + | |
| − | for educational purposes.
| + | |
| − | EOF
| + | |
| − | | + | |
| − | This is a basic [[DETAILS]] file with all required components. As you can see it's just plain shell code.
| + | |
| − | | + | |
| − | ''All lunar module files are bash code. This means that you should pay special attention to shell meta characters and proper syntax''
| + | |
| − | | + | |
| − | This [[DETAILS]] file already can be all you need for writing a module, depending on the way "mymodule" needs to be compiled.
| + | |
| − | | + | |
| − | == Module Format ==
| + | |
| − | | + | |
| − | See [[Module Basics]] and [[Module Guidelines]] for detailled information about available module scripts and module examples.
| + | |