How to use the ern-core.shell.cp function in ern-core

To help you get started, we’ve selected a few ern-core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github electrode-io / electrode-native / ern-api-impl-gen / src / generators / ios / ApiImplIosGenerator.js View on Github external
createImplDirectoryAndCopyCommonClasses (pathSpec: any, projectSpec: any, iosProject: any) {
    const resourceDir = path.join(Platform.currentPlatformVersionPath, 'ern-api-impl-gen', 'resources', 'ios')
    const outputDir = path.join(pathSpec.outputDir, projectSpec.projectName, API_IMPL_GROUP_NAME)

    const requestHandlerConfigFile = 'RequestHandlerConfig.swift'
    const requestHandlerProviderFile = 'RequestHandlerProvider.swift'

    if (!shell.test('-e', outputDir)) {
      shell.mkdir(outputDir)
    }
    shell.cp(path.join(resourceDir, requestHandlerConfigFile), outputDir)
    shell.cp(path.join(resourceDir, requestHandlerProviderFile), outputDir)

    iosProject.addSourceFile(path.join(API_IMPL_GROUP_NAME, requestHandlerConfigFile), null, iosProject.findPBXGroupKey({name: API_IMPL_GROUP_NAME}))
    iosProject.addSourceFile(path.join(API_IMPL_GROUP_NAME, requestHandlerProviderFile), null, iosProject.findPBXGroupKey({name: API_IMPL_GROUP_NAME}))

    return {outputDir, resourceDir}
  }
}
github electrode-io / electrode-native / ern-api-impl-gen / src / generators / android / ApiImplAndroidGenerator.js View on Github external
static createImplDirectoryAndCopyCommonClasses (paths) {
    const outputDir = path.join(paths.outDirectory, 'android', 'lib', SRC_MAIN_JAVA_DIR, API_IMPL_PACKAGE)
    if (!fs.existsSync(outputDir)) {
      shell.mkdir('-p', outputDir)
    }

    const resourceDir = path.join(Platform.currentPlatformVersionPath, 'ern-api-impl-gen', 'resources', 'android')
    shell.cp(path.join(resourceDir, 'RequestHandlerConfig.java'), outputDir)
    shell.cp(path.join(resourceDir, 'RequestHandlerProvider.java'), outputDir)
    return {outputDir, resourceDir}
  }
}
github electrode-io / electrode-native / ern-runner-gen-android / src / AndroidRunnerGenerator.ts View on Github external
public async generate(config: RunnerGeneratorConfig): Promise {
    let mustacheView: any = {}
    mustacheView = configureMustacheView(config, mustacheView)
    shell.cp('-R', path.join(runnerHullPath, '*'), config.outDir)
    shell.mv(
      path.join(config.outDir, 'app/src/main/java/com/walmartlabs/ern/miniapp'),
      path.join(config.outDir, 'app/src/main/java', getPackageFilePath(config))
    )
    const files = readDir(
      config.outDir,
      f => !f.endsWith('.jar') && !f.endsWith('.png')
    )
    for (const file of files) {
      await mustacheUtils.mustacheRenderToOutputFileUsingTemplateFile(
        path.join(config.outDir, file),
        mustacheView,
        path.join(config.outDir, file)
      )
    }
  }
