{"id":23980802,"url":"https://github.com/fourkitchens/fire","last_synced_at":"2025-04-14T04:34:04.258Z","repository":{"id":119734525,"uuid":"609352602","full_name":"fourkitchens/fire","owner":"fourkitchens","description":"FIRE is a commands standardization tool","archived":false,"fork":false,"pushed_at":"2025-02-04T21:36:55.000Z","size":219,"stargazers_count":0,"open_issues_count":26,"forks_count":0,"subscribers_count":11,"default_branch":"3.x","last_synced_at":"2025-03-27T18:22:24.349Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","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/fourkitchens.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-03T23:45:07.000Z","updated_at":"2025-01-28T19:52:30.000Z","dependencies_parsed_at":"2023-12-20T20:49:52.931Z","dependency_job_id":"da038a76-8e71-4f1e-8d72-69ccd3a063ff","html_url":"https://github.com/fourkitchens/fire","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Ffire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Ffire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Ffire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourkitchens%2Ffire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fourkitchens","download_url":"https://codeload.github.com/fourkitchens/fire/tar.gz/refs/heads/3.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248822942,"owners_count":21167149,"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":"2025-01-07T10:18:46.992Z","updated_at":"2025-04-14T04:34:04.250Z","avatar_url":"https://github.com/fourkitchens.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"FIRE\n\n```\n   )\n  ) \\\n / ) (\n \\(_)/\n```\n=================\n\n**F**ast\n**I**nitialization and\n**R**ebuilding of\n**E**nvironments.\n\nFIRE is a standardized set of commands to run local [Drupal](https://www.drupal.org/) environments, regardless of which Docker wrapper you use ([Lando](https://lando.dev/) or [DDEV](https://ddev.com/)), and regardless of where the live site is hosted ([Pantheon](https://pantheon.io/) or [Acquia](https://www.acquia.com/solutions/drupal-hosting)).  This means that every site that you work on will use the _same_ commands for things like getting a fresh database (`fire get-db`).  This makes it quicker and easier to get new people working on any of your sites.\n\n# Install\n\n1. Install the FIRE Launcher on your computer (Recommended but optional)\\\nhttps://github.com/fourkitchens/fire-launcher\n2. Install the commands package into your project\\\n`composer require fourkitchens/fire --dev`\n3. Create your `fire.yml` config file for the project\\\n`fire init`\n4. Edit `fire.yml` and adjust the configuration.\n5. Check if fire is working\\\nIf you have installed the FIRE Launcher:\n```\nfire\n```\n  otherwise:\n```\n./vendor/bin/fire\n```\n  It should show you all the available FIRE commands.\n\n6. Edit your project's README.md file and point to our [Project Documentation](./ProjectREADME.md)\\\nIf your project has other requirements to run FIRE commands (e.g. does your project also require Node and NVM?), then be sure to also list those in your project's README.md.\n\n# Usage\n\n**With FIRE laucher installed:**\n\nExample:\n\n```\nfire build\n```\n\n**Without the FIRE launcher installed:**\n\nExample:\n```\n./vendor/bin/fire build\n```\n\n## Available commands:\n  - `init`: Triggers a wizard that help you initialize the fire.yml file.\n\n    alias: `i`\n\n  - `env:start`: Starts the local Docker based env (lando, ddev).\n\n    alias: `start`\n\n  - `env:stop`: Stops the local Docker based env (lando, ddev).\n\n    alias: `stop`\n\n  - `env:poweroff`: Stops the local Docker and the proxy based env (lando, ddev).\n\n    alias: `poweroff`\n\n  - `env:switch`: A project can have both environments configured: Lando and DDev, so the \"switch\" command helps you to \"hot swap\" between local dev environments (Lando or DDev).\n\n    alias: `env-switch|switch|sw`\n\n  - `local:build`: Builds your Drupal Site from the scratch.\n\n    Alias: `local-build, build`\n\n    Options:\n\n      `--no-db-import`: Ignores the database import process (Download \u0026 Import).\n\n      `--no-db-download`: Ignores ONLY the DB download, data will be imported from your existing db backup file.\n\n      `-f, --get-files`: Gets the Files from the remote server.\n\n  - `local:build:drush-commands`: Drush Build commands - updb , cr, cim , cr, deploy:hook\n\n      Alias `build-drush`\n\n  - `local:build:js`: Builds Project JS Dependencies (Projects Root).\n\n      Alias: `build-js`\n\n  - `local:build:php`: Builds Project PHP Dependencies.\n\n      Alias: `build-php`\n\n  - `local:build:theme`: Builds Projects theme.\n\n     Alias `build-theme`\n\n  - `local:configure:export`: Exports sites configuration - none interaction required.\n\n      Alias: `configure-export|configure_export|cex`\n\n  - `local:configure:import`: Imports sites configuration - none interaction required.\n\n      Alias: `configure-import|configure_import|cim`\n\n  - `local:composer`: Composer proxy for local envs.\n\n      Alias: `c, composer`\n\n      Arguments:\n\n        `args`: The composer command you would like to execute.\n\n      Usage Example:\n\n        fire composer install\n        fire composer install -- --ignore-platform-reqs\n        fire composer update drupal/core -- -W\n        fire composer require 'drupal/devel:^5.1'\n        fire composer require fourkitchens/fire -- --dev\n\n  - `local:drush`: Drush proxy for local envs.\n\n      Alias: `drush`\n\n      Arguments:\n\n      `args`: drush you would like to execute.\n\n - `local:get-db`: Get the database for local env.\n\n    Alias: `get-db|db-get|getdb|dbget|get_db|db_get|local:db:get|local:get:db`\n\n  - `local:get-files`: Downloads the sites files from the remote source (Pantheon, acquia).\n\n    Alias: `get-files|files-get|getfiles|filesget|get_files|files_get|pull-files|pull_files|local:file:get|local:get:files`\n\n    Options:\n\n     `--no-download`: Reuse your existing files copy in the reference folder and placing them in the files folder (Pantheon only).\n\n  - `local:import-db`: Import database for local envs.\n\n      Alias: `import-db|db-import|importdb|dbimport|import_db|db_import`\n\n  - `local:lint:php`: Runs and configure Phpcs for you local env.\n\n    Alias: `phpcs`\n\n  - `local:setup`: Setups your project from scratch (lando, ddev), all your data will be destroy and rebuild.\n\n    Alias: `setup`\n\n    Options:\n\n      `--no-db-import`: Ignores the database import process (Download \u0026 Import).\n\n      `--no-db-download`: Ignores ONLY the DB download, data will be imported from your existing db backup file.\n\n      `-f, --get-files`: Gets the Files from the remote server.\n\n  - `xdebug:enable`: Configures your local envs Xdebug to work with your prefered Code editor.\n\n    Alias: `xd-en`\n\n  - `vrt:generate-backstop-config`: Creates a basic Backstop.json for you.\n\n    Alias: `vgc`\n\n  - `vrt:init`: Configure your local enviroment from scratch to use VRT testing.\n\n    Alias: `vinit`\n\n  - `vrt:local-env-config`: Alters your local enviroment so you can use backstop.\n\n    Alias: `vlec`\n\n  - `vrt:reference`: Takes new reference screeshots from the reference URL.\n\n    Alias: `vref`\n\n  - `vrt:run`: Runs your VRT testing.\n\n    Alias: `vrun`\n\n  - `vrt:testing-setup`: Setups the Testing and reference sites for VRT testing.\n    Alias: `vts`\n\n  - `command:add`: This command allow you to create a custom command in your project.\n\n    Alias: `ca, cadd`\n\n  - `command:overwrite`: This command allow you to overwrite the default fire command in your project.\n\n    Alias: `co, coverride`\n\n    There are two types of overwrite:\n\n      **1. Partial:** It first runs the original command and then allows you to add new functionality.\n\n      **2. Full:** It replaces all existing code and allows you to write the command from scratch.\n\n    You can also create a new command, just choice the \"Custom\" option at the prompt when it ask you for for the command you want to overwrite, then respond to the questions, now a new command should have been created in the custom path, by default only a task is added to cleans the Drupal cache, but from this file, you can add your custom tasks.\n  \n  - `platform:uli`: This command allows you to generate a one-time login URL for any environment hosted on Pantheon, Acquia, or Platform.sh.\n\n    Alias: `puli`\n\n## Configuration\nInto your project root create a file called: `fire.yml` and iside of it speficify your global project settings.\n\nIf you need to override some of the global settings latter for a specific env you can create `fire.local.yml` and there override as many variables as you want.\n\n#### Configuration variables:\n\n- `local_environment` : **Optional setting**, the system will automatically detected your local env, currently available: ddev, lando.\n\n- `local_fe_theme_name`: **Optional setting**, the system will try to automatically get your theme, but you can always specify the theme you require to use.\n\n- `local_theme_build_script`: NPM script you are using to build your theme.\n\n- `remote_platform`: Your Sites Remote platform. Currently available: pantheon, acquia\n\n- `remote_sitename`: Remote plaform Sites machine name.\n\n- `remote_canonical_env`: Remote platform canonical env (The env to pull files and database from).\n\n\n# Development\n\n- Install the FIRE package from the source.\n```\ncomposer require fourkitchens/fire --dev --prefer-install=source\n```\n\n## Passing Arguments wrapped commands (i.e drush)\nWhen using Fire to run a wrapped command like Drush, you can indeed pass arguments by using a double hyphen (--). This signals that all subsequent parameters should be treated as arguments for the wrapped command. Here's how you can structure it:\n\n`fire drush cex -- -y`\n\n## Dev backgroud\n\nWe are using [Robo](https://robo.li/) as Framework to develop this tool.\n\n- Commmands examples: https://github.com/consolidation/robo/blob/4.x/examples/src/Robo/Plugin/Commands/ExampleCommands.php\n\n- Robo as Framework Documentation: https://robo.li/docs/framework.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffourkitchens%2Ffire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffourkitchens%2Ffire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffourkitchens%2Ffire/lists"}