{"id":26057706,"url":"https://github.com/feenkcom/gtoolkit-external-process","last_synced_at":"2025-09-07T17:40:59.926Z","repository":{"id":41416015,"uuid":"414620521","full_name":"feenkcom/gtoolkit-external-process","owner":"feenkcom","description":"A Pharo library for cross-platform running of external commands and getting their output.","archived":false,"fork":false,"pushed_at":"2025-02-21T10:54:48.000Z","size":141,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-02-21T11:44:17.202Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","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/feenkcom.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":"2021-10-07T13:50:46.000Z","updated_at":"2025-01-14T14:09:18.000Z","dependencies_parsed_at":"2024-01-02T13:47:22.309Z","dependency_job_id":"8e4a04b2-1027-4c5c-9af6-0816d717d684","html_url":"https://github.com/feenkcom/gtoolkit-external-process","commit_stats":null,"previous_names":[],"tags_count":127,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fgtoolkit-external-process","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fgtoolkit-external-process/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fgtoolkit-external-process/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fgtoolkit-external-process/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feenkcom","download_url":"https://codeload.github.com/feenkcom/gtoolkit-external-process/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242546038,"owners_count":20147096,"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-03-08T11:58:28.802Z","updated_at":"2025-03-08T11:58:29.399Z","avatar_url":"https://github.com/feenkcom.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gtoolkit-external-process\nA Pharo library for cross-platform running of external commands and getting their output.\n\n## Supported platforms:\nLinux, Windows, MacOS\n\n## How to load\n\nCompile or download a released shared library for your platform from https://github.com/feenkcom/libprocess/releases and place it in the same folder as `GlamorousToolkit.image` or in the corresponding libraries folder inside of the `GlamorousToolkit` app.\n\n```smalltalk\nMetacello new\n   baseline: 'GToolkitExternalProcess';\n   repository: 'github://feenkcom/gtoolkit-external-process:main/src';\n   load.\n```\n\n## Usage\n\n### Synchronous output\nCreate an external command with a builder and spawn a child process or wait for the output. Then get the output status, stdout or stderr:\n\n```smalltalk\noutput := GtExternalProcessBuilder new\n   command: 'ls';\n   arg: '-la';\n   output.\n\t\noutput stdoutString\n```\n\n### Buffered non-blocking IO\n\nPipe the stdout or stderr and poll regularly from an asynchronousStdout:\n\n```smalltalk\nchild := GtExternalProcessBuilder new\n   command: 'ping';\n   arg: 'google.com';\n   pipeStdout;\n   spawn.\n\nchild asynchronousStdout\n   pollStringEvery: 1 second\n   do: [ :aString | aString trace ].\n\n\"kill when done\"\nchild kill.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeenkcom%2Fgtoolkit-external-process","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeenkcom%2Fgtoolkit-external-process","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeenkcom%2Fgtoolkit-external-process/lists"}