#!/usr/bin/env php "); writeln("Namespace : {$vendorNamespace}\\{$className}"); writeln("Class name : {$className}"); writeln('------'); writeln('This script will replace the above values in all relevant files in the project directory.'); if (! confirm('Modify files?', true)) { exit(1); } $files = (str_starts_with(strtoupper(PHP_OS), 'WIN') ? replaceForWindows() : replaceForAllOtherOSes()); foreach ($files as $file) { replace_in_file($file, [ 'Maik Mueller' => $authorName, 'moltox' => $authorUsername, 'author@domain.com' => $authorEmail, 'moltox' => $vendorName, ':vendor_slug' => $vendorSlug, 'VendorName' => $vendorNamespace, 'column-multi-filter' => $packageName, ':package_slug' => $packageSlug, 'ColumnMultiFilter' => $className, 'column-multi-filter' => $packageSlug, 'Filters multiple columns' => $description, ]); match (true) { str_contains($file, 'src/ColumnMultiFilter.php') => rename($file, './src/' . $className . '.php'), str_contains($file, 'src/ColumnMultiFilterServiceProvider.php') => rename($file, './src/' . $className . 'ServiceProvider.php'), str_contains($file, 'src/ColumnMultiFilterFacade.php') => rename($file, './src/' . $className . 'Facade.php'), str_contains($file, 'src/Commands/ColumnMultiFilterCommand.php') => rename($file, './src/Commands/' . $className . 'Command.php'), str_contains($file, 'database/migrations/create_column_multi_filter_table.php.stub') => rename($file, './database/migrations/create_' . $packageSlugWithoutPrefix . '_table.php.stub'), str_contains($file, 'config/column-multi-filter.php') => rename($file, './config/' . $packageSlugWithoutPrefix . '.php'), default => [], }; } confirm('Execute `composer install` and run tests?') && run('composer install && composer test'); confirm('Let this script delete itself?', true) && unlink(__FILE__);