Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
function(collect_migration_files)
|
||||
set(options "")
|
||||
set(oneValueArgs LOCATION INSTALL_DESTINATION)
|
||||
set(multiValueArgs "")
|
||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
if(NOT ARG_LOCATION)
|
||||
message(FATAL_ERROR "No LOCATION provided, can't parse files")
|
||||
endif()
|
||||
|
||||
if(NOT ${ARG_LOCATION} MATCHES "/$")
|
||||
set(ARG_LOCATION "${ARG_LOCATION}/")
|
||||
endif()
|
||||
|
||||
message("Parsing migration files in folder: ${ARG_LOCATION}")
|
||||
|
||||
file(GLOB MIGRATION_FILE_LIST RELATIVE ${ARG_LOCATION} "${ARG_LOCATION}*.sql") # ARG_LOCATION already contains the slash
|
||||
list(SORT MIGRATION_FILE_LIST)
|
||||
|
||||
# The first file should always start with 1_up so make use of that fact.
|
||||
# Next we always check the next number "down" and then "up" which come in order since we sorted alphabetically
|
||||
set(CURRENT_MIGRATION_FILE_ID 1)
|
||||
set(NEXT_MIGRATION_FILE_TYPE "up")
|
||||
|
||||
foreach(MIGRATION_FILE ${MIGRATION_FILE_LIST})
|
||||
string(REGEX MATCH "^([0-9]+)_(up|down)(|-.+)\.sql$" MIGRATION_FILE_MATCHED ${MIGRATION_FILE})
|
||||
if (MIGRATION_FILE_MATCHED STREQUAL "")
|
||||
message(FATAL_ERROR "Migration filename does not match specification: " ${MIGRATION_FILE})
|
||||
endif()
|
||||
|
||||
string(CONCAT NEXT_ID "^" ${CURRENT_MIGRATION_FILE_ID} "_")
|
||||
if(NOT ${MIGRATION_FILE_MATCHED} MATCHES ${NEXT_ID})
|
||||
message(FATAL_ERROR "Skipped migration file ID, expected " ${CURRENT_MIGRATION_FILE_ID} "_*.sql, but got " ${MIGRATION_FILE_MATCHED})
|
||||
endif()
|
||||
|
||||
string(APPEND NEXT_ID ${NEXT_MIGRATION_FILE_TYPE})
|
||||
if(NOT ${MIGRATION_FILE_MATCHED} MATCHES ${NEXT_ID})
|
||||
message(FATAL_ERROR "Missing " ${NEXT_MIGRATION_FILE_TYPE} " migration file: " ${MIGRATION_FILE_MATCHED})
|
||||
endif()
|
||||
|
||||
if(NEXT_MIGRATION_FILE_TYPE STREQUAL "up")
|
||||
math(EXPR CURRENT_MIGRATION_FILE_ID "${CURRENT_MIGRATION_FILE_ID}+1")
|
||||
set(NEXT_MIGRATION_FILE_TYPE "down")
|
||||
elseif(NEXT_MIGRATION_FILE_TYPE STREQUAL "down")
|
||||
set(NEXT_MIGRATION_FILE_TYPE "up")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (NEXT_MIGRATION_FILE_TYPE STREQUAL "up")
|
||||
message(FATAL_ERROR "Down migration file " ${CURRENT_MIGRATION_FILE_ID} "_*.sql is missing up migration file")
|
||||
endif()
|
||||
|
||||
# Since we always add on the up file we need to subtract one here
|
||||
math(EXPR CURRENT_MIGRATION_FILE_ID "${CURRENT_MIGRATION_FILE_ID}-1")
|
||||
|
||||
list(TRANSFORM MIGRATION_FILE_LIST PREPEND ${ARG_LOCATION})
|
||||
if(ARG_INSTALL_DESTINATION)
|
||||
install(FILES ${MIGRATION_FILE_LIST} DESTINATION ${ARG_INSTALL_DESTINATION})
|
||||
endif()
|
||||
|
||||
set(TARGET_MIGRATION_FILE_VERSION ${CURRENT_MIGRATION_FILE_ID} PARENT_SCOPE)
|
||||
set(MIGRATION_FILE_LIST ${MIGRATION_FILE_LIST} PARENT_SCOPE)
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user