Code Monkey home page Code Monkey logo

ada-bundler's Introduction

ada-bundler

ada-bundler transparently wraps the mechanisms for accessing resource files (e.g. configuration or data files) on different operating systems. It consists of a library that provides the application with an interface to access files, and a tool which automates the bundling process of the application.

Current Status

  • MacOSX: Working
  • Windows: Working
  • Linux_Universal: Working

Library

The library provides an API to access files of your application. As you can access the files with numerious IO APIs, the library will return a string containing an absolute path to the file you requested.

Tool

The command-line tool provided by ada-bundler takes care of the post-compilation process of your application. You tell it the directories where the resource files are located, and it copies them into an output folder along with your executable(s). Third-party dynamically linked libraries will also be included in the bundle.

The tool is implemented in Python, for various reasons. Firstly, it is a single file which is very portable. Secondly, Python has better support for loading configuration files and doing file system operations. The tool takes two optional arguments:

  • The configuration file. This file is written in YAML and defines the files the project consists of. Defaults to bundle.yaml.
  • The target system name. This defaults to the current operating system and can currently take the values osx, windows and linux.

Backends

  • MacOSX: ada-bundler will create an OSX App bundle for your application. You can copy this bundle everywhere and just double-click it to start your application.

    User data files will be stored to and loaded from the ~/Library folder.

  • Windows: ada-bundler will move the executable directly into a directory bearing the name of your application, along with your resource files. As there is no standard layout of this folder, ada-bundler defines his own standard. Note that ada-bundler cannot stuff the resource files into your executable, as most Windows applications do. They wouldn't have a path there, which is required by the platform-agnistic interface.

    User data files will be located in places as defined by the CSIDL (constant special item ID list).

  • Linux_Universal: Similar to Windows, but locates user-specific data folders according to the XDG Base Directory Specification.

In the future, backends for RPM and DEB packages may be added.

Contact

Use the issue tracker of the GitHub project.

License

ada-bundler is available under the GNAT Modified GPL

ada-bundler's People

Contributors

flyx avatar

Watchers

 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.