Git Product home page Git Product logo

oxp-build-scripts's Introduction

OXP Packaging Scripts

These are my scripts for easily packaging and testing OXPs/OXZs. They're available in case anyone else wants to use or adapt them, as they've made things much easier for me. Advantages:

  • No need to shift-restart during development, so you can get quicker from-cache startup the rest of the time.

  • Update the version in one place, have it propagate everywhere else. This is less useful now that the version in manifest.plist can automatically fill in the version in JS files, but it's still useful.

  • Provides a common JS script header.

  • Automatically builds well-packaged OXPs and OXZs.

  • Automatically runs the OXP verifier (with a little bit of work)

They work with the Linux install locations; they will need some modification to work on Windows or Mac.

Licensing

The scripts themselves can be treated as public domain, so while small bits of output from the scripts and files from the templates will end up in your OXPs, that doesn't imply any particular license is required by you, or that you need to credit me at all.

As usual, provided as-is, no warranty of any sort whatsoever.

Usage

These scripts will need a bit of work before you can make good use of them. Make sure you install them somewhere outside where Oolite might look for OXPs - I use ~/myaddons but it doesn't really matter as long as it's not ~/.Oolite/AddOns or similar.

Before using it the first time

  1. Update the template/scriptheader.js file to use your own name and copyright year.

  2. Update the template/License.txt file to specify the license you release the majority of your OXPs with.

  3. If there are any other files you want to include in every OXP, put them in template/oxp. While you will want to include a manifest.plist, it's probably easier to build that using the manifest editor on the Oolite website.

  4. Optional, but strongly recommended: edit the last line of buildscript.common to point to your install of the OXP Developer (aka test) build of Oolite. This will enable OXP verification which will pick up on some of the more obvious syntax errors without having to start the full Oolite and poke through the Latest.log.

To make a new OXP

  1. Copy the 'template' directory to a directory named after the OXP (e.g. cp -r template MyOxp). The folder must be at the same level as the template folder (if it isn't, you'll need to edit buildscript.sh a bit more)

  2. Edit the buildscript.sh file in the new folder to set the OXPNAME and VERSION variables.

  3. Write the contents of your OXP in the 'oxp' subfolder.

  4. Run the buildscript.sh script from the MyOxp folder. This will:

  • Build the OXP in a 'buildtmp' folder

  • Removes *~ files from the 'buildtmp' folder and subfolders. If your editor indicates backup files in a different way, you might want to modify buildscript.common a little.

  • Copy in the readme and License files from the MyOxp folder

  • Place the contents of scriptheader.js at the top of every file in oxp/Scripts.

  • Copy the requires.plist and manifest.plist in the 'oxp' folder, and replace any occurrence of the string VERSION in the manifest.plist with the VERSION variable in buildscript.sh

  • Install the OXP, in OXZ format, to your ~/.Oolite/AddOns folder. This is an updated file timestamp, even if it was already there, so you won't need to shift-restart Oolite to pick it up. If you've done this already it will overwrite the existing one.

  • Make an OXPNAME_VERSION.zip file containing the OXP in OXP format and put it in the MyOXP folder.

  • Make an OXPNAME_VERSION.oxz file and put it in the MyOXP folder

  1. Start Oolite, test your OXP, fix the bugs, then run buildscript.sh again.

  2. Once you've got it working, upload the version-numbered OXP and/or OXZ to the internet.

To update an OXP

Very easy: open buildscript.sh and increase the version number, then go to step 3 above.

Advanced use

For Rescue Stations OXP, when I was maintaining that, I had a second script that built the shipdata.plist (and its massive list of like_ship entries to allow OXP ships to be used if installed) from a bunch of templates. If you have something like that, edit buildscript.sh to put it just before the call to ../buildscript.common

OXP verification is currently a lot more comprehensive in the 1.81 nightly builds than in the 1.80 release. You can install a nightly build, point the OXP verifier line at that executable, and play+test OXPs on 1.80 as before without trouble.

oxp-build-scripts's People

Contributors

cim-- avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hiranchaudhuri

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.