{"id":13902945,"url":"https://github.com/angelmadames/dems-cli","last_synced_at":"2025-04-22T12:10:46.577Z","repository":{"id":230909204,"uuid":"746948748","full_name":"angelmadames/dems-cli","owner":"angelmadames","description":"DEMS (Development Environment Management System) CLI Made with Bun and Commander.js.","archived":false,"fork":false,"pushed_at":"2025-02-26T14:58:38.000Z","size":320,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-02T10:32:02.067Z","etag":null,"topics":["bun","cli","commander","dems","tool"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/angelmadames.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-23T00:39:05.000Z","updated_at":"2024-11-21T01:34:10.000Z","dependencies_parsed_at":"2024-05-30T03:01:40.718Z","dependency_job_id":"5ae119d9-19ee-4d43-992b-4038ff7e9c35","html_url":"https://github.com/angelmadames/dems-cli","commit_stats":null,"previous_names":["angelmadames/dems-cli"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelmadames%2Fdems-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelmadames%2Fdems-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelmadames%2Fdems-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelmadames%2Fdems-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angelmadames","download_url":"https://codeload.github.com/angelmadames/dems-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250237832,"owners_count":21397401,"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":["bun","cli","commander","dems","tool"],"created_at":"2024-08-06T22:01:30.914Z","updated_at":"2025-04-22T12:10:46.535Z","avatar_url":"https://github.com/angelmadames.png","language":"TypeScript","funding_links":[],"categories":["cli"],"sub_categories":[],"readme":"\u003c!-- omit in toc --\u003e\n# Development Environment Management System (DEMS)\n\n[![🧪 Tests](https://github.com/angelmadames/dems-cli/actions/workflows/tests.yml/badge.svg)](https://github.com/angelmadames/dems-cli/actions/workflows/tests.yml)\n\n\u003c!-- omit in toc --\u003e\n## Contents\n\n- [🗒️ Overview](#️-overview)\n- [🔧 Setup](#-setup)\n- [🖍️ Style](#️-style)\n- [🏗️ Structure](#️-structure)\n  - [🟢 Commands](#-commands)\n  - [🔵 Config](#-config)\n  - [🟠 Utils](#-utils)\n\n## 🗒️ Overview\n\nDEMS is a generic CLI tool meant to assist teams to quickly get from onboarding\nto coding by automating the initialization process of an application (git clone,\ndeps install, provisioning of required services like databases or mail servers)\nusing Docker.\n\nDEMS is made with [Bun], [TypeScript] and [Commander.js].\n\n## 🔧 Setup\n\nTo install dependencies:\n\n```shell\nbun install\n```\n\nTo run:\n\n```shell\n./cli.ts --help\n```\n\n## 🖍️ Style\n\nOur chosen format and lint tool is [Biome]. For more information about our\npreset and custom rules configuration, see the [biome.json](./biome.json)\nfile.\n\n## 🏗️ Structure\n\nThe current version of DEMS in this repository is a modern adaptation of an internal\ntool with the same name that I made for [gbh.tech]. The original version was made\npurely with Bash scripts, which is the main motivation for this newer version, to\nextend its capabilities with a rich ecosystem and make it more accesible to developers.\n\nThe structure of DEMS is simple: it has **commands** ([/src/commands](./src//commands/)),\nand those commands depend on **utilities** ([/src/utils](./src/utils/)) and **config\nfiles** ([/src/config](./src/config/)).\n\n### 🟢 Commands\n\nAs you'd expect, `commands` are the protagonists of DEMS. They assist the software engineer\nin the various tasks needed to setup a local project and start working on it.\n\nCommands are instances of the Command class provided by [Commander.js], which are then\nadded to the main `cli` Command object in the [./cli.ts](./cli.ts) file with `addCommand()`.\n\n\u003e 💡 Execute `dems --help` to check all available commands.\n\n### 🔵 Config\n\nThe DEMS Config is split into three (3) different contexts found in two different files: [./src/config/cli.ts](./src/config//cli.ts) and [./src/config/dems.ts](./src/config//dems.ts).\n\n- **CLI**: modifies the behavior of the CLI tool, without affecting any specific project.\n- **DEMS**: defines the configuration directives of DEMS for every project, in the form of a `config.json` file.\n- **Environment**: defines the blogal environment variables of DEMS that can affect all other configurations (all env vars start with a prefix `DEMS_` to avoid conflicts).\n\n### 🟠 Utils\n\nThe Utils are simply re-usable functions that assist commands, they can go from simple things\nlike normalizing a string, to more complex tags like generating a .env file from the config.json\nof the project or generating parameter for Docker Compose.\n\nFor more information, check the [./src/utils](./src//utils/) directory.\n\n\u003c!-- References --\u003e\n[Bun]: https://bun.sh\n[TypeScript]: https://www.typescriptlang.org\n[Commander.js]: https://github.com/tj/commander.js\n[Biome]: https://biomejs.dev\n[gbh.tech]: https://gbh.tech\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangelmadames%2Fdems-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangelmadames%2Fdems-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangelmadames%2Fdems-cli/lists"}