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. phadaphunk/scrippy

ActiveLibrary

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

A one-off script manager for Laravel

2.0(1y ago)1012.4k↓38.9%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 1mo 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzNDQyMjAsIm5iZiI6MTc3NTM0MzkyMCwicGF0aCI6Ii85NjM2MDgyLzQwODcxNTQ4Ny02ODliZWI5OC03MTc1LTRkMzAtODIzNS1kODljNjI5YzA0OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMjMwNTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZmM3NWFiYmZmMTMzODE1NDgyMDQ0YTZkOGYyYTAxZDJmN2IwYzBmYTUyMzQ1NDYxY2Y1YmY4YTI4MDYwNDgyNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Bi3ZJ-FXBsp0B_n-W6_SvT9Hb1JjP-mcSYfMAYlms5c)](https://private-user-images.githubusercontent.com/9636082/408715487-689beb98-7175-4d30-8235-d89c629c0496.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzNDQyMjAsIm5iZiI6MTc3NTM0MzkyMCwicGF0aCI6Ii85NjM2MDgyLzQwODcxNTQ4Ny02ODliZWI5OC03MTc1LTRkMzAtODIzNS1kODljNjI5YzA0OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMjMwNTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZmM3NWFiYmZmMTMzODE1NDgyMDQ0YTZkOGYyYTAxZDJmN2IwYzBmYTUyMzQ1NDYxY2Y1YmY4YTI4MDYwNDgyNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Bi3ZJ-FXBsp0B_n-W6_SvT9Hb1JjP-mcSYfMAYlms5c)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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzNDQyMjAsIm5iZiI6MTc3NTM0MzkyMCwicGF0aCI6Ii85NjM2MDgyLzQwODc3MzE2OC0wNGQ5YmIwMS0xYmY3LTQwMjUtOTFkNC00MzNjY2U3OTAzZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMjMwNTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTY5ZjQ5N2ZmMzhlNTdhODdhZTRiODBmZGU3ODU4ZmNlNjE1OGZhYzM0MTE0OTFlNDJiYjQ1NDE4MmIwNTdhNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.HTk38CWfP0RKTKPPj3Va2RzyGE7e1Gu-yx2t09rLMf0)](https://private-user-images.githubusercontent.com/9636082/408773168-04d9bb01-1bf7-4025-91d4-433cce7903fb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzNDQyMjAsIm5iZiI6MTc3NTM0MzkyMCwicGF0aCI6Ii85NjM2MDgyLzQwODc3MzE2OC0wNGQ5YmIwMS0xYmY3LTQwMjUtOTFkNC00MzNjY2U3OTAzZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMjMwNTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTY5ZjQ5N2ZmMzhlNTdhODdhZTRiODBmZGU3ODU4ZmNlNjE1OGZhYzM0MTE0OTFlNDJiYjQ1NDE4MmIwNTdhNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.HTk38CWfP0RKTKPPj3Va2RzyGE7e1Gu-yx2t09rLMf0)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:

```
