Giter Club home page Giter Club logo

node-appdmg's Introduction

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 [email protected] 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: LinusU#14

Alternatives

node-appdmg's People

Contributors

linusu avatar andreyvit avatar vrunoa avatar szwacz avatar juliangruber avatar malept avatar vladignatyev avatar

Watchers

Bluelich avatar  avatar

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.