feat: added install script

This commit is contained in:
mathiaspalmqvist committed 2026-01-03 15:01:11 +01:00
1 parent 630620e4e6
commit 448ac3e4cf
3 files changed
+129

No files matched your search

+23
View File
@@ -3,7 +3,9 @@
namespace Mattitja\Analytics;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\ServiceProvider;
use Mattitja\Analytics\Console\InstallCommand;
use Mattitja\Analytics\Middleware\AnalyticsMiddleware;
use Mattitja\Analytics\Services\AnalyticsClient;
@@ -33,7 +35,14 @@ class AnalyticsServiceProvider extends ServiceProvider
__DIR__.'/../config/mattitja-analytics.php' => config_path('mattitja-analytics.php'),
], 'mattitja-analytics-config');
if ($this->app->runningInConsole()) {
$this->commands([
InstallCommand::class,
]);
}
$this->registerMiddleware();
$this->warnIfSiteKeyMissing();
}
/**
@@ -46,4 +55,18 @@ class AnalyticsServiceProvider extends ServiceProvider
$router->aliasMiddleware('mattitja-analytics', AnalyticsMiddleware::class);
$router->pushMiddlewareToGroup('web', AnalyticsMiddleware::class);
}
/**
* Log a warning if site_key is not configured.
*/
private function warnIfSiteKeyMissing(): void
{
if ($this->app->runningInConsole()) {
return;
}
if (empty(config('mattitja-analytics.site_key'))) {
Log::warning('Mattitja Analytics: site_key is not configured. Add MATTITJA_ANALYTICS_SITE_KEY to your .env file.');
}
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace Mattitja\Analytics\Console;
use Illuminate\Console\Command;
class InstallCommand extends Command
{
protected $signature = 'mattitja:install';
protected $description = 'Install Mattitja Analytics package';
public function handle(): int
{
$this->call('vendor:publish', [
'--tag' => 'mattitja-analytics-config',
]);
$this->addEnvVariable();
$this->components->info('Mattitja Analytics installed successfully!');
$this->components->warn('Add your site key to .env: MATTITJA_ANALYTICS_SITE_KEY=your-key');
return Command::SUCCESS;
}
private function addEnvVariable(): void
{
$envPath = base_path('.env');
if (! file_exists($envPath)) {
return;
}
$envContent = file_get_contents($envPath);
if (! str_contains($envContent, 'MATTITJA_ANALYTICS_SITE_KEY')) {
file_put_contents($envPath, $envContent."\nMATTITJA_ANALYTICS_SITE_KEY=\n");
}
}
}