{"id":13465766,"url":"https://github.com/colinmollenhour/modman","last_synced_at":"2025-04-04T20:14:23.600Z","repository":{"id":1545743,"uuid":"1879029","full_name":"colinmollenhour/modman","owner":"colinmollenhour","description":"Modularize extensions using symlinks. Voted #1 Magento tool by @WebShopApps!","archived":false,"fork":false,"pushed_at":"2021-02-15T22:55:30.000Z","size":247,"stargazers_count":724,"open_issues_count":19,"forks_count":175,"subscribers_count":68,"default_branch":"master","last_synced_at":"2025-03-28T19:09:34.687Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/colinmollenhour.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-06-11T03:51:14.000Z","updated_at":"2024-12-18T18:51:45.000Z","dependencies_parsed_at":"2022-08-16T13:40:48.670Z","dependency_job_id":null,"html_url":"https://github.com/colinmollenhour/modman","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinmollenhour%2Fmodman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinmollenhour%2Fmodman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinmollenhour%2Fmodman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinmollenhour%2Fmodman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/colinmollenhour","download_url":"https://codeload.github.com/colinmollenhour/modman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242680,"owners_count":20907134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T15:00:35.130Z","updated_at":"2025-04-04T20:14:23.578Z","avatar_url":"https://github.com/colinmollenhour.png","language":"Shell","funding_links":[],"categories":["Shell","Module Manager","Tools"],"sub_categories":["Free"],"readme":"# modman (Module Manager)\n\nDeveloping extensions for software that doesn't allow you to separate your\nfiles from core files, and keeping that extension under version control and\nmaking it easy to deploy is now much, much easier. Development of this script\nwas inspired by Magento which forces you to mix your extension files all\nthroughout the core code directories. With modman, you can specify in a text\nfile where you want your directories and files to be mapped to, and it will\nmaintain symlinks for you so that your code is easy to hack and deploy.\n\nAll of your cloned/checked-out modules will be kept in a directory named\n`.modman` in the location where you run `modman init`.\n\n## Requirements\n\n  * Linux/Unix or OSX (not cygwin, see _Windows Users_ below)\n  * bash\n  * Common utilities available in your PATH: grep (POSIX), find, ln, cp, basename, dirname\n  * Web server must follow symlinks\n  * git and/or subversion are optional (not required for \"deploy\" command)\n\n### Magento Users\n\nIf using template files in a modman module, you must either:\n\n#### Option 1:\n\nUse a [patched](https://gist.github.com/colinmollenhour/35c0d32dd651c4c8c840/revisions) version of Mage/Core/Block/Template.php. This gist is itself a modman module so you can install it by cloning it directly or you can integrate it into your environment some other way.\n\n```\n$ modman clone template-patch https://gist.github.com/35c0d32dd651c4c8c840.git\n```\n\n*NOTE:* I provide no warranties for using this patch. Use at your own risk!\n\n#### Option 2:\nEnable \"Allow Symlinks\" (found under System \u003e Configuration \u003e Advanced \u003e Developer).\n\n![Allow Symlinks](https://f.cloud.github.com/assets/1337461/43324/820d4d96-567f-11e2-947a-167bf76db33f.png)\n\n*NOTE:* Disabling this security protection does decrease security as it allows template files to be loaded from any location. However, the risk is not so much symlinks as it is specially crafted template paths. The patched Template.php file (Option 1) allows the use of symlinks but should still prevent templates from being loaded from directories other than the app/design directory.\n\n### Windows Users\n\nWindows (including cygwin) is not supported by this script, but there is a [PHP-port of\nmodman](https://github.com/sitewards/modman-php) which works on Windows. I am not affiliated\nwith the authors and do not provide support for the PHP port, only a link here for reference.\n\n## Installation\n\nTo install Modman, you can either install the library in your user's root folder, or you can install Modman globally.\nRegardless of which option you choose, first run one of these two scripts to download the Modman repo.\n```\nbash \u003c \u003c(wget -q --no-check-certificate -O - https://raw.github.com/colinmollenhour/modman/master/modman-installer)\n\nor\n\nbash \u003c \u003c(curl -s -L https://raw.github.com/colinmollenhour/modman/master/modman-installer)\n```\n\n#### 1. Root Folder\n\nIf you'd like to keep the script in its native location at ``` ~/bin/ ```, just reload your Bash profile.\n```\nsource ~/.profile\n```\n\n#### 2. Installing Modman Globally\n\nTo make the script global after downloading, move the Modman script to an appropriate script folder, (e.g. ``` /usr/local/bin/ ``` or something similar within /usr/*).\nMoving it to one of the paths already loaded in your $PATH variable will automatically pick it up without a ~/.profile reload.\n```\nmv ~/bin/modman /usr/local/{{ preferred folder }}\n```\n\nAnd then finally, alias Modman with a symlink if you want something shorter to type (optional)\n```\nln -s /usr/local/{{ preferred folder }}/modman /usr/local/{{ preferred folder }}/{{ symlink }}\n```\n\nNote: modman is simply a bash script, so to use it you just need to place it in your $PATH\nand change its mode to executable.\n\n## Getting Started\n\nRun `modman --help` to get the basic usage summary or `modman --tutorial` to\nsee a brief tutorial. For more in-depth information please see the\n[Modman Wiki](https://github.com/colinmollenhour/modman/wiki)\n\n## Version Control Systems\n\nModman currently supports subversion and git. Other VCSs could be used by\nmanually checking out the source code into the proper directory and using\nthe \"deploy\" command.\n\n## Author\n\n* Colin Mollenhour\n* http://colin.mollenhour.com/\n* [@colinmollenhour](https://twitter.com/colinmollenhour)\n* [Follow me on github!](https://github.com/colinmollenhour)\n\n## License\n\n   Copyright 2009 Colin Mollenhour\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolinmollenhour%2Fmodman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcolinmollenhour%2Fmodman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolinmollenhour%2Fmodman/lists"}