{"id":13550999,"url":"https://github.com/IcaliaLabs/plis","last_synced_at":"2025-04-03T01:30:52.374Z","repository":{"id":57613602,"uuid":"55877371","full_name":"IcaliaLabs/plis","owner":"IcaliaLabs","description":"Automated development tasks asked nicely","archived":false,"fork":false,"pushed_at":"2019-05-09T23:32:11.000Z","size":37,"stargazers_count":40,"open_issues_count":8,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-03T21:33:55.515Z","etag":null,"topics":["development","docker","fig","macros","productivity-booster"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IcaliaLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-10T02:42:40.000Z","updated_at":"2024-04-25T19:05:25.000Z","dependencies_parsed_at":"2022-09-05T17:41:06.571Z","dependency_job_id":null,"html_url":"https://github.com/IcaliaLabs/plis","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcaliaLabs%2Fplis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcaliaLabs%2Fplis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcaliaLabs%2Fplis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcaliaLabs%2Fplis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IcaliaLabs","download_url":"https://codeload.github.com/IcaliaLabs/plis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246921968,"owners_count":20855339,"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":["development","docker","fig","macros","productivity-booster"],"created_at":"2024-08-01T12:01:40.963Z","updated_at":"2025-04-03T01:30:50.694Z","avatar_url":"https://github.com/IcaliaLabs.png","language":"Go","funding_links":[],"categories":["Go","docker"],"sub_categories":[],"readme":"[![Code Climate](https://codeclimate.com/repos/5713cd028daddd007c000a55/badges/23a412d4ad98ff7d79c6/gpa.svg)](https://codeclimate.com/repos/5713cd028daddd007c000a55/feed)\n[![Test Coverage](https://codeclimate.com/repos/5713cd028daddd007c000a55/badges/23a412d4ad98ff7d79c6/coverage.svg)](https://codeclimate.com/repos/5713cd028daddd007c000a55/coverage)\n[![Issue Count](https://codeclimate.com/repos/5713cd028daddd007c000a55/badges/23a412d4ad98ff7d79c6/issue_count.svg)](https://codeclimate.com/repos/5713cd028daddd007c000a55/feed)\n![Made with Love by Icalia Labs](https://img.shields.io/badge/With%20love%20by-Icalia%20Labs-ff3434.svg)\n\n# Plis\n\nHelps your development process with Docker Compose by asking nicely :)\n\n## Install\n\nOn macOS, install it via Homebrew:\n\n```\nbrew tap icalialabs/formulae\nbrew install plis\n```\n\nOn other systems you can:\n\n * Download the executable for your system from the\n[Releases Page](https://github.com/IcaliaLabs/plis/releases)\n * Place it on any of the paths reachable in $PATH\n\n## Special behaviors:\n* `plis start [services-optional]`: Starts a docker-compose project, with the following extra functionality:\n  * If some or all of the requested project's containers are missing, issues a `docker-compose up -d` command.\n  * If all of the requested project's containers are present, issues a `docker-compose start` command.\n* `plis attach [service_name]`: It figures out the given service's container, and attaches the console to it.\n* `plis run [service_name] [command]`: It runs the given command:\n  * If there's a running container for the given service, it executes it issuing a `docker exec -ti` command.\n  * If there are no running containers for the given service, it executes it issuing a `docker-compose run --rm` command.\n\n```bash\n\n# Start a docker-compose project:\nplis start\n\n# Restart a service:\nplis restart web\n\n# Attach the console to a service:\nplis attach web\n\n# Run a command on an existing or new container:\nplis run web rails c\n\n# Stop a service:\nplis stop web\n\n```\n\n## TODO's:\n- [x] `build` command to invoke the docker-compose build command.\n- [x] Split up the big `plis.go` file.\n- [x] `check context` command to list the files that will pass to the Docker build context.\n- [ ] `start` command with just one service should attach to the container immediately. (i.e.: `plis start web` starts a rails web container and attaches to it, mimicking the behavior of running `rails server` on the host)\n- [ ] Change the `run` command to use `docker-compose exec` instead of `docker exec` whenever a running container is already available.\n- [ ] Copy (from existing templates/examples) or generate blank dotenv files referenced in the Compose file.\n- [ ] Install Docker (for Mac/Windows or native for Linux) if it is missing.\n- [ ] Make `plis start github.com/some_org/some_dockerized_app` clone the project and run it.\n- [ ] `upgrade` command that upgrades `plis` to the newest version.\n- [ ] `prune` command to invoke `docker system prune`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIcaliaLabs%2Fplis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIcaliaLabs%2Fplis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIcaliaLabs%2Fplis/lists"}