modman-php
PHP implementation for modman, to use it on every operating system with PHP support (also Windows)., (*1)
Currently implemented:
- init (creates .modman directory)
- link (creates symlinks)
- deploy (update symlinks)
- deploy-all (updates all modules)
- repair (repairs all symlinks)
- clean (removes all dead symlinks)
- create (creates a modman file for an existing module)
- clone (clones a git repository), (*2)
--force is available for link, deploy, deploy-all and clone, if not set script aborts when conflicts are found
--copy is available for deploy and deploy-all, will copy the files and folders instead of symlinking them, (*3)
Usage examples:, (*4)
php modman.php init
php modman.php link ..\B2BProfessional
php modman.php deploy B2BProfessional
Or directly clone which does also init and deploy:, (*5)
php modman.php clone https://github.com/sitewards/B2BProfessional
Currently supported in modman files:
- symlinks (incl. wildcards)
- @import
- @shell, (*6)
For Windows users there's also a batch file available, so instead of typing php and directory to modman.php you could just use modman.bat everywhere if you add it to your %PATH%-variable:, (*7)
modman link c:\B2BProfessional
Started at Magento Hackathon in ZĂŒrich 2013-03-09, (*8)
Influenced by the original modman at https://github.com/colinmollenhour/modman/, (*9)
init
Creates the .modman directory, which is used for all other operations., (*10)
cd $PROJECT
modman init
or, (*11)
cd $PROJECT
modman init <basedir>
If you don't specify a basedir (aka magento directory) the current working directory will be used.
The basedir functionality is supposed to be used to move the .modman directory outside of the magento main directory.
- That first of all helps to structure your projects better
- But is also a security feature as modman might link sensitive data like docs into your magento magento main directory., (*12)
link
Creates symlink from a modman file, (*13)
cd $PROJOECT
modman link /path/to/myMageModule
Optional parameter --force to automatically remove conflicted files, (*14)
deploy
Updates the symlinks of a linked module, (*15)
cd $PROJECT
modman deploy myMageModule
Optional parameter --force to automatically remove conflicted files, (*16)
Optional parameter --copy to copy files instead of creating symlinks, (*17)
deploy-all
Updates all symlinks of linked modules, (*18)
cd $PROJECT
modman deploy-all
Optional parameter --force to automatically remove conflicted files, (*19)
Optional parameter --copy to copy files instead of creating symlinks, (*20)
repair
Repairs all symlinks of all linked modules, (*21)
cd $PROJECT
modman repair
clean
Scans directory for dead symlinks and deletes them. Useful if a module was deleted and not removed in the project, (*22)
cd $PROJECT
modman clean
remove
Removes links of a project, (*23)
cd $PROJECT
modman remove myMageModule
create
Scans through the current directory and creates a modman file containing all files and folders, (*24)
cd $MODULE
modman create
Optional parameter --force to automatically overwrite existing modman-file.
Optional parameter --include-hidden to list hidden files and directories in modman-file.
Optional parameter --include to include a template file at the end of the new modman-file.
If the current directory is recognized as a magento module, only the path to the module's code directory is added to the modman file., (*25)
clone
Clones a git repository, (*26)
cd $PROJECT
modman clone https://git.url
Optional parameter --force to overwrite existing folder.
Optional parameter --create-modman to create a new modman file in the cloned folder if there is no modman file yet., (*27)
Feature ideas
- Check if "allow symlinks" is activated in Magento when linking template files