Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/astorm/MagentoTarToConnect
A small shell script to automatically package tar archives into Magento's Connect 2.0 format.
https://github.com/astorm/MagentoTarToConnect
Last synced: 6 days ago
JSON representation
A small shell script to automatically package tar archives into Magento's Connect 2.0 format.
- Host: GitHub
- URL: https://github.com/astorm/MagentoTarToConnect
- Owner: astorm
- Created: 2013-06-08T22:26:45.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2017-04-03T14:49:39.000Z (over 7 years ago)
- Last Synced: 2024-10-18T11:39:30.714Z (21 days ago)
- Language: PHP
- Size: 72.3 KB
- Stars: 80
- Watchers: 7
- Forks: 24
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- mageres - MagentoTarToConnect - Shell script by Alan Storm to package tar archives into Magento's Connect 2.0 format (Extensions / Free)
README
MagentoTarToConnect
===================A small shell script to automatically package tar archives into Magento's Connect 2.0 format.
### Description
Under the hood Magento Connect 2.0 packages (Magento Connect 2.0 was introduced around the time of Magento CE 1.5) are actually tar'ed and gziped files with a specially formatted package manifest. Well, they're almost `tar` and `gzip` files. Magento implemented their own archiving and unarchiving code in PHP, and this code occasionally has problems with tar archives created via standard OS tools.
This shell script will take a standard tar archive, untar it, build the Connect `package.xml` manifest, and then re-tar and gzip the files **using Magento's code** (included in the `vendor` library here, but you can substitute your own). This decreases the likelihood your package will be incompatible with Magento Connect.
## Usage
The syntax for using this script is as following
$ ./magento-tar-to-connect.php example-config.php
Where `example-config.php` is a PHP file which returns a set of configuration key/value pairs. These key/value pairs provide the script with the location of an archive file, the output location, as well as the bare minimum Magento Connect fields needed to create a valid extension. An example file might look something like this'/fakehome/Documents/github/Pulsestorm/var/build',
'archive_files' => 'Pulstorm_Example.tar',
//The Magento Connect extension name. Must be unique on Magento Connect
//Has no relation to your code module name. Will be the Connect extension name
'extension_name' => 'Pulstorm_Example',
//Your extension version. By default, if you're creating an extension from a
//single Magento module, the tar-to-connect script will look to make sure this
//matches the module version. You can skip this check by setting the
//skip_version_compare value to true
'extension_version' => '1.0.3',
'skip_version_compare' => false,
//You can also have the package script use the version in the module you
//are packaging with.
'auto_detect_version' => false,
//Where on your local system you'd like to build the files to
'path_output' => '/fakehome/Pulsestorm/var/build-connect',
//Magento Connect license value.
'stability' => 'stable',
//Magento Connect license value
'license' => 'MIT',
//Magento Connect channel value. This should almost always (always?) be community
'channel' => 'community',
//Magento Connect information fields.
'summary' => 'Provides navigation shortcuts for the admin console\'s navigation and global search',
'description' => 'This extension provides Magento admin console users with an "application launcher". This application launcher provides instant access to the admin console\'s navigation, every system configuration search section, as well as the Magento global search. The Pulse Storm launcher is a free, open source, must have extension for anyone working with Magento. ',
'notes' => 'Typo fixes, properly aborts ajax requests.',
//Magento Connect author information. If author_email is [email protected], script will
//prompt you for the correct name. Should match your http://www.magentocommerce.com/
//login email address
'author_name' => 'Alan Storm',
'author_user' => 'alanstorm',
'author_email' => '[email protected]',
//PHP min/max fields for Connect. I don't know if anyone uses these, but you should
//probably check that they're accurate
'php_min' => '5.2.0',
'php_max' => '6.0.0'
);## Building a `phar` with Phing
The project also includes a `phing` build.xml file. You can use this to create an executable `phar` of the script. If you're not familiar, a `phar` is sort of like a stand alone PHP executable. You can [read more here](http://php.net/phar).
$ phing create_phar
This will create a new `magento-tar-to-connect.phar` file in the main project directory.## Running the script stand alone
If you don't know how to use `phing` or `phar` files, you can run the scripts by copying
1. `magento-tar-to-connect.php`
2. And the `src/magento` folder
To wherever you run your scripts from.## Composer and Unit Tests
[PHP Composer](https://getcomposer.org/) is not required to run this project. However, we've included `composer.json` for installing `phpunit`. After running `composer install` or `composer update`, you'll be able to run the unit tests with the following
vendor/bin/phpunit tests
Tests should be placed intests/
See the test filetests/ExampleTest.php
for instructions on how to load a test fixture (i.e. archive), and automatically build a `tgz` Magento connect extension from it.