1. **Docker-Compose für Entwicklung optimieren** 2. **Umgebungsvariablen für lokale Entwicklung** 3. **Service-Abhängigkeiten** 4. **Docker-Compose für Produktion** 5. **Dokumentation**
542 lines
26 KiB
Bash
Executable File
542 lines
26 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Migration script for Meldestelle Project
|
|
# This script implements the migration plan as described in docs/migration-plan.md
|
|
|
|
set -e # Exit on error
|
|
echo "Starting migration process..."
|
|
|
|
# Function to create directory if it doesn't exist
|
|
create_dir() {
|
|
if [ ! -d "$1" ]; then
|
|
mkdir -p "$1"
|
|
echo "Created directory: $1"
|
|
fi
|
|
}
|
|
|
|
# Function to copy file and update package
|
|
copy_and_update() {
|
|
local src="$1"
|
|
local dest="$2"
|
|
local old_pkg="$3"
|
|
local new_pkg="$4"
|
|
|
|
if [ ! -f "$src" ]; then
|
|
echo "Warning: Source file not found: $src"
|
|
return
|
|
fi
|
|
|
|
# Create destination directory
|
|
create_dir "$(dirname "$dest")"
|
|
|
|
# Copy file
|
|
cp "$src" "$dest"
|
|
echo "Copied: $src -> $dest"
|
|
|
|
# Update package declaration if provided
|
|
if [ -n "$old_pkg" ] && [ -n "$new_pkg" ]; then
|
|
sed -i "s/package $old_pkg/package $new_pkg/" "$dest"
|
|
echo "Updated package: $old_pkg -> $new_pkg in $dest"
|
|
fi
|
|
}
|
|
|
|
echo "1. Migrating Shared-Kernel to Core Modules"
|
|
|
|
# Core-Domain
|
|
copy_and_update "shared-kernel/src/commonMain/kotlin/at/mocode/dto/base/BaseDto.kt" \
|
|
"core/core-domain/src/main/kotlin/at/mocode/core/domain/model/BaseDto.kt" \
|
|
"at.mocode.dto.base" \
|
|
"at.mocode.core.domain.model"
|
|
|
|
copy_and_update "shared-kernel/src/commonMain/kotlin/at/mocode/enums/Enums.kt" \
|
|
"core/core-domain/src/main/kotlin/at/mocode/core/domain/model/Enums.kt" \
|
|
"at.mocode.enums" \
|
|
"at.mocode.core.domain.model"
|
|
|
|
# Core-Utils
|
|
copy_and_update "shared-kernel/src/commonMain/kotlin/at/mocode/serializers/Serialization.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/serialization/Serialization.kt" \
|
|
"at.mocode.serializers" \
|
|
"at.mocode.core.utils.serialization"
|
|
|
|
copy_and_update "shared-kernel/src/commonMain/kotlin/at/mocode/validation/ApiValidationUtils.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/validation/ApiValidationUtils.kt" \
|
|
"at.mocode.validation" \
|
|
"at.mocode.core.utils.validation"
|
|
|
|
copy_and_update "shared-kernel/src/commonMain/kotlin/at/mocode/validation/ValidationResult.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/validation/ValidationResult.kt" \
|
|
"at.mocode.validation" \
|
|
"at.mocode.core.utils.validation"
|
|
|
|
copy_and_update "shared-kernel/src/commonMain/kotlin/at/mocode/validation/ValidationUtils.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/validation/ValidationUtils.kt" \
|
|
"at.mocode.validation" \
|
|
"at.mocode.core.utils.validation"
|
|
|
|
copy_and_update "shared-kernel/src/jvmMain/kotlin/at/mocode/shared/config/AppConfig.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/config/AppConfig.kt" \
|
|
"at.mocode.shared.config" \
|
|
"at.mocode.core.utils.config"
|
|
|
|
copy_and_update "shared-kernel/src/jvmMain/kotlin/at/mocode/shared/config/AppEnvironment.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/config/AppEnvironment.kt" \
|
|
"at.mocode.shared.config" \
|
|
"at.mocode.core.utils.config"
|
|
|
|
copy_and_update "shared-kernel/src/jvmMain/kotlin/at/mocode/shared/database/DatabaseConfig.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/database/DatabaseConfig.kt" \
|
|
"at.mocode.shared.database" \
|
|
"at.mocode.core.utils.database"
|
|
|
|
copy_and_update "shared-kernel/src/jvmMain/kotlin/at/mocode/shared/database/DatabaseFactory.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/database/DatabaseFactory.kt" \
|
|
"at.mocode.shared.database" \
|
|
"at.mocode.core.utils.database"
|
|
|
|
copy_and_update "shared-kernel/src/jvmMain/kotlin/at/mocode/shared/database/DatabaseMigrator.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/database/DatabaseMigrator.kt" \
|
|
"at.mocode.shared.database" \
|
|
"at.mocode.core.utils.database"
|
|
|
|
copy_and_update "shared-kernel/src/jvmMain/kotlin/at/mocode/shared/discovery/ServiceRegistration.kt" \
|
|
"core/core-utils/src/main/kotlin/at/mocode/core/utils/discovery/ServiceRegistration.kt" \
|
|
"at.mocode.shared.discovery" \
|
|
"at.mocode.core.utils.discovery"
|
|
|
|
# Tests
|
|
copy_and_update "shared-kernel/src/jvmTest/kotlin/at/mocode/shared/database/test/SimpleDatabaseTest.kt" \
|
|
"core/core-utils/src/test/kotlin/at/mocode/core/utils/database/SimpleDatabaseTest.kt" \
|
|
"at.mocode.shared.database.test" \
|
|
"at.mocode.core.utils.database"
|
|
|
|
copy_and_update "shared-kernel/src/jvmTest/kotlin/at/mocode/validation/test/ValidationTest.kt" \
|
|
"core/core-utils/src/test/kotlin/at/mocode/core/utils/validation/ValidationTest.kt" \
|
|
"at.mocode.validation.test" \
|
|
"at.mocode.core.utils.validation"
|
|
|
|
echo "2. Migrating Master-Data to Masterdata Modules"
|
|
|
|
# Masterdata-Domain
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/AltersklasseDefinition.kt" \
|
|
"masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/AltersklasseDefinition.kt" \
|
|
"at.mocode.masterdata.domain.model" \
|
|
"at.mocode.masterdata.domain.model"
|
|
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/BundeslandDefinition.kt" \
|
|
"masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/BundeslandDefinition.kt" \
|
|
"at.mocode.masterdata.domain.model" \
|
|
"at.mocode.masterdata.domain.model"
|
|
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/LandDefinition.kt" \
|
|
"masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/LandDefinition.kt" \
|
|
"at.mocode.masterdata.domain.model" \
|
|
"at.mocode.masterdata.domain.model"
|
|
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/Platz.kt" \
|
|
"masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/Platz.kt" \
|
|
"at.mocode.masterdata.domain.model" \
|
|
"at.mocode.masterdata.domain.model"
|
|
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/repository/LandRepository.kt" \
|
|
"masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/repository/LandRepository.kt" \
|
|
"at.mocode.masterdata.domain.repository" \
|
|
"at.mocode.masterdata.domain.repository"
|
|
|
|
# Masterdata-Application
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/application/usecase/CreateCountryUseCase.kt" \
|
|
"masterdata/masterdata-application/src/main/kotlin/at/mocode/masterdata/application/usecase/CreateCountryUseCase.kt" \
|
|
"at.mocode.masterdata.application.usecase" \
|
|
"at.mocode.masterdata.application.usecase"
|
|
|
|
copy_and_update "master-data/src/commonMain/kotlin/at/mocode/masterdata/application/usecase/GetCountryUseCase.kt" \
|
|
"masterdata/masterdata-application/src/main/kotlin/at/mocode/masterdata/application/usecase/GetCountryUseCase.kt" \
|
|
"at.mocode.masterdata.application.usecase" \
|
|
"at.mocode.masterdata.application.usecase"
|
|
|
|
# Masterdata-Infrastructure
|
|
copy_and_update "master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/repository/LandRepositoryImpl.kt" \
|
|
"masterdata/masterdata-infrastructure/src/main/kotlin/at/mocode/masterdata/infrastructure/persistence/LandRepositoryImpl.kt" \
|
|
"at.mocode.masterdata.infrastructure.repository" \
|
|
"at.mocode.masterdata.infrastructure.persistence"
|
|
|
|
copy_and_update "master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/repository/LandTable.kt" \
|
|
"masterdata/masterdata-infrastructure/src/main/kotlin/at/mocode/masterdata/infrastructure/persistence/LandTable.kt" \
|
|
"at.mocode.masterdata.infrastructure.repository" \
|
|
"at.mocode.masterdata.infrastructure.persistence"
|
|
|
|
copy_and_update "master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/table/LandTable.kt" \
|
|
"masterdata/masterdata-infrastructure/src/main/kotlin/at/mocode/masterdata/infrastructure/persistence/LandTable.kt" \
|
|
"at.mocode.masterdata.infrastructure.table" \
|
|
"at.mocode.masterdata.infrastructure.persistence"
|
|
|
|
# Masterdata-API
|
|
copy_and_update "master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/api/CountryController.kt" \
|
|
"masterdata/masterdata-api/src/main/kotlin/at/mocode/masterdata/api/rest/CountryController.kt" \
|
|
"at.mocode.masterdata.infrastructure.api" \
|
|
"at.mocode.masterdata.api.rest"
|
|
|
|
# Client UI
|
|
copy_and_update "master-data/src/jsMain/kotlin/at/mocode/masterdata/ui/components/StammdatenListe.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/components/masterdata/StammdatenListe.kt" \
|
|
"at.mocode.masterdata.ui.components" \
|
|
"at.mocode.client.common.components.masterdata"
|
|
|
|
echo "3. Migrating Member-Management to Members Modules"
|
|
|
|
# Members-Domain (using wildcards for directories with multiple files)
|
|
for file in master-data/src/commonMain/kotlin/at/mocode/members/domain/model/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-domain/src/main/kotlin/at/mocode/members/domain/model/$filename" \
|
|
"at.mocode.members.domain.model" \
|
|
"at.mocode.members.domain.model"
|
|
fi
|
|
done
|
|
|
|
for file in master-data/src/commonMain/kotlin/at/mocode/members/domain/repository/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-domain/src/main/kotlin/at/mocode/members/domain/repository/$filename" \
|
|
"at.mocode.members.domain.repository" \
|
|
"at.mocode.members.domain.repository"
|
|
fi
|
|
done
|
|
|
|
for file in master-data/src/commonMain/kotlin/at/mocode/members/domain/service/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-domain/src/main/kotlin/at/mocode/members/domain/service/$filename" \
|
|
"at.mocode.members.domain.service" \
|
|
"at.mocode.members.domain.service"
|
|
fi
|
|
done
|
|
|
|
for file in master-data/src/jvmMain/kotlin/at/mocode/members/domain/service/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-domain/src/main/kotlin/at/mocode/members/domain/service/$filename" \
|
|
"at.mocode.members.domain.service" \
|
|
"at.mocode.members.domain.service"
|
|
fi
|
|
done
|
|
|
|
# Members-Application
|
|
for file in master-data/src/commonMain/kotlin/at/mocode/members/application/usecase/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-application/src/main/kotlin/at/mocode/members/application/usecase/$filename" \
|
|
"at.mocode.members.application.usecase" \
|
|
"at.mocode.members.application.usecase"
|
|
fi
|
|
done
|
|
|
|
# Members-Infrastructure
|
|
for file in master-data/src/jvmMain/kotlin/at/mocode/members/infrastructure/repository/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-infrastructure/src/main/kotlin/at/mocode/members/infrastructure/persistence/$filename" \
|
|
"at.mocode.members.infrastructure.repository" \
|
|
"at.mocode.members.infrastructure.persistence"
|
|
fi
|
|
done
|
|
|
|
for file in master-data/src/jvmMain/kotlin/at/mocode/members/infrastructure/table/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"members/members-infrastructure/src/main/kotlin/at/mocode/members/infrastructure/persistence/$filename" \
|
|
"at.mocode.members.infrastructure.table" \
|
|
"at.mocode.members.infrastructure.persistence"
|
|
fi
|
|
done
|
|
|
|
# Client UI
|
|
for file in master-data/src/jsMain/kotlin/at/mocode/members/ui/components/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/components/members/$filename" \
|
|
"at.mocode.members.ui.components" \
|
|
"at.mocode.client.common.components.members"
|
|
fi
|
|
done
|
|
|
|
echo "4. Migrating Horse-Registry to Horses Modules"
|
|
|
|
# Horses-Domain
|
|
copy_and_update "horse-registry/src/commonMain/kotlin/at/mocode/horses/domain/model/DomPferd.kt" \
|
|
"horses/horses-domain/src/main/kotlin/at/mocode/horses/domain/model/DomPferd.kt" \
|
|
"at.mocode.horses.domain.model" \
|
|
"at.mocode.horses.domain.model"
|
|
|
|
copy_and_update "horse-registry/src/commonMain/kotlin/at/mocode/horses/domain/repository/HorseRepository.kt" \
|
|
"horses/horses-domain/src/main/kotlin/at/mocode/horses/domain/repository/HorseRepository.kt" \
|
|
"at.mocode.horses.domain.repository" \
|
|
"at.mocode.horses.domain.repository"
|
|
|
|
# Horses-Application
|
|
for file in horse-registry/src/commonMain/kotlin/at/mocode/horses/application/usecase/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"horses/horses-application/src/main/kotlin/at/mocode/horses/application/usecase/$filename" \
|
|
"at.mocode.horses.application.usecase" \
|
|
"at.mocode.horses.application.usecase"
|
|
fi
|
|
done
|
|
|
|
# Horses-Infrastructure
|
|
copy_and_update "horse-registry/src/jvmMain/kotlin/at/mocode/horses/infrastructure/repository/HorseRepositoryImpl.kt" \
|
|
"horses/horses-infrastructure/src/main/kotlin/at/mocode/horses/infrastructure/persistence/HorseRepositoryImpl.kt" \
|
|
"at.mocode.horses.infrastructure.repository" \
|
|
"at.mocode.horses.infrastructure.persistence"
|
|
|
|
copy_and_update "horse-registry/src/jvmMain/kotlin/at/mocode/horses/infrastructure/repository/HorseTable.kt" \
|
|
"horses/horses-infrastructure/src/main/kotlin/at/mocode/horses/infrastructure/persistence/HorseTable.kt" \
|
|
"at.mocode.horses.infrastructure.repository" \
|
|
"at.mocode.horses.infrastructure.persistence"
|
|
|
|
# Horses-API
|
|
copy_and_update "horse-registry/src/jvmMain/kotlin/at/mocode/horses/infrastructure/api/HorseController.kt" \
|
|
"horses/horses-api/src/main/kotlin/at/mocode/horses/api/rest/HorseController.kt" \
|
|
"at.mocode.horses.infrastructure.api" \
|
|
"at.mocode.horses.api.rest"
|
|
|
|
# Client UI
|
|
copy_and_update "horse-registry/src/jsMain/kotlin/at/mocode/horses/ui/components/PferdeListe.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/components/horses/PferdeListe.kt" \
|
|
"at.mocode.horses.ui.components" \
|
|
"at.mocode.client.common.components.horses"
|
|
|
|
echo "5. Migrating Event-Management to Events Modules"
|
|
|
|
# Events-Domain
|
|
copy_and_update "event-management/src/commonMain/kotlin/at/mocode/events/domain/model/Veranstaltung.kt" \
|
|
"events/events-domain/src/main/kotlin/at/mocode/events/domain/model/Veranstaltung.kt" \
|
|
"at.mocode.events.domain.model" \
|
|
"at.mocode.events.domain.model"
|
|
|
|
copy_and_update "event-management/src/commonMain/kotlin/at/mocode/events/domain/repository/VeranstaltungRepository.kt" \
|
|
"events/events-domain/src/main/kotlin/at/mocode/events/domain/repository/VeranstaltungRepository.kt" \
|
|
"at.mocode.events.domain.repository" \
|
|
"at.mocode.events.domain.repository"
|
|
|
|
copy_and_update "event-management/src/commonMain/kotlin/at/mocode/events/EventManagement.kt" \
|
|
"events/events-domain/src/main/kotlin/at/mocode/events/EventManagement.kt" \
|
|
"at.mocode.events" \
|
|
"at.mocode.events"
|
|
|
|
# Events-Application
|
|
for file in event-management/src/commonMain/kotlin/at/mocode/events/application/usecase/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"events/events-application/src/main/kotlin/at/mocode/events/application/usecase/$filename" \
|
|
"at.mocode.events.application.usecase" \
|
|
"at.mocode.events.application.usecase"
|
|
fi
|
|
done
|
|
|
|
# Events-Infrastructure
|
|
copy_and_update "event-management/src/jvmMain/kotlin/at/mocode/events/infrastructure/repository/VeranstaltungRepositoryImpl.kt" \
|
|
"events/events-infrastructure/src/main/kotlin/at/mocode/events/infrastructure/persistence/VeranstaltungRepositoryImpl.kt" \
|
|
"at.mocode.events.infrastructure.repository" \
|
|
"at.mocode.events.infrastructure.persistence"
|
|
|
|
copy_and_update "event-management/src/jvmMain/kotlin/at/mocode/events/infrastructure/repository/VeranstaltungTable.kt" \
|
|
"events/events-infrastructure/src/main/kotlin/at/mocode/events/infrastructure/persistence/VeranstaltungTable.kt" \
|
|
"at.mocode.events.infrastructure.repository" \
|
|
"at.mocode.events.infrastructure.persistence"
|
|
|
|
# Events-API
|
|
copy_and_update "event-management/src/jvmMain/kotlin/at/mocode/events/infrastructure/api/VeranstaltungController.kt" \
|
|
"events/events-api/src/main/kotlin/at/mocode/events/api/rest/VeranstaltungController.kt" \
|
|
"at.mocode.events.infrastructure.api" \
|
|
"at.mocode.events.api.rest"
|
|
|
|
# Client UI
|
|
copy_and_update "event-management/src/jsMain/kotlin/at/mocode/events/ui/components/VeranstaltungsListe.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/components/events/VeranstaltungsListe.kt" \
|
|
"at.mocode.events.ui.components" \
|
|
"at.mocode.client.common.components.events"
|
|
|
|
copy_and_update "event-management/src/jsMain/kotlin/at/mocode/events/ui/utils/EventComponent.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/components/events/EventComponent.kt" \
|
|
"at.mocode.events.ui.utils" \
|
|
"at.mocode.client.common.components.events"
|
|
|
|
echo "6. Migrating API-Gateway to Infrastructure/Gateway"
|
|
|
|
# Infrastructure/Gateway
|
|
copy_and_update "api-gateway/src/jvmMain/kotlin/at/mocode/gateway/Application.kt" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/Application.kt" \
|
|
"at.mocode.gateway" \
|
|
"at.mocode.infrastructure.gateway"
|
|
|
|
# Copy auth directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/auth/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/auth/$filename" \
|
|
"at.mocode.gateway.auth" \
|
|
"at.mocode.infrastructure.gateway.auth"
|
|
fi
|
|
done
|
|
|
|
# Copy config directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/config/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/config/$filename" \
|
|
"at.mocode.gateway.config" \
|
|
"at.mocode.infrastructure.gateway.config"
|
|
fi
|
|
done
|
|
|
|
# Copy discovery directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/discovery/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/discovery/$filename" \
|
|
"at.mocode.gateway.discovery" \
|
|
"at.mocode.infrastructure.gateway.discovery"
|
|
fi
|
|
done
|
|
|
|
# Copy migrations directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/migrations/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/migrations/$filename" \
|
|
"at.mocode.gateway.migrations" \
|
|
"at.mocode.infrastructure.gateway.migrations"
|
|
fi
|
|
done
|
|
|
|
# Copy plugins directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/plugins/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/plugins/$filename" \
|
|
"at.mocode.gateway.plugins" \
|
|
"at.mocode.infrastructure.gateway.plugins"
|
|
fi
|
|
done
|
|
|
|
# Copy routing directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/routing/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/routing/$filename" \
|
|
"at.mocode.gateway.routing" \
|
|
"at.mocode.infrastructure.gateway.routing"
|
|
fi
|
|
done
|
|
|
|
# Copy validation directory
|
|
for file in api-gateway/src/jvmMain/kotlin/at/mocode/gateway/validation/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/validation/$filename" \
|
|
"at.mocode.gateway.validation" \
|
|
"at.mocode.infrastructure.gateway.validation"
|
|
fi
|
|
done
|
|
|
|
copy_and_update "api-gateway/src/jvmMain/kotlin/at/mocode/gateway/module.kt" \
|
|
"infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/module.kt" \
|
|
"at.mocode.gateway" \
|
|
"at.mocode.infrastructure.gateway"
|
|
|
|
# Copy resources
|
|
create_dir "infrastructure/gateway/src/main/resources/openapi"
|
|
cp -r api-gateway/src/jvmMain/resources/openapi/* infrastructure/gateway/src/main/resources/openapi/ 2>/dev/null || echo "No openapi resources to copy"
|
|
|
|
create_dir "infrastructure/gateway/src/main/resources/static/docs"
|
|
cp -r api-gateway/src/jvmMain/resources/static/docs/* infrastructure/gateway/src/main/resources/static/docs/ 2>/dev/null || echo "No static docs to copy"
|
|
|
|
# Copy tests
|
|
copy_and_update "api-gateway/src/test/kotlin/at/mocode/gateway/ApiIntegrationTest.kt" \
|
|
"infrastructure/gateway/src/test/kotlin/at/mocode/infrastructure/gateway/ApiIntegrationTest.kt" \
|
|
"at.mocode.gateway" \
|
|
"at.mocode.infrastructure.gateway"
|
|
|
|
echo "7. Migrating ComposeApp to Client Modules"
|
|
|
|
# Client/Common-UI
|
|
copy_and_update "composeApp/src/commonMain/kotlin/at/mocode/ui/theme/Theme.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/theme/Theme.kt" \
|
|
"at.mocode.ui.theme" \
|
|
"at.mocode.client.common.theme"
|
|
|
|
copy_and_update "composeApp/src/commonMain/kotlin/at/mocode/di/AppDependencies.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/di/AppDependencies.kt" \
|
|
"at.mocode.di" \
|
|
"at.mocode.client.common.di"
|
|
|
|
copy_and_update "composeApp/src/commonMain/kotlin/App.kt" \
|
|
"client/common-ui/src/main/kotlin/at/mocode/client/common/App.kt" \
|
|
"" \
|
|
"at.mocode.client.common"
|
|
|
|
# Client/Web-App
|
|
for file in composeApp/src/commonMain/kotlin/at/mocode/ui/screens/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"client/web-app/src/main/kotlin/at/mocode/client/web/screens/$filename" \
|
|
"at.mocode.ui.screens" \
|
|
"at.mocode.client.web.screens"
|
|
fi
|
|
done
|
|
|
|
for file in composeApp/src/commonMain/kotlin/at/mocode/ui/viewmodel/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"client/web-app/src/main/kotlin/at/mocode/client/web/viewmodel/$filename" \
|
|
"at.mocode.ui.viewmodel" \
|
|
"at.mocode.client.web.viewmodel"
|
|
fi
|
|
done
|
|
|
|
copy_and_update "composeApp/src/jsMain/kotlin/main.kt" \
|
|
"client/web-app/src/main/kotlin/at/mocode/client/web/main.kt" \
|
|
"" \
|
|
"at.mocode.client.web"
|
|
|
|
# Copy tests
|
|
for file in composeApp/src/commonTest/kotlin/at/mocode/ui/viewmodel/*.kt; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
copy_and_update "$file" \
|
|
"client/web-app/src/test/kotlin/at/mocode/client/web/viewmodel/$filename" \
|
|
"at.mocode.ui.viewmodel" \
|
|
"at.mocode.client.web.viewmodel"
|
|
fi
|
|
done
|
|
|
|
# Client/Desktop-App
|
|
copy_and_update "composeApp/src/desktopMain/kotlin/main.kt" \
|
|
"client/desktop-app/src/main/kotlin/at/mocode/client/desktop/main.kt" \
|
|
"" \
|
|
"at.mocode.client.desktop"
|
|
|
|
echo "Migration completed successfully!"
|
|
echo "Note: You may need to manually update imports in the migrated files to reflect the new package structure."
|
|
echo "Run a build to verify the migration."
|