github electrode-io / electrode-native / ern-container-gen-ios / src / IosGenerator.ts View on Github external
}
      const iOSPluginHook = pluginConfig.ios.pluginHook
      if (iOSPluginHook?.name) {
        if (!pluginConfig.path) {
          throw new Error('No plugin config path was set. Cannot proceed.')
        }

        const pluginConfigPath = pluginConfig.path
        const pathToCopyPluginHooksTo = path.join(outDir, 'ElectrodeContainer')

        log.debug(`Adding ${iOSPluginHook.name}.h`)
        const pathToPluginHookHeader = path.join(
          pluginConfigPath,
          `${iOSPluginHook.name}.h`
        )
        shell.cp(pathToPluginHookHeader, pathToCopyPluginHooksTo)
        containerIosProject.addHeaderFile(
          `${iOSPluginHook.name}.h`,
          { public: true },
          containerIosProject.findPBXGroupKey({ name: 'ElectrodeContainer' })
        )

        log.debug(`Adding ${iOSPluginHook.name}.m`)
        const pathToPluginHookSource = path.join(
          pluginConfigPath,
          `${iOSPluginHook.name}.m`
        )
        shell.cp(pathToPluginHookSource, pathToCopyPluginHooksTo)
        containerIosProject.addSourceFile(
          `${iOSPluginHook.name}.m`,
          null,
          containerIosProject.findPBXGroupKey({ name: 'ElectrodeContainer' })
github electrode-io / electrode-native / ern-api-impl-gen / src / generators / android / ApiImplAndroidGenerator.js View on Github external
copyPluginToOutput (paths: Object, pluginOutputDirectory: string, pluginPath: PackagePath, pluginConfig: PluginConfig) {
    log.debug(`injecting ${pluginPath.basePath} code.`)
    const pluginSrcDirectory = path.join(paths.pluginsDownloadDirectory, 'node_modules', pluginPath.basePath, 'android', pluginConfig.android.moduleName, SRC_MAIN_JAVA_DIR, '*')
    if (!fs.existsSync(pluginOutputDirectory)) {
      shell.mkdir('-p', pluginOutputDirectory)
    }
    log.debug(`Copying code from ${pluginSrcDirectory} to ${pluginOutputDirectory}`)
    shell.cp('-Rf', pluginSrcDirectory, pluginOutputDirectory)
  }
github electrode-io / electrode-native / ern-container-gen / src / generators / android / AndroidGenerator.ts View on Github external
const pathToPluginProject = path.join(
          pluginSourcePath,
          pluginConfig.android.root
        )
        shell.cd(pathToPluginProject)

        const relPathToPluginSource = pluginConfig.android.moduleName
          ? path.join(pluginConfig.android.moduleName, 'src', 'main', 'java')
          : path.join('src', 'main', 'java')
        const absPathToCopyPluginSourceTo = path.join(
          config.outDir,
          'lib',
          'src',
          'main'
        )
        shell.cp('-R', relPathToPluginSource, absPathToCopyPluginSourceTo)

        if (pluginConfig.android) {
          if (pluginConfig.android.copy) {
            handleCopyDirective(
              pluginSourcePath,
              config.outDir,
              pluginConfig.android.copy
            )
          }

          if (pluginConfig.android.dependencies) {
            for (const dependency of pluginConfig.android.dependencies) {
              log.debug(`Adding compile '${dependency}'`)
              mustacheView.pluginCompile.push({
                compileStatement: `compile '${dependency}'`,
              })
github electrode-io / electrode-native / ern-container-publisher-jcenter / src / index.ts View on Github external
archives androidSourcesJar
    }
    apply from: 'jcenter-publish.gradle'
    `
    )

    fs.appendFileSync(
      path.join(containerPath, 'build.gradle'),
      `buildscript {
      dependencies {
          classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'
      }
    }`
    )

    shell.cp(
      path.join(__dirname, 'supplements', 'jcenter-publish.gradle'),
      path.join(containerPath, 'lib')
    )
    mustacheUtils.mustacheRenderToOutputFileUsingTemplateFile(
      path.join(containerPath, 'lib', 'jcenter-publish.gradle'),
      mustacheConfig,
      path.join(containerPath, 'lib', 'jcenter-publish.gradle')
    )

    try {
      log.info('[=== Starting build and jcenter publication ===]')
      shell.pushd(containerPath)
      await this.buildAndUploadArchive()
      log.info('[=== Completed build and publication of the Container ===]')
      log.info(
        `[Artifact: ${extra.groupId}:${extra.artifactId}:${containerVersion} ]`
github electrode-io / electrode-native / ern-container-gen / src / generators / ios / IosGenerator.js View on Github external
if (!pluginConfig.ios) {
          log.warn(`${plugin.basePath} does not have any injection configuration for iOS`)
          continue
        }
        let iOSPluginHook = pluginConfig.ios.pluginHook
        if (iOSPluginHook && iOSPluginHook.name) {
          if (!pluginConfig.path) {
            throw new Error('No plugin config path was set. Cannot proceed.')
          }

          const pluginConfigPath = pluginConfig.path
          const pathToCopyPluginHooksTo = path.join(outDir, 'ElectrodeContainer')

          log.debug(`Adding ${iOSPluginHook.name}.h`)
          const pathToPluginHookHeader = path.join(pluginConfigPath, `${iOSPluginHook.name}.h`)
          shell.cp(pathToPluginHookHeader, pathToCopyPluginHooksTo)
          containerIosProject.addHeaderFile(`${iOSPluginHook.name}.h`, { public: true }, containerIosProject.findPBXGroupKey({name: 'ElectrodeContainer'}))

          log.debug(`Adding ${iOSPluginHook.name}.m`)
          const pathToPluginHookSource = path.join(pluginConfigPath, `${iOSPluginHook.name}.m`)
          shell.cp(pathToPluginHookSource, pathToCopyPluginHooksTo)
          containerIosProject.addSourceFile(`${iOSPluginHook.name}.m`, null, containerIosProject.findPBXGroupKey({name: 'ElectrodeContainer'}))
        }
      }

      log.debug('[=== iOS: Done adding plugin hook classes ===]')
    } catch (e) {
      log.error(`[addiOSPluginHookClasses] Something went wrong: ${e}`)
      throw e
    }
  }
github electrode-io / electrode-native / ern-container-gen / src / generators / ios / IosGenerator.js View on Github external
if (iOSPluginHook && iOSPluginHook.name) {
          if (!pluginConfig.path) {
            throw new Error('No plugin config path was set. Cannot proceed.')
          }

          const pluginConfigPath = pluginConfig.path
          const pathToCopyPluginHooksTo = path.join(outDir, 'ElectrodeContainer')

          log.debug(`Adding ${iOSPluginHook.name}.h`)
          const pathToPluginHookHeader = path.join(pluginConfigPath, `${iOSPluginHook.name}.h`)
          shell.cp(pathToPluginHookHeader, pathToCopyPluginHooksTo)
          containerIosProject.addHeaderFile(`${iOSPluginHook.name}.h`, { public: true }, containerIosProject.findPBXGroupKey({name: 'ElectrodeContainer'}))

          log.debug(`Adding ${iOSPluginHook.name}.m`)
          const pathToPluginHookSource = path.join(pluginConfigPath, `${iOSPluginHook.name}.m`)
          shell.cp(pathToPluginHookSource, pathToCopyPluginHooksTo)
          containerIosProject.addSourceFile(`${iOSPluginHook.name}.m`, null, containerIosProject.findPBXGroupKey({name: 'ElectrodeContainer'}))
        }
      }

      log.debug('[=== iOS: Done adding plugin hook classes ===]')
    } catch (e) {
      log.error(`[addiOSPluginHookClasses] Something went wrong: ${e}`)
      throw e
    }
  }
github electrode-io / electrode-native / ern-runner-gen / src / index.js View on Github external
} : {
    reactNativeDevSupportEnabled?: boolean,
    host?: string,
    port?: string
  } = {}) {
  const mustacheView = {
    miniAppName: mainMiniAppName,
    pascalCaseMiniAppName: pascalCase(mainMiniAppName),
    isReactNativeDevSupportEnabled: reactNativeDevSupportEnabled === true ? 'true' : 'false',
    packagerHost: host,
    packagerPort: port
  }
  const subPathToRunnerConfig = path.join('app', 'src', 'main', 'java', 'com', 'walmartlabs', 'ern', 'RunnerConfig.java')
  const pathToRunnerConfigHull = path.join(runnerHullPath, 'android', subPathToRunnerConfig)
  const pathToRunnerConfig = path.join(pathToRunnerProject, subPathToRunnerConfig)
  shell.cp(pathToRunnerConfigHull, pathToRunnerConfig)
  await mustacheUtils.mustacheRenderToOutputFileUsingTemplateFile(
    pathToRunnerConfig, mustacheView, pathToRunnerConfig)
}