PHPackages                             phadaphunk/scrippy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. phadaphunk/scrippy

ActiveLibrary[CLI &amp; Console](/categories/cli)

phadaphunk/scrippy
==================

A one-off script manager for Laravel

2.0(1y ago)1014.8k↓10.6%MITPHPPHP ^8.2

Since Feb 1Pushed 1y ago1 watchersCompare

[ Source](https://github.com/phadaphunk/scrippy)[ Packagist](https://packagist.org/packages/phadaphunk/scrippy)[ RSS](/packages/phadaphunk-scrippy/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (3)Versions (13)Used By (0)

[![](https://private-user-images.githubusercontent.com/9636082/408715487-689beb98-7175-4d30-8235-d89c629c0496.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5Nzg2ODUsIm5iZiI6MTc4Mjk3ODM4NSwicGF0aCI6Ii85NjM2MDgyLzQwODcxNTQ4Ny02ODliZWI5OC03MTc1LTRkMzAtODIzNS1kODljNjI5YzA0OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDc0NjI1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YmU4MDMyMjNjYzhjODY5MDIxZmQ2MmMyOTI2YzU4NzMwNDY0ZmE0NGZmMmYzOTM3YmI2ZDJmNWM4MTQ4NTkwNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.ItBUCIGmo3Be32OLvBUtO68QrtrMmDCrK2CtgU02XKk)](https://private-user-images.githubusercontent.com/9636082/408715487-689beb98-7175-4d30-8235-d89c629c0496.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5Nzg2ODUsIm5iZiI6MTc4Mjk3ODM4NSwicGF0aCI6Ii85NjM2MDgyLzQwODcxNTQ4Ny02ODliZWI5OC03MTc1LTRkMzAtODIzNS1kODljNjI5YzA0OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDc0NjI1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YmU4MDMyMjNjYzhjODY5MDIxZmQ2MmMyOTI2YzU4NzMwNDY0ZmE0NGZmMmYzOTM3YmI2ZDJmNWM4MTQ4NTkwNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.ItBUCIGmo3Be32OLvBUtO68QrtrMmDCrK2CtgU02XKk)Scrippy - Laravel One-Off Script Manager
========================================

[](#scrippy---laravel-one-off-script-manager)

Scrippy is a Laravel package that helps you manage one-off scripts across multiple environments. Think of it as migrations, but for scripts that need to run exactly once (or a specific number of times) across your environments.

Basic use case
==============

[](#basic-use-case)

[![](https://private-user-images.githubusercontent.com/9636082/408773168-04d9bb01-1bf7-4025-91d4-433cce7903fb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5Nzg2ODUsIm5iZiI6MTc4Mjk3ODM4NSwicGF0aCI6Ii85NjM2MDgyLzQwODc3MzE2OC0wNGQ5YmIwMS0xYmY3LTQwMjUtOTFkNC00MzNjY2U3OTAzZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDc0NjI1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGQ3MjczZDMyM2ZiNDUzZWJkMTc3MTc2ODk0MmRlNTdjNmJlNWU5ZTAzY2MyZWUwZGM5MGVlMjYzNmI3NTZiYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.SuReJmMlsrLAWATJIg3BJ4xChtwZZiXp9gCZS9w84fY)](https://private-user-images.githubusercontent.com/9636082/408773168-04d9bb01-1bf7-4025-91d4-433cce7903fb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5Nzg2ODUsIm5iZiI6MTc4Mjk3ODM4NSwicGF0aCI6Ii85NjM2MDgyLzQwODc3MzE2OC0wNGQ5YmIwMS0xYmY3LTQwMjUtOTFkNC00MzNjY2U3OTAzZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDc0NjI1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGQ3MjczZDMyM2ZiNDUzZWJkMTc3MTc2ODk0MmRlNTdjNmJlNWU5ZTAzY2MyZWUwZGM5MGVlMjYzNmI3NTZiYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.SuReJmMlsrLAWATJIg3BJ4xChtwZZiXp9gCZS9w84fY)Features
--------

[](#features)

- 🚀 Environment-Aware: Scripts know on which environments they should run
- 🔄 Run Limiting: Limit how many times a script should run
- 📊 Execution Tracking: Keep a trace of when and where scripts ran
- ✔️ Proof Checking: Scripts can prove they ran properly
- 🤖 Auto-Cleanup: Automatically creates PRs to remove completed scripts
- 🔌 Easy Integration: Runs automatically after migrations
- ⚡ Async Execution: Run time-consuming scripts asynchronously via Laravel Queues

Installation
------------

[](#installation)

```
composer require phadaphunk/scrippy

```

Publish the config file
-----------------------

[](#publish-the-config-file)

From there you can control when Scrippy runs, and various options like wether it should cleanup or not. Make sure you check the `github.php` config file if you want automatic cleanups 🧹

```
php artisan vendor:publish

```

Migrate
-------

[](#migrate)

Scrippy adds a single table to keep track of script executions. You can opt-out of it in the configurations if you do not need to keep traces.

```
php artisan migrate

```

Create One-offs
---------------

[](#create-one-offs)

Just create your scripts and let Scrippy do the work

```
php artisan make:scrippy

```

This will create a new script file in `app/Scripts` (or your configured path).

### Defining a Script

[](#defining-a-script)

Scripts extend `Scrippy\Actions\BaseRun`. Here's a basic example:

```
