hhru / android-multimodule-plugin

MIT License
155 stars 20 forks source link

Geminio. При попытке использовать выражение ${srcOut} внутри другой папки происходит ошибка #78

Open s097t0r1 opened 1 year ago

s097t0r1 commented 1 year ago
java.io.IOException: Invalid file name: 'api - C:'
    at com.intellij.openapi.vfs.newvfs.impl.VirtualFileSystemEntry.validateName(VirtualFileSystemEntry.java:356)
    at com.intellij.openapi.vfs.newvfs.impl.VirtualFileSystemEntry.createChildDirectory(VirtualFileSystemEntry.java:350)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:383)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:373)
    at com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing(VfsUtil.java:357)
    at com.android.tools.idea.templates.TemplateUtils$checkedCreateDirectoryIfMissing$1.compute(TemplateUtils.kt:134)
    at com.android.tools.idea.templates.TemplateUtils$checkedCreateDirectoryIfMissing$1.compute(TemplateUtils.kt:133)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$compute$3(WriteCommandAction.java:167)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$1(WriteCommandAction.java:150)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:947)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$2(WriteCommandAction.java:148)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:210)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:184)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:157)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:124)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.compute(WriteCommandAction.java:167)
    at com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction(WriteCommandAction.java:370)
    at com.android.tools.idea.templates.TemplateUtils.checkedCreateDirectoryIfMissing(TemplateUtils.kt:133)
    at com.android.tools.idea.templates.recipe.DefaultRecipeExecutor$RecipeIO.mkDir(DefaultRecipeExecutor.kt:689)
    at com.android.tools.idea.templates.recipe.DefaultRecipeExecutor.createDirectory(DefaultRecipeExecutor.kt:335)
    at ru.hh.plugins.geminio.sdk.template.executors.MkDirsCommandExecutorKt.makeDirectories(MkDirsCommandExecutor.kt:33)
    at ru.hh.plugins.geminio.sdk.template.executors.MkDirsCommandExecutorKt.execute(MkDirsCommandExecutor.kt:16)
    at ru.hh.plugins.geminio.sdk.template.executors.GeminioRecipeExecutorKt.execute(GeminioRecipeExecutor.kt:38)
    at ru.hh.plugins.geminio.sdk.template.executors.GeminioRecipeExecutorKt.executeCommands(GeminioRecipeExecutor.kt:21)
    at ru.hh.plugins.geminio.sdk.template.executors.GeminioRecipeExecutorKt.executeGeminioRecipe(GeminioRecipeExecutor.kt:13)
    at ru.hh.plugins.geminio.sdk.template.mapping.GeminioRecipeMapperKt$toGeminioTemplateData$androidStudioTemplate$1$1.invoke(GeminioRecipeMapper.kt:38)
    at ru.hh.plugins.geminio.sdk.template.mapping.GeminioRecipeMapperKt$toGeminioTemplateData$androidStudioTemplate$1$1.invoke(GeminioRecipeMapper.kt:36)
    at ru.hh.plugins.geminio.actions.module_template.ExecuteGeminioModuleTemplateAction$actionPerformed$2$onWizardFinished$1.invoke(ExecuteGeminioModuleTemplateAction.kt:121)
    at ru.hh.plugins.geminio.actions.module_template.ExecuteGeminioModuleTemplateAction$actionPerformed$2$onWizardFinished$1.invoke(ExecuteGeminioModuleTemplateAction.kt:118)
    at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt$sam$com_intellij_openapi_util_Computable$0.compute(ApplicationUtils.kt)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$15(ApplicationImpl.java:956)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:935)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:956)
    at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.runWriteAction(ApplicationUtils.kt:24)
    at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt$executeWriteCommand$1.run(ApplicationUtils.kt:55)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:219)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:174)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:164)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:150)
    at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.executeWriteCommand(ApplicationUtils.kt:55)
    at ru.hh.plugins.geminio.actions.module_template.ExecuteGeminioModuleTemplateAction$actionPerformed$2.onWizardFinished(ExecuteGeminioModuleTemplateAction.kt:118)
    at com.android.tools.idea.wizard.model.ModelWizard.handleFinished(ModelWizard.java:440)
    at com.android.tools.idea.wizard.model.ModelWizard.goForward(ModelWizard.java:339)
    at com.android.tools.idea.wizard.model.ModelWizardDialog$FinishAction.doAction(ModelWizardDialog.java:350)
    at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1810)
    at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
    at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
    at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
    at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
    at java.desktop/java.awt.Component.processEvent(Component.java:6419)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
    at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:701)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
    at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1671)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1629)
    at ru.hh.plugins.geminio.actions.module_template.ExecuteGeminioModuleTemplateAction.actionPerformed(ExecuteGeminioModuleTemplateAction.kt:184)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:239)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:260)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:239)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$performAction$0(ActionMenuItem.java:277)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:236)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:67)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.performAction(ActionMenuItem.java:269)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:284)
    at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$2(ActionMenuItem.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:541)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:571)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
    at java.desktop/java.awt.Component.processEvent(Component.java:6419)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
s097t0r1 commented 1 year ago

recipe.yaml

requiredParams:
  name: KtCast API Module
  description: Create API Module

# optional
optionalParams:
  revision: 1
  category: fragment
  formFactor: mobile
  constraints:
    - kotlin
  screens:
    - new_module
  minApi: 24
  minBuildApi: 32

# required only for modules templates
predefinedFeatures:
  - enableModuleCreationParams:
      defaultPackageNamePrefix: me.s097t0r1.ktcast.feature

widgets:
  - booleanParameter:
      id: includeStarter
      name: Include starter for feature
      help: Generate starter interface
      default: false

globals:
  - booleanParameter:
      id: includeStarter
      value: ${includeStarter}

recipe:
  - mkDirs:
      - api
        - ${srcOut}