GithubHelp home page GithubHelp logo

gerhobbelt / packager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kamicane/packager

2.0 2.0 0.0 189 KB

builds packages using the package.yml MooTools syntax

Home Page: http://mootools.net

License: MIT License

PHP 100.00%

packager's Introduction

Packager

Packager is a PHP 5.2+ library to concatenate libraries split in multiple files in a single file. It automatically calculates dependencies. Packager requires a yml header syntax in every file, and a package.yml manifest file, as seen on the MooTools project.

Packager API

Constructor

The constructor of this class accepts either a path to a package or a list of path to packages. package.yml must not be included in the path.

Example

$pkg = new Packager("/Users/kamicane/Sites/mootools-core/");
$pkg = new Packager(array("/Users/kamicane/Sites/mootools-core/", "/Users/kamicane/Sites/mootools-more/"));

Adding a manifest

  • parse_manifest » adds a manifest to this instance

Working with files

Getters

  • get_all_files » gets an list of all files
  • get_file_dependancies » gets an ordered list of every file that this file depends on
  • get_file_path » gets the file path
  • get_file_source » gets the file source
  • get_file_description » gets the file description
  • get_file_provides » gets a list of the file provided components

Converters

  • complete_file » converts a single file to an ordered list of files
  • complete_files » converts a list of files to an ordered list of files

Generators

  • build_from_files » returns a string containing the source of the selected files and their dependancies
  • write_from_files » writes a file with the selected files and their dependancies

Working with components

Converting to files

  • component_to_file » gets the name of the file that provides this component
  • components_to_files » converts a list of components to a list of files

Generators

  • build_from_components » returns a string containing the source of the selected components and their dependancies
  • write_from_components » writes a file with the selected components and their dependancies

Class usage

Syntax

$pkg = new Packager(`$path_to_manifest`);

Example

$pkg = new Packager("/Users/kamicane/Sites/mootools-core/");

$pkg->write_from_components("/Users/kamicane/Sites/mootools.js", array('Type', 'Array'));

Packager Command Line script

The Packager command line script is your one-stop solution to build any of your packages at once. Works on unices.

Syntax

./packager COMMAND +option1 argument1 argument2 +option2 argument1 argument2
  • COMMAND a packager command (required)
  • +option options for commands (optional)

Commands

  • register registers a package. Creates a .packages.yml file in your home folder.
  • unregister unregisters a package
  • list list registered packages
  • build builds a single file with the supplied packages / files / components

Registering a Package

Example

./packager register /Users/kamicane/mootools-core
» the package Core has been registered

Listing Packages

Example

./packager list
» Core: /Users/kamicane/mootools-core

Unregistering a Package

Example

./packager unregister Core
» the package Core has been unregistered

Building Packages

Examples

./packager build Core/Type Core/Fx ART/ART.Element

Which is the same as...

./packager build +components Core/Type Core/Fx ART/ART.Element

Which builds the passed in components (and their dependancies) using your registered packages.

./packager build +components Core/Type Core/Fx ART/ART.Element -components Core/Core

This will build a library that has the same dependencies as the previous example but exclude the Core/Core component.

./packager build +files Core/Core Core/Fx ART/ART

This builds the passed in files (and their dependancies) using your registered packages.

./packager build ART/*

Builds every component from ART, and their dependancies, using your registered packages.

./packager build SomePackage/SomeComponent +packages /Users/kamicane/Sites/some-package

Builds the selected components using your registered packages and a temporary package that resides in /Users/kamicane/Sites/some-package, without having to register it first.

./packager build SomePackage/SomeComponent -packages Core

Builds the selected components using your registered packages minus the package names you pass to -packages. This lets you build your components without dependancies.

./packager build ART/SomeComponent +use-only ART

Builds the selected components using only ART of your registered packages. This lets you build your components without dependancies.

./packager build SomePackage/SomeComponent +use-only +packages /Users/kamicane/Sites/some-package

Builds the selected components using none of your registered packages plus the passed in package, without registering it. This lets you build your components without dependancies.

./packager build +components ART/ART +files ART/ART.Base

You can mix components and files

./packager build Core/* > mootools.js

This is how you output to a file

packager's People

Contributors

3n avatar afoeder avatar anutron avatar appden avatar cpojer avatar gerardhundman avatar gerhobbelt avatar holyshared avatar ibolmo avatar kamicane avatar marfillaster avatar ryanflorence avatar slik avatar subtlegradient avatar theshock avatar thisconnect avatar timwienk avatar w00fz avatar

Stargazers

 avatar  avatar

Watchers

 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.