feat(tauri.js/init): set appName in api instead of bin (#897)

This commit is contained in:
Noah Klayman
2020-07-28 06:05:49 -07:00
committed by GitHub
parent e274ecb77b
commit da6580ff7d
3 changed files with 27 additions and 26 deletions

View File

@@ -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')

View File

@@ -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<TauriConfig>
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
}

View File

@@ -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 {