Skip to content

WORK IN PROGRESS! Automate common tasks for Elder Scrolls Online addon development.

Notifications You must be signed in to change notification settings

inimicus/makePackage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 

Repository files navigation

makePackage.sh

Take the contents of an entire addon directory and output a packaged zip file that is clean of development, debug, and OS-specific artifacts that is ready to be distributed or uploaded to ESOUI.

Reads the directory name and package manifest file for information about the addon, including any options to ignore addon-specific files and folders, where to place the output package, and more.

For more configuration information, issues, or feature requests, visit:

https://github.com/inimicus/makePackage/

Usage

makePackage.sh [options]

makePackage.sh bump [(--to | -t) <version>] [--major | --minor | --patch] [options]

makePackage.sh bump-api [(--to | -t) <version>] [--squash | -s] [options]

makePackage.sh (--help | -h)

makePackage.sh (--version | -v)

Options

  • --verbose

    Include additional detail about each action performed in program output.

    Short option: -p

  • --dry-run

    Print out commands to execute without executing them.

    Short option: -d

  • --no-commit

    Disables automatic commit.

    Short option: -n

  • --message <message>

    Specify a message for the commit. When a message is not specified, the default message will be used.

    Short option: -m <message>

Commands

bump

Bump the addon version by one patch and commit the change.

Options:

  • --major

    Bumps the major version.

  • --minor

    Bumps the minor version.

  • --patch

    Bumps the patch version (default).

  • --to <version>

    Explicitly set the addon version to bump to. When set, options passed to bump the major, minor, or patch number are ignored.

    Short option: -t <version>

bump-api

Bump the API version by one. If multiple API versions are found in the manifest file, each will be incremented by one.

Options:

  • --squash

    If multiple API versions are encountered, bump the most recent version and remove the rest.

    Short option: -s

  • --to <version>

    Explicitly set the API version to bump to.

    Short option: -t <version>

Configuration

You can customize how packages are generated by adding configuration options to the package manifest file. In contrast to ESOUI addon data, options are prefixed with a semi-colon (;) to avoid conflict or unforseen incompatibilities.

  • PackageExcludes

    A space-separated list of file and directories to exclude in addition to the built-in excludes (.git, README.md, .DS_Store, etc).

    Wildcards (*) are supported and passed to the zip command to exclude the wildcard range.

  • PackageReleaseDir

    Directory, relative to addon root, to place packaged files. If this directory does not exist, it will be created. Spaces in the directory name are not allowed/supported.

    Default: release

  • PackageBumpFiles

    A space-separated list of files to parse when bumping the addon version number.

    Version replacement in these files will only act on versions that are directly in quotes, single or double, to avoid falsely matching versions in comments or other areas.

    myAddonVersion = '1.2.3'                -- Matches
    
    myAddonVersion = "1.2.3"                -- Also matches
    
    myAddonVersion = 1.2.3                  -- Doesn't match, Lua wouldn't like it either
    
    -- Fixed in version 1.2.3               -- Doesn't match
    local function myFunction() return end

Configuration Example

The following configuration will:

  • Ignore all files in the art/ and assets/ directories
  • Ignore an image in the addon root directory
  • Place packaged files in packages directory in the addon root
  • Parse src/Main.lua and src/Other.lua when bumping version numbers
; PackageExcludes: art/* assets/* meme.gif
; PackageReleaseDir: packages
; PackageBumpFiles: src/Main.lua src/Other.lua

Examples

  • makePackage.sh

    Create a package and commit with the default message.

  • makePackage.sh --no-commit

    Create a package, skip auto commit.

  • makePackage.sh -m "Add my sweet packaged addon that isn't broken at all."

    Create a package and commit with a specific message.

  • makePackage.sh bump

    Bump addon to the next patch version and commit with the default message.

  • makePackage.sh bump --minor

    Bump addon to the next minor version and commit with the default message.

  • makePackage.sh bump -t "2.3.4" -m "Let's hope this version is less broken."

    Bump addon version to 2.3.4 and commit with a specific message.

  • makePackage.sh bump-api -s

    Bump the API version and remove any previous API versions.

  • makePackage.sh bump-api --to "100123 100234"

    Explicitly set the API version and commit with the default message.

Enjoy!

About

WORK IN PROGRESS! Automate common tasks for Elder Scrolls Online addon development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages