JSPM

  • Created
  • Published
  • Downloads 24883
  • Score
    100M100P100Q140087F
  • License MIT

Package Exports

  • appdmg

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (appdmg) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-appdmg

Generate beautiful DMG-images for your OS X applications.

Installation

npm install -g appdmg

Usage

appdmg <json-path> <dmg-path>
  • json-path: Path to the JSON Specification file
  • dmg-path: Path at which to place the final DMG

Test

To produce a test DMG to your desktop, run the following command:

appdmg test/appdmg.json ~/Desktop/test.dmg

JSON Specification

Visualization

The specification for the image is a simple json file, example provided below. All paths are relative to the json-file's path. (Comments are not allowed, I'm only using them for demonstration purposes.)

{

  // The title of the produced DMG, which will be shown when mounted
  "title": "Test Title",

  // Path to your icon, which will be shown when mounted
  "icon": "TestIcon.icns",

  // Path to your background
  "background": "TestBkg.png",

  // Size of all the icons inside the DMG
  "icon-size": 80,

  "contents": [

    // This is the contents of your DMG.

    // Each entry has a position specified by
    // X and Y in the center of its icon.

    // `type: link` creates a link to the specified target
    { "x": 448, "y": 344, "type": "link", "path": "/Applications" },

    // `type: file` adds a file to the DMG
    { "x": 192, "y": 344, "type": "file", "path": "TestApp.app" },
    { "x": 512, "y": 128, "type": "file", "path": "TestDoc.txt" }

  ]

}

0.1.x used a different format on the specification. This format is still supported but deprecated, please update your json.

Retina background

Finder can display retina backgrounds if packaged correctly into a .tiff file. appdmg will do this for you automatically if it can find a file with the same name as the background appended with @2x.

E.g. if the json contains "background": "TestBkg.png" then add a file with the name TestBkg@2x.png into the same folder.

API

The application can also be called from within another javascript file, example:

var appdmg = require('appdmg');
var ee = appdmg({ source: 'test/appdmg.json', target: 'test.dmg' });

ee.on('progress', function (info) {

  // info.current is the current step
  // info.total is the total number of steps
  // info.type is on of 'step-begin', 'step-end'

  // 'step-begin'
  // info.title is the title of the current step

  // 'step-end'
  // info.status is one of 'ok', 'skip', 'fail'

});

ee.on('finish', function () {
  // There now is a `test.dmg` file
});

ee.on('error', function (err) {
  // An error occurred
});

You can also pass in the specification directly instead of reading it from a file. basepath should be a path which will be used to resolve other paths in the specification.

var ee = appdmg({
  target: 'test.dmg',
  basepath: __dirname,
  specification: {
    "title": "Test Title",
    // ...
  }
});

OS Support

Currently the only supported os is Mac OS X.

Track the status of this here: https://github.com/LinusU/node-appdmg/issues/14