From 3797f210fdf874a86dad074588e0237796066909 Mon Sep 17 00:00:00 2001 From: hsbmaulana Date: Tue, 13 Dec 2022 15:08:10 +0700 Subject: [PATCH] build(core): initial --- .github/workflows/cd.yml | 17 ++ LICENSE | 21 ++ README.md | 118 +++++++++++ composer.json | 59 ++++++ config/server.php | 157 +++++++++++++++ config/supervisor.php | 100 ++++++++++ config/websockets.php | 102 ++++++++++ src/Concerns/LiveTrait.php | 14 ++ src/Console/Commands/Supervisor.php | 107 ++++++++++ .../Commands/SupervisorReloadCommand.php | 27 +++ .../Commands/SupervisorStartCommand.php | 75 +++++++ .../Commands/SupervisorStartupCommand.php | 49 +++++ .../Commands/SupervisorStatusCommand.php | 24 +++ .../Commands/SupervisorStopCommand.php | 29 +++ src/Helpers/Async.php | 18 ++ src/Helpers/Exec.php | 24 +++ src/Helpers/Spawn.php | 58 ++++++ src/Helpers/setImmediate.php | 17 ++ src/Helpers/setInterval.php | 17 ++ src/Providers/SupervisorServiceProvider.php | 106 ++++++++++ src/Supervisor/StateFile.php | 184 ++++++++++++++++++ 21 files changed, 1323 insertions(+) create mode 100644 .github/workflows/cd.yml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 composer.json create mode 100644 config/server.php create mode 100644 config/supervisor.php create mode 100644 config/websockets.php create mode 100644 src/Concerns/LiveTrait.php create mode 100644 src/Console/Commands/Supervisor.php create mode 100644 src/Console/Commands/SupervisorReloadCommand.php create mode 100644 src/Console/Commands/SupervisorStartCommand.php create mode 100644 src/Console/Commands/SupervisorStartupCommand.php create mode 100644 src/Console/Commands/SupervisorStatusCommand.php create mode 100644 src/Console/Commands/SupervisorStopCommand.php create mode 100644 src/Helpers/Async.php create mode 100644 src/Helpers/Exec.php create mode 100644 src/Helpers/Spawn.php create mode 100644 src/Helpers/setImmediate.php create mode 100644 src/Helpers/setInterval.php create mode 100644 src/Providers/SupervisorServiceProvider.php create mode 100644 src/Supervisor/StateFile.php diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000..970c0ec --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,17 @@ +name: Laravel.php Supervisor + +on: push + +jobs: + cd: + runs-on: ubuntu-latest + steps: + - name: cd + uses: tripteki/cd-package@1.0.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + repotoken: ${{ secrets.REPOSITORY_TOKEN }} + repouser: tripteki + repository: https://packagist.org + language: php + artifact: composer.json \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..061b3a5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Trip Teknologi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..08cd23e --- /dev/null +++ b/README.md @@ -0,0 +1,118 @@ +

Supervisor

+ +This package provides *supervisor-like*, *async-like*, *child-process-like*, etc to build event-listener driven with little painless for your Laravel Project. + +Getting Started +--- + +Installation : + +``` +$ composer require tripteki/laravelphp-supervisor +``` + +``` +$ npm install pm2 && npm install --save-dev chokidar +``` + +``` +$ pecl install swoole +``` + +How to use : + +- Publish config file into your project's directory with running : + +``` +php artisan vendor:publish --tag=tripteki-laravelphp-supervisor +``` + +Usage +--- + +`php artisan supervisor: