From 685b2c416b890bad9fffb65ccde779c1c4c4e5c4 Mon Sep 17 00:00:00 2001 From: Ryo Nakabayashi Date: Wed, 8 Dec 2021 17:09:34 +0900 Subject: [PATCH] handle special case for msgs in subdir --- rosidl_gen/packages.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rosidl_gen/packages.js b/rosidl_gen/packages.js index d9490d24..1b8182eb 100644 --- a/rosidl_gen/packages.js +++ b/rosidl_gen/packages.js @@ -50,12 +50,21 @@ function getSubFolder(filePath, amentExecuted) { filePath = filePath.replace(/\\/g, '/'); } + const subFolder = filePath.match(/\w+\/share\/\w+\/(\w+)\//)[1]; + const ext = path.parse(filePath).ext.substr(1); + if (amentExecuted) { - return filePath.match(/\w+\/share\/\w+\/(\w+)\//)[1]; + // If the .msg file is in a subdirectory of msg/, + // the |subFolder| will neither msg/srv/action + // so the file extension should be used instead. + if (!['msg', 'srv', 'action'].includes(subFolder)) { + return ext; + } + return subFolder; } // If the |amentExecuted| equals to false, the file's extension will be assigned as // the name of sub folder. - return path.parse(filePath).ext.substr(1); + return ext; } function grabInterfaceInfo(filePath, amentExecuted) {