{"id":20723313,"url":"https://github.com/jeamon/gostream","last_synced_at":"2026-05-06T19:36:07.153Z","repository":{"id":152279747,"uuid":"398916103","full_name":"jeamon/gostream","owner":"jeamon","description":"A go-based cross-platform commands executor which load commands from shell or multi-formatted files (json, yaml ,toml) and multi-stream the output to many destinations (files and terminal) with the posibility of adding an execution timeout.","archived":false,"fork":false,"pushed_at":"2023-10-24T22:23:00.000Z","size":60,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-17T23:17:27.924Z","etag":null,"topics":["executor","go","linux-shell","multiprocessing","shell","streaming","windows"],"latest_commit_sha":null,"homepage":"https://learn.cloudmentor-scale.com","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/jeamon.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}},"created_at":"2021-08-22T22:45:25.000Z","updated_at":"2023-10-24T22:14:34.000Z","dependencies_parsed_at":"2023-08-10T00:06:46.882Z","dependency_job_id":"5aa31671-c888-4f60-9c84-59b8aac03a3d","html_url":"https://github.com/jeamon/gostream","commit_stats":null,"previous_names":["jeamon/cli-streamer","jeamon/gostream"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeamon%2Fgostream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeamon%2Fgostream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeamon%2Fgostream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeamon%2Fgostream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeamon","download_url":"https://codeload.github.com/jeamon/gostream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242997796,"owners_count":20219230,"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":["executor","go","linux-shell","multiprocessing","shell","streaming","windows"],"created_at":"2024-11-17T04:08:16.963Z","updated_at":"2025-12-06T19:02:16.470Z","avatar_url":"https://github.com/jeamon.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gostream\n\nSimple \u0026 light Go-based cross-platform tool to execute commands from shell and from different types (json, yaml, toml) of files with the capabilities of multi-streaming each output to multiple \u0026 different destinations files including the standard console with the option to define an execution timeout value for each command.\n\n\n\n## Table of contents\n* [Description](#description)\n* [Setup](#setup)\n* [Usage](#usage)\n* [Upcomings](#upcomings)\n* [Contribution](#contribution)\n* [License](#license)\n\n\n## Description\n\nVery simple. Please have a look at the [usage section](#usage) for examples.\nThis tool can be integrated into an automated script for more capabilities.\n\n\n## Setup\n\nOn Windows, Linux macOS, and FreeBSD you will be able to download the pre-built binaries once available.\nIf your system has [Go even \u003c 1.7](https://golang.org/dl/) you can pull the codebase and build from the source.\n\n```\n# build the gostream program on windows\ngit clone https://github.com/jeamon/gostream.git \u0026\u0026 cd gostream\ngo build -o gostream.exe gostream.go\n\n# build the gostream program on linux and others\ngit clone https://github.com/jeamon/gostream.git \u0026\u0026 cd gostream\ngo build -o gostream gostream.go\n```\n\n\n## Usage\n\n\n```Usage:\n    \nOption: define single task from shell\n\n    gostream [-task \u003cquoted-command-to-execute\u003e] [-timeout \u003cexecution-deadline-in-seconds\u003e] [-files \u003cfilenames-to-stream-output\u003e] [-save] [-console]\n\nOption: define multiple tasks from files\n\n    gostream [-taskFile \"xfile zfile morefiles\"]\n    gostream [-taskJson \"xfile.json zfile.json more.json\"]\n    gostream [-taskYaml \"xfile.yaml zfile.yaml more.yaml\"]\n    gostream [-taskToml \"xfile.toml zfile.toml more.toml\"]\n\nSubcommands:\n    version    Display the current version of this tool.\n    help       Display the help - how to use this tool.\n\n\nOptions:\n    -task      Specify the command with its arguments to run in quoted format.\n    -timeout   Specify the number of seconds to allow the task to be running.\n    -files     Specify all filenames to stream the output of the execution.\n    -save      If present then execution output must also be saved in daily file.\n    -console   If present then execution output will also be displayed on terminal.\n    -tasksFile Load commands from the provided file (see \"example.file\" content).\n    -tasksJson Load commands from the provided json file (see \"example.json\" content).\n    -tasksToml Load commands from the provided toml file (see \"example.toml\" content).\n    -tasksYaml Load commands from the provided yaml file (see \"example.yaml\" content).\n    \n\nArguments:\n    quoted-command-to-execute      complete command to execute from the shell.\n    execution-deadline-in-seconds  number of seconds to have the task running.\n    filenames-to-stream-output     space separed filenames where to stream output.\n\nUsing the shell option, you must provide at least one mandatory argument value [-task].\nThe list of files to stream the output must be in one word and space separed. To have\nthe output be saved into a daily filename pattern outputs.\u003cyear\u003e\u003cmonth\u003e\u003cday\u003e,\njust add -save flag when launching the program. Use options which support filenames\ninput if needed to run multiple tasks in parallel. Upcoming version will add capabilities\nto mention multiple tasks (with its their own attributes) from the shell.\nIn the meantime please see below examples for current version 1.0 :\n\n\nExamples:\n\n    Option: single command execution\n    \n    $ gostream -task \"netstat -n 2 | findstr ESTAB\" -timeout 180 -files \"a.txt b.txt\" -save\n    $ gostream -task \"ping 127.0.0.1 -t\" -timeout 3600 -files \"ping.txt\" --console\n    $ gostream -task \"journalctl -f | grep \u003cxx\u003e\" -timeout 120 -files \"proclog.txt\" --save\n    $ gostream -task \"tail -f /var/log/syslog\" -timeout 3600 -files \"syslog.txt\"\n\n    Option: multiple commands from file(s)\n    \n    $ gostream -tasksFile \"tasks.txt others.file\"\n\n    Option: multiple commands from json file(s)\n    \n    $ gostream -tasksJson \"tasks.json more.json\"\n\n    Option: multiple commands from toml file(s)\n    \n    $ gostream -tasksToml \"tasks.toml others.toml\"\n\n    Option: multiple commands from yaml file(s)\n    \n    $ gostream -tasksYaml \"tasks.yaml more.yaml\"\n\t\n```\n\n\n## Upcomings\n\n* add capabilities to load mutiple commands fully defined from env variables.\n* add capabilities to specify outputs display interval and for which commands.\n* add capabilities to uniquely color each command outputs when displayed.\n* add capabilities to pause \u0026 restart or stop output display on the terminal.\n\n\n## Contribution\n\nPull requests are welcome. However, I would be glad to be contacted for discussion before.\n\n\n## License\n\nplease check \u0026 read [the license details](https://github.com/jeamon/gostream/blob/master/LICENSE) or [reach out to me](https://blog.cloudmentor-scale.com/contact) before any action.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeamon%2Fgostream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeamon%2Fgostream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeamon%2Fgostream/lists"}