ENV_PREFIX := dev
PROJECT_GROUP := apollo
AWS_PROFILE := gdb-apollo-dev
ECS_CLUSTER := ${ENV_PREFIX}-${PROJECT_GROUP}-etl-clu

## :
##   help : this message
.PHONY: help
help: Makefile
	@echo "Run command:\n  make <target>\n"
	@grep -E -h '^## .*' $(MAKEFILE_LIST) | sed -n 's/^##//p'  | column -t -s ':' |  sed -e 's/^/ /'

## :
## ECS commands .NET

##   ecs/run-task/analytics_playlist_import : Run task analyticsPlaylistImport
ecs/run-task/analytics_playlist_import: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-analytics_playlist_import
##   ecs/run-task/apple_music_charts : Run task appleMusicCharts updateAppleMusicSongs
ecs/run-task/apple_music_charts: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-apple_music_charts
###   ecs/run-task/export_apple_music_playlist_tracklist_history : Run task exportAppleMusicPlaylistTracklistHistory
ecs/run-task/export_apple_music_playlist_tracklist_history: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-exp_apl_muz_pllst_trklst_hist
##   ecs/run-task/export_spotify_playlist_tracklist_history : Run task exportSpotifyPlaylistTracklistHistory
ecs/run-task/export_spotify_playlist_tracklist_history: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-exp_spotify_pllst_trklst_hist
##   ecs/run-task/fetch_apple_music_chart_playlist_tracks : Run task fetchAppleMusicChartPlaylistTracks
ecs/run-task/fetch_apple_music_chart_playlist_tracks: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-ftch_apl_msc_chrt_pllst_trk
##   ecs/run-task/import_artist_followers : Run task importArtistFollowers
ecs/run-task/import_artist_followers: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_artist_followers
##   ecs/run-task/import_best_of_the_week : Run task importBestOfTheWeek
ecs/run-task/import_best_of_the_week: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_best_of_the_week
##   ecs/run-task/import_new_music_friday : Run task importNewMusicFriday
ecs/run-task/import_new_music_friday: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_new_music_friday
##   ecs/run-task/import_playlists : Run task importPlaylists importBuzzPlaylists accousticDetails adminSearchIndex spotifyAlbumData setEditorialPlaylistGenres indexEditorialPlaylists
ecs/run-task/import_playlists: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_playlists
##   ecs/run-task/import_popular_artist_followers : Run task importPopularArtistFollowers
ecs/run-task/import_popular_artist_followers: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_popular_artist_followers
##   ecs/run-task/import_spotify_browse : Run task importSpotifyBrowse
ecs/run-task/import_spotify_browse: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_spotify_browse
##   ecs/run-task/import_youtube_top_charts : Run task importYoutubeTopCharts
ecs/run-task/import_youtube_top_charts: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_youtube_top_charts
##   ecs/run-task/most_playlisted_track : Run task mostPlaylistedTrack
ecs/run-task/most_playlisted_track: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-most_playlisted_track
##   ecs/run-task/playlist_stats : Run task playlistStats
ecs/run-task/playlist_stats: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-playlist_stats
##   ecs/run-task/playlist_sync : Run task playlistSync
ecs/run-task/playlist_sync: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-playlist_sync
##   ecs/run-task/deezer_import_playlists : Run task deezerImportPlaylists
ecs/run-task/deezer_import_playlists: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-deezer_import_playlists
##   ecs/run-task/deezer_fan_log_task : Run task deezerFanLogTask
ecs/run-task/deezer_fan_log_task: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-deezer_fan_log_task
##   ecs/run-task/everynoise : Run task everyNoise
ecs/run-task/everynoise: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-everynoise
##   ecs/run-task/export_spotify_artist_followers : Run task exportSpotifyArtistFollowers
ecs/run-task/export_spotify_artist_followers: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-export_spotify_artist_followers
##   ecs/run-task/export_spotify_artist : Run task exportSpotifyArtists
ecs/run-task/export_spotify_artist: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-export_spotify_artist
##   ecs/run-task/export_elmah_logs : Run task exportElmahLogs
ecs/run-task/export_elmah_logs: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-export_elmah_logs
##   ecs/run-task/fetch_popular_artists : Run task fetchPopularArtists
ecs/run-task/fetch_popular_artists: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-fetch_popular_artists
##   ecs/run-task/apple_music_playlists : Run task appleMusicPlaylists updateAppleMusicSongs
ecs/run-task/apple_music_playlists: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-apple_music_playlists
##   ecs/run-task/mood_agent_export : Run task moodAgentExport
ecs/run-task/mood_agent_export: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-mood_agent_export
##   ecs/run-task/promoted : Run task promoted
ecs/run-task/promoted: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-promoted
##   ecs/run-task/scrape_spotify_artist_listeners : Run task scrapeSpotifyArtistListeners
ecs/run-task/scrape_spotify_artist_listeners: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-scrape_spotify_artist_listeners
##   ecs/run-task/import_sony_releases : Run task importSonyReleases
ecs/run-task/import_sony_releases: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_sony_releases
##   ecs/run-task/spotify_weekly_top_list : Run task spotifyWeeklyTopList
ecs/run-task/spotify_weekly_top_list: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-spotify_weekly_top_list
##   ecs/run-task/apl_msc_playlists_most_streamed : Run task appleMusicPlaylistsMostStreamed
ecs/run-task/apl_msc_playlists_most_streamed: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-apl_msc_playlists_most_streamed
##   ecs/run-task/release : Run task release deezerReleases
ecs/run-task/release: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-release
##   ecs/run-task/upload_playlists_and_users : Run task uploadPlaylistsAndUsers
ecs/run-task/upload_playlists_and_users: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-upload_playlists_and_users
##   ecs/run-task/import_spotify_user_followers : Run task importSpotifyUserFollowers
ecs/run-task/import_spotify_user_followers: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-import_spotify_user_followers
##   ecs/run-task/update_playlists_vendor_api : Run task updatePlaylistsVendorApi
ecs/run-task/update_playlists_vendor_api: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-update_playlists_vendor_api
##   ecs/run-task/update_playlist_tracks : Run task updatePlaylistTracks
ecs/run-task/update_playlist_tracks: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-update_playlist_tracks
##   ecs/run-task/update_playlists : Run task updatePlaylists
ecs/run-task/update_playlists: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-update_playlists
##   ecs/run-task/analytics_import : Run task analyticsImport
ecs/run-task/analytics_import: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-analytics_import
##   ecs/run-task/playlist_aggr_data_import : Run task playlistAggregationDataImport
ecs/run-task/playlist_aggr_data_import: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-playlist_aggr_data_import
##   ecs/run-task/upd_apl_music_analyt_aggr : Run task updateAppleMusicAnalyticsAggregatedTask
ecs/run-task/upd_apl_music_analyt_aggr: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-upd_apl_music_analyt_aggr

