From da6580ff7de3375195800ca3b74b82d446568481 Mon Sep 17 00:00:00 2001 From: Noah Klayman Date: Tue, 28 Jul 2020 06:05:49 -0700 Subject: [PATCH] feat(tauri.js/init): set appName in api instead of bin (#897) --- cli/tauri.js/bin/tauri-init.js | 27 +++------------------------ cli/tauri.js/src/api/init.ts | 20 +++++++++++++++++++- cli/tauri.js/src/types/cargo.ts | 6 +++++- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/cli/tauri.js/bin/tauri-init.js b/cli/tauri.js/bin/tauri-init.js index 4fd2495cc..740e097e2 100644 --- a/cli/tauri.js/bin/tauri-init.js +++ b/cli/tauri.js/bin/tauri-init.js @@ -1,17 +1,7 @@ const parseArgs = require('minimist') const inquirer = require('inquirer') -const { - resolve -} = require('path') -const { - readFileSync, - writeFileSync -} = require('fs') -const { - merge, - kebabCase -} = require('lodash') -const toml = require('@tauri-apps/toml') +const { resolve } = require('path') +const { merge } = require('lodash') /** * @type {object} @@ -130,6 +120,7 @@ async function runInit(config = {}) { force: argv.f || null, logging: argv.l || null, tauriPath: argv.t || null, + appName: appName || argv.A || null, customConfig: merge(configOptions, { build: { distDir: argv.D, @@ -143,18 +134,6 @@ async function runInit(config = {}) { }) }) - if (appName || argv.A) { - const manifestPath = resolve(directory, 'src-tauri/Cargo.toml') - const cargoManifest = toml.parse(readFileSync(manifestPath).toString()) - let binName = kebabCase(appName || argv.A) - cargoManifest.package.name = binName - cargoManifest.package['default-run'] = binName - if (cargoManifest.bin && cargoManifest.bin.length) { - cargoManifest.bin[0].name = binName - } - writeFileSync(manifestPath, toml.stringify(cargoManifest)) - } - const { installDependencies } = require('../dist/api/dependency-manager') diff --git a/cli/tauri.js/src/api/init.ts b/cli/tauri.js/src/api/init.ts index bbef7d416..0759a25e1 100644 --- a/cli/tauri.js/src/api/init.ts +++ b/cli/tauri.js/src/api/init.ts @@ -1,5 +1,10 @@ import { TauriConfig } from 'types' import { inject } from '../template' +import { resolve } from 'path' +import toml, { JsonMap } from '@tauri-apps/toml' +import { readFileSync, writeFileSync } from 'fs' +import { kebabCase } from 'lodash' +import { CargoManifest } from 'src/types/cargo' module.exports = (args: { directory: string @@ -7,8 +12,9 @@ module.exports = (args: { logging: boolean tauriPath?: string customConfig?: Partial + appName?: string }): boolean => { - return inject( + const injectResult = inject( args.directory, 'all', { @@ -18,4 +24,16 @@ module.exports = (args: { }, args.customConfig ) + if (args.appName) { + const manifestPath = resolve(args.directory, 'src-tauri/Cargo.toml') + const cargoManifest = toml.parse(readFileSync(manifestPath).toString()) as unknown as CargoManifest + const binName = kebabCase(args.appName) + cargoManifest.package.name = binName + cargoManifest.package['default-run'] = binName + if (cargoManifest.bin?.length) { + cargoManifest.bin[0].name = binName + } + writeFileSync(manifestPath, toml.stringify(cargoManifest as unknown as JsonMap)) + } + return injectResult } diff --git a/cli/tauri.js/src/types/cargo.ts b/cli/tauri.js/src/types/cargo.ts index 001044425..ea9d68548 100644 --- a/cli/tauri.js/src/types/cargo.ts +++ b/cli/tauri.js/src/types/cargo.ts @@ -1,6 +1,10 @@ export interface CargoManifest { dependencies: { [k: string]: string | CargoManifestDependency } - package: { version: string } + package: { version: string, name: string, 'default-run': string } + bin: Array<{ + name: string + path: string + }> } export interface CargoManifestDependency {