{"id":26965428,"url":"https://github.com/joezeo/termdot","last_synced_at":"2025-04-03T07:21:14.271Z","repository":{"id":282427596,"uuid":"948476011","full_name":"Joezeo/termdot","owner":"Joezeo","description":"Terminal style external command executor for Godot.","archived":false,"fork":false,"pushed_at":"2025-04-02T15:35:35.000Z","size":53303,"stargazers_count":25,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T16:37:05.652Z","etag":null,"topics":["command-execution","console","godot","godot-engine","godot-plugin","terminal"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/Joezeo.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":"2025-03-14T12:04:19.000Z","updated_at":"2025-04-02T15:35:39.000Z","dependencies_parsed_at":"2025-04-02T16:38:59.452Z","dependency_job_id":null,"html_url":"https://github.com/Joezeo/termdot","commit_stats":null,"previous_names":["joezeo/termdot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joezeo%2Ftermdot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joezeo%2Ftermdot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joezeo%2Ftermdot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joezeo%2Ftermdot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Joezeo","download_url":"https://codeload.github.com/Joezeo/termdot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246952415,"owners_count":20859833,"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":["command-execution","console","godot","godot-engine","godot-plugin","terminal"],"created_at":"2025-04-03T07:21:13.470Z","updated_at":"2025-04-03T07:21:14.255Z","avatar_url":"https://github.com/Joezeo.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e Termdot \u003c/h1\u003e\n\n\u003cdiv align=\"center\" \u003e\n\n![Language](https://img.shields.io/badge/Language-Rust-FFF7E9) ![License](https://img.shields.io/badge/License-MIT-B9E0FF) ![Support](https://img.shields.io/badge/Support-Windows-CD97F9)\n\n\u003c/div\u003e\n\nTerminal style external command executor for Godot.\n\nSupports control characters and escape sequences of XTerm, VT102.\n\n![Termdot Display](src/resources/termdot_display.gif)\n\n\u003c!-- ![Termdot Image](src/resources/termdot.png) --\u003e\n\n## Features\n\n- Terminal-style command execution within Godot.\n- Commands history cache, auto command completion.\n- Supports formatted text output with ANSI-style escape sequences.\n- Enables command scripting with execution status handling.\n- Designed for extensibility and integration into existing projects.\n- Additional log output viewing window.\n\n## Usage\n\n### Installation\n\n1. Copy the `addons/termdot` folder into your project's `addons` directory.\n2. In your scene, add a `Termdot` node. This is the main control node for the plugin.\n3. Under the `Termdot` node, add `Command` nodes (each `Command` node must be a child of `Termdot`).\n4. Write your own command scripts to define behavior.\n\n### Creating a Command Script\n\nExample `Command.gd`:\n\n```gdscript\nextends Command\n\n# This method is executed when the command is detected.\n# The command is trimmed by spaces, and parameters are passed as `params`.\nfunc _start(params: Array[String]) -\u003e int:\n    # Return values:\n    # ExecuteStatus.DONE\n    # ExecuteStatus.RUNNING\n\n# This method executes when `_start()` returns `ExecuteStatus.RUNNING` and continues\n# running until `_running()` itself returns `ExecuteStatus.DONE`.\nfunc _running() -\u003e int:\n    var text = AnsiString.new().background_rgb(112, 112, 112).foreground_256(3).italic().append(\"Hello World\").de_italic().clear_style().append(\"\\r\\nHello You\\r\\n\")\n\n    # This will print `text` to the terminal. `text` is a special string that can contain\n    # control characters and escape sequences for stylized output and cursor control.\n    echo(text)\n\n    # Return values:\n    # ExecuteStatus.DONE\n    # ExecuteStatus.RUNNING\n```\n\n## Builtin Functions\n\n| Key              | Function                                       |\n| ---------------- | ---------------------------------------------- |\n| ↑ / ↓            | History commands select.                       |\n| Tab              | Commands list, auto completion.                |\n| Control + C      | Interrupt current running command.             |\n| Control + Insert | Copy selected text to clipboard from terminal. |\n| Shift + Insert   | Paste text from clipboard to terminal.         |\n\n| Command | Function                                                                    |\n| ------- | --------------------------------------------------------------------------- |\n| version | Show current Termdot version.                                               |\n| cls     | Clear entire screen.                                                        |\n| log     | Display logs recorded by Termdot.log(), Termdot.warn(), and Termdot.error() |\n\n## License\n\n[MIT license](LICENSE) © Joe Zane\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoezeo%2Ftermdot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoezeo%2Ftermdot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoezeo%2Ftermdot/lists"}