## :
## ECS commands python

##   ecs/run-task/data_cleaner_a : Run task data_cleaner SpotifyPlaylistStatistics
ecs/run-task/data_cleaner_a: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-data_cleaner-a
##   ecs/run-task/data_cleaner_b : Run task data_cleaner AppleMusicPlaylistStatistics
ecs/run-task/data_cleaner_b: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-data_cleaner-b
##   ecs/run-task/data_cleaner_c : Run task data_cleaner PushMessageReduced
ecs/run-task/data_cleaner_c: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-data_cleaner-c
##   ecs/run-task/data_cleaner_d : Run task data_cleaner ApplePlaylistTracklistHistoryReduced
ecs/run-task/data_cleaner_d: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-data_cleaner-d
##   ecs/run-task/data_cleaner_e : Run task data_cleaner SpotifyPlaylistTrackListHistory2Reduced
ecs/run-task/data_cleaner_e: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-data_cleaner-e
##   ecs/run-task/global_track_priorities : Run task global_track_priorities
ecs/run-task/global_track_priorities: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-global_track_priorities_tracks
##   ecs/run-task/copy_track_playlist_history : Run task copy_track_playlist_history
ecs/run-task/copy_track_playlist_history: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-copy_track_playlist_history
##   ecs/run-task/new_music_friday_tracks : Run task new_music_friday_tracks
ecs/run-task/new_music_friday_tracks: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-new_music_friday_tracks
##   ecs/run-task/personalized_playlists_update : Run task personalized_playlists_update
ecs/run-task/personalized_playlists_update: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-personalized_playlists_update
##   ecs/run-task/vendors_charts_availability : Run task vendors_charts_availability
ecs/run-task/vendors_charts_availability: TASK_DEF = ${ENV_PREFIX}-${PROJECT_GROUP}-vendors_charts_availability

.PHONY: ecs/run-task/%
ecs/run-task/%:
	$(eval TASK_ID=$(shell jq -r .${ENV_PREFIX} network-configuration.json | xargs -0 aws ecs run-task --profile ${AWS_PROFILE} --task-definition=${TASK_DEF} --cli-input-json | jq -r '.tasks[].taskArn' | awk -F '/' '{print $$NF}'))
	@echo "Task ${TASK_ID} is starting..."
	@aws ecs wait tasks-running --cluster ${ECS_CLUSTER} --tasks ${TASK_ID} --profile ${AWS_PROFILE}
	@echo "Task ${TASK_ID} is running..."
	ecs-cli logs --follow --cluster ${ECS_CLUSTER} --task-id ${TASK_ID} --aws-profile ${AWS_PROFILE}
