Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions packages/lu/src/utils/filehelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ const globby = require('globby')

export async function getLuObjects(stdin: string, input: string | undefined, recurse = false, extType: string | undefined) {
let luObjects: any = []
if (stdin) {
luObjects.push(new luObject(stdin, new LUOptions('stdin')))
} else {
if (input) {
let luFiles = await getLuFiles(input, recurse, extType)
for (let i = 0; i < luFiles.length; i++) {
let luContent = await getContentFromFile(luFiles[i])
const opts = new LUOptions(path.resolve(luFiles[i]))
luObjects.push(new luObject(luContent, opts))
}
} else {
luObjects.push(new luObject(stdin, new LUOptions('stdin')))
}

return luObjects
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/application/import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default class LuisApplicationImport extends Command {

inVal = inVal ? inVal.trim() : flags.in

const appJSON = stdin ? stdin : await utils.getInputFromFile(inVal)
const appJSON = inVal ? await utils.getInputFromFile(inVal) : stdin
if (!appJSON) throw new CLIError('No import data found - please provide input through stdin or the --in flag')

// const client = utils.getLUISClient(subscriptionKey, endpoint)
Expand Down
20 changes: 10 additions & 10 deletions packages/luis/src/commands/luis/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,7 @@ export default class LuisBuild extends Command {
let multiRecognizers = new Map<string, any>()
let settings = new Map<string, any>()

if (flags.stdin && flags.stdin !== '') {
// load lu content from stdin and create default recognizer, multiRecognier and settings
if (log) this.log('Load lu content from stdin\n')
const content = new Content(flags.stdin, new LUOptions('stdin', true, defaultCulture, path.join(process.cwd(), 'stdin')))
luContents.push(content)
multiRecognizers.set('stdin', new MultiLanguageRecognizer(path.join(process.cwd(), 'stdin.lu.dialog'), {}))
settings.set('stdin', new Settings(path.join(process.cwd(), `luis.settings.${suffix}.${region}.json`), {}))
const recognizer = Recognizer.load(content.path, content.name, path.join(process.cwd(), `${content.name}.dialog`), settings.get('stdin'), {})
recognizers.set(content.name, recognizer)
} else {
if ((inVal && inVal !== '') || files.length > 0) {
if (log) this.log('Loading files...\n')

// get lu files from in.
Expand All @@ -135,6 +126,15 @@ export default class LuisBuild extends Command {
recognizers = loadedResources.recognizers
multiRecognizers = loadedResources.multiRecognizers
settings = loadedResources.settings
} else {
// load lu content from stdin and create default recognizer, multiRecognier and settings
if (log) this.log('Load lu content from stdin\n')
const content = new Content(flags.stdin, new LUOptions('stdin', true, defaultCulture, path.join(process.cwd(), 'stdin')))
luContents.push(content)
multiRecognizers.set('stdin', new MultiLanguageRecognizer(path.join(process.cwd(), 'stdin.lu.dialog'), {}))
settings.set('stdin', new Settings(path.join(process.cwd(), `luis.settings.${suffix}.${region}.json`), {}))
const recognizer = Recognizer.load(content.path, content.name, path.join(process.cwd(), `${content.name}.dialog`), settings.get('stdin'), {})
recognizers.set(content.name, recognizer)
}

// update or create and then train and publish luis applications based on loaded resources
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/convert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export default class LuisConvert extends Command {
throw new CLIError('No LU or Luis content parsed!')
}
} else {
const luisContent = stdin ? stdin : await file.getContentFromFile(flags.in)
const luisContent = flags.in ? await file.getContentFromFile(flags.in) : stdin
const luisObject = new Luis(file.parseJSON(luisContent, 'Luis'))
if (flags.sort) {
sort(luisObject)
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/generate/cs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export default class LuisGenerateCs extends Command {
const pathPrefix = flags.in && path.isAbsolute(flags.in) ? '' : process.cwd()
let app: any
try {
app = stdInput ? JSON.parse(stdInput as string) : await fs.readJSON(path.join(pathPrefix, flags.in))
app = flags.in ? await fs.readJSON(path.join(pathPrefix, flags.in)) : JSON.parse(stdInput as string)
} catch (err) {
throw new CLIError(err)
}
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/generate/ts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default class LuisGenerateTs extends Command {
const pathPrefix = flags.in && path.isAbsolute(flags.in) ? '' : process.cwd()
let app: any
try {
app = stdInput ? JSON.parse(stdInput as string) : await fs.readJSON(path.join(pathPrefix, flags.in))
app = flags.in ? await fs.readJSON(path.join(pathPrefix, flags.in)) : JSON.parse(stdInput as string)
} catch (error) {
throw new CLIError(error)
}
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export default class LuisTest extends Command {
throw new CLIError('No LU content parsed!')
}
} else {
const luisContent = stdin ? stdin : await file.getContentFromFile(flags.in)
const luisContent = flags.in ? await file.getContentFromFile(flags.in) : stdin
luisObject = new Luis(file.parseJSON(luisContent, 'Luis'))
if (!hasContent(luisObject)) {
throw new CLIError('No LUIS content found!')
Expand Down
4 changes: 2 additions & 2 deletions packages/luis/src/commands/luis/translate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ export default class LuisTranslate extends Command {
})
})
} else {
const json = stdin ? stdin : await fileHelper.getContentFromFile(flags.in)
const json = flags.in ? await fileHelper.getContentFromFile(flags.in) : stdin
const luisObject = new Luis(fileHelper.parseJSON(json, 'Luis'))
const key = stdin ? 'stdin' : path.basename(flags.in)
const key = flags.in ? path.basename(flags.in) : 'stdin'
const translation = new Lu(luisObject.parseToLuContent(), key)
const translatedLuis = await luTranslator.translateLu(translation, flags.translatekey, flags.tgtlang, flags.srclang, flags.translate_comments, flags.translate_link_text)
result = {
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/version/import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export default class LuisVersionImport extends Command {

inVal = inVal ? inVal.trim() : flags.in

const appJSON = stdin ? stdin : await utils.getInputFromFile(inVal)
const appJSON = inVal ? await utils.getInputFromFile(inVal) : stdin
if (!appJSON) throw new CLIError('No import data found - please provide input through stdin or the --in flag')

if (versionId) options.versionId = versionId
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/test/commands/luis/build.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,7 @@ describe('luis:build create a new application successfully with locale set to it
await fs.remove(path.join(__dirname, './../../../results/'))
})

test.only()
test
.stdout()
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/file-with-personName/personName.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--log', '--suffix', 'development', '--out', './results', '--defaultCulture', 'it-it'])
.it('should create a new application successfully for prebuilt entity personName with locale set to it-it', ctx => {
Expand Down
20 changes: 10 additions & 10 deletions packages/qnamaker/src/commands/qnamaker/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,16 +74,7 @@ export default class QnamakerBuild extends Command {

let files: string[] = []

if (flags.stdin && flags.stdin !== '') {
// load qna content from stdin and create default recognizer, multiRecognier and settings
if (flags.log) this.log('Load qna content from stdin\n')
const content = new Content(flags.stdin, new qnaOptions(flags.botName, true, flags.defaultCulture, path.join(process.cwd(), 'stdin')))
qnaContents.push(content)
multiRecognizer = new MultiLanguageRecognizer(path.join(process.cwd(), `${flags.botName}.qna.dialog`), {})
settings = new Settings(path.join(process.cwd(), `qnamaker.settings.${flags.suffix}.${flags.region}.json`), {})
const recognizer = Recognizer.load(content.path, content.name, path.join(process.cwd(), `${content.name}.dialog`), settings, {})
recognizers.set(content.name, recognizer)
} else {
if (flags.in && flags.in !== '') {
if (flags.log) this.log('Loading files...\n')

// get qna files from flags.in.
Expand All @@ -102,6 +93,15 @@ export default class QnamakerBuild extends Command {
recognizers = loadedResources.recognizers
multiRecognizer = loadedResources.multiRecognizer
settings = loadedResources.settings
} else {
// load qna content from stdin and create default recognizer, multiRecognier and settings
if (flags.log) this.log('Load qna content from stdin\n')
const content = new Content(flags.stdin, new qnaOptions(flags.botName, true, flags.defaultCulture, path.join(process.cwd(), 'stdin')))
qnaContents.push(content)
multiRecognizer = new MultiLanguageRecognizer(path.join(process.cwd(), `${flags.botName}.qna.dialog`), {})
settings = new Settings(path.join(process.cwd(), `qnamaker.settings.${flags.suffix}.${flags.region}.json`), {})
const recognizer = Recognizer.load(content.path, content.name, path.join(process.cwd(), `${content.name}.dialog`), settings, {})
recognizers.set(content.name, recognizer)
}

// update or create and then publish qnamaker kb based on loaded resources
Expand Down
2 changes: 1 addition & 1 deletion packages/qnamaker/src/commands/qnamaker/convert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export default class QnamakerConvert extends Command {
const luFiles = await file.getLuObjects(stdin, flags.in, flags.recurse, fileExtEnum.QnAFile)
result = await QnAMakerBuilder.build([...luFiles], false, flags.luis_culture)
} else {
const qnaContent = stdin ? stdin : await file.getContentFromFile(flags.in)
const qnaContent = flags.in ? await file.getContentFromFile(flags.in) : stdin
let QnA
let sortFucntion

Expand Down
4 changes: 2 additions & 2 deletions packages/qnamaker/src/commands/qnamaker/translate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ export default class QnamakerTranslate extends Command {
})
})
} else {
const json = stdin ? stdin : await fileHelper.getContentFromFile(flags.in)
const json = flags.in ? await fileHelper.getContentFromFile(flags.in) : stdin
const qnaM = new QnaMaker(fileHelper.parseJSON(json, 'QnA'))
const qna = new QnA(qnaM.parseToLuContent())
const qnaTranslation = await luTranslator.translateQnA(qna, flags.translatekey, flags.tgtlang, flags.srclang, flags.translate_comments, flags.translate_link_text)
const key = stdin ? 'stdin' : path.basename(flags.in)
const key = flags.in ? path.basename(flags.in) : 'stdin'
result = {
[key]: {},
}
Expand Down
7 changes: 4 additions & 3 deletions packages/qnamaker/src/utils/qnamakerbase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ export async function processInputs(flags: any, payload: any, configfile: string
ServiceBase.config = flags
await qnaconfig.validateConfig(flags)
const serviceManifest = srvMan.getServiceManifest(payload)
flags.in = stdin ? stdin : flags.in
const input = flags.in
flags.in = flags.in || stdin || undefined
result.requestBody = await srvMan.validateArguments(serviceManifest, flags)
if (stdin || flags.in) {
result.requestBody = stdin || await file.getContentFromFile(flags.in)
if (flags.in) {
result.requestBody = input ? await file.getContentFromFile(input) : stdin
try {
result.requestBody = JSON.parse(result.requestBody)
} catch(ex) {
Expand Down