Add modules documentation. Possible workaround for #5

This commit is contained in:
Antonin Décimo
2014-08-20 22:27:43 +02:00
parent 66d72e7619
commit 9a19a87a08
5 changed files with 101 additions and 8 deletions

View File

@@ -99,6 +99,12 @@ with eventual underscores (i.e. [a-zA-Z0-9\_]), otherwise you'll get errors.
`--clean` Clean the cache located in `~/.cache/love-release`. `--clean` Clean the cache located in `~/.cache/love-release`.
One can replace the Love files there. One can replace the Love files there.
#### MODULES
The script is modular.
Each different platform is handled by a subscript stored in `scripts`.
If youd like to add the support of another platform,
or your own build script, see `scripts/example.sh`.
#### ICONS #### ICONS
The script doesnt yet handle the process of creating icons, The script doesnt yet handle the process of creating icons,
but if provided it can use them. but if provided it can use them.

View File

@@ -22,8 +22,9 @@ cp -r ./scripts "$INSTALL_DIR"
cp -r ./include "$INSTALL_DIR" cp -r ./include "$INSTALL_DIR"
mkdir -p "$MANPAGE_DIR" mkdir -p "$MANPAGE_DIR"
gzip -9 -k love-release.1 cp love-release.1 "$MANPAGE_DIR"/love-release.1
mv love-release.1.gz "$MANPAGE_DIR" sed -i -e "s/scripts/${INSTALL_DIR//\//\\\/}\/scripts/g" "$MANPAGE_DIR"/love-release.1
gzip -9 "$MANPAGE_DIR"/love-release.1
echo "Done !" echo "Done !"

View File

@@ -131,6 +131,11 @@ Set the version of your package.
.B \-\-clean .B \-\-clean
Clean the cache located in \fI~/.cache/love-release\fR. Clean the cache located in \fI~/.cache/love-release\fR.
One can replace the Love files there. One can replace the Love files there.
.SH MODULES
The script is modular.
Each different platform is handled by a subscript stored in \fIscripts\fR.
If you'd like to add the support of another platform,
or your own build script, see \fIscripts/example.sh\fR.
.SH ICONS .SH ICONS
The script doesnt yet handle the process of creating icons, The script doesnt yet handle the process of creating icons,
but if provided it can use them. but if provided it can use them.

View File

@@ -13,17 +13,20 @@ LOVE_VERSION=0.9.1
## - a dot "." if it has an optional argument ## - a dot "." if it has an optional argument
## - a colon ":" if it requires an argument ## - a colon ":" if it requires an argument
## SCRIPT_ARGS="a; osname:" ## Love file
SCRIPT_ARGS="l; d; g; m; w." SCRIPT_ARGS="l;"
## Windows ## Windows
SCRIPT_ARGS="icon: $SCRIPT_ARGS" SCRIPT_ARGS="w. icon: $SCRIPT_ARGS"
## Debian ## Debian
SCRIPT_ARGS="package-version: maintainer-name: maintainer-email: homepage: description: package-name: $SCRIPT_ARGS" SCRIPT_ARGS="d; package-version: maintainer-name: maintainer-email: homepage: description: package-name: $SCRIPT_ARGS"
## Android ## Android
SCRIPT_ARGS="activity: package-version: maintainer-name: package-name: update-android; $SCRIPT_ARGS" SCRIPT_ARGS="g; activity: package-version: maintainer-name: package-name: update-android; $SCRIPT_ARGS"
## Mac OS X ## Mac OS X
SCRIPT_ARGS="icon: maintainer-name: $SCRIPT_ARGS" SCRIPT_ARGS="m; icon: maintainer-name: $SCRIPT_ARGS"
## Add a short summary of your platform script here ## Add a short summary of your platform script here

78
scripts/example.sh Normal file
View File

@@ -0,0 +1,78 @@
# Example
# This example script should show you how to write a module for love-release.
# What's the point anyway ?
# Well, you could do that if you wanted to support another platform,
# or maybe to set up your own build script if you'd want to use old or custom versions of love,
# or finally to add other directives at build time.
# Read this example and take a look at the other modules.
# To create a new module, you have to create a file in this directory,
# and to edit the main love-release script.
# If you wish to submit a new module, please also edit README.md and love-release.1
# Love-release script
## 1. Register your module
# To register your platforms scripts, you have to choose a command name that will trigger your script.
# It must be followed by:
# - a semicolon ";" if it doesn't require an argument
# - a dot "." if it has an optional argument
# - a colon ":" if it requires an argument
SCRIPT_ARGS="q; wer: ty. uiop $SCRIPT_ARGS"
## 2. Add a short summary of your module
SHORT_HELP=" -q Create an Example application"
## 3. Source your script at the end of the file in the getoptex loop
while getoptex "$SCRIPT_ARGS" "$@"
do
if [ "$OPTOPT" = "q" ]; then
source "$PLATFORMS_DIR"/love.sh
fi
done
# Module script
## 0. Theses variables are available:
## $MAIN_CACHE_DIR - if you need to cache something independant from love version
## $CACHE_DIR - if you need to cache something dependant from love version
## $PROJECT_FILES - if empty, means *
## $EXCLUDE_FILES - every hidden file (.*) is excluded
## $PROJECT_NAME
## $PROJECT_DIR
## $RELEASE_DIR
## $LOVE_FILE - points to the love file
## 1. Init the module
### $1: Module name
init_module "Example"
## 2. Parse the options
# $OPTOPT holds the option and $OPTARG holds the eventual argument passed to it.
while getoptex "$SCRIPT_ARGS" "$@"
do
if [ "$OPTOPT" = "wer" ]; then
WER=$OPTARG
elif [ "$OPTOPT" = "ty" ]; then
TY=$OPTARG
elif [ "$OPTOPT" = "uiop" ]; then
UIOP=true
fi
done
## 3. Create the love file
### $1: Compression level 0-9
create_love_file 9
## 4. Write your code
## 5. Exit the module
### $1: exit code. 0 - success, other - failure
### $2: error message
exit_module