Skip to content

Commit 8c5fce1

Browse files
committed
server: resolve bash helper classes in bitbake-setup layout
1 parent fa3e534 commit 8c5fce1

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

server/src/embedded-languages/bash-support.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import type Parser from 'web-tree-sitter'
1010
import { type SyntaxNode } from 'web-tree-sitter'
1111
import { logger } from '../lib/src/utils/OutputLogger'
1212
import { type TextDocument } from 'vscode-languageserver-textdocument'
13+
import fs from 'fs'
14+
import path from 'path'
1315

1416
const shebang = '#!/bin/sh\n'
1517

@@ -60,10 +62,24 @@ const insertBashHeader = (embeddedLanguageDoc: EmbeddedLanguageDoc): void => {
6062
insertTextIntoEmbeddedLanguageDoc(embeddedLanguageDoc, 0, 0, getBashHeader(embeddedLanguageDoc.originalUri))
6163
}
6264

65+
const getOpenEmbeddedCoreMetaFolder = (pokyFolder: string): string => {
66+
const candidateMetaFolders = [
67+
path.join(pokyFolder, 'meta'),
68+
path.join(pokyFolder, 'layers', 'openembedded-core', 'meta'),
69+
path.join(pokyFolder, 'openembedded-core', 'meta')
70+
]
71+
72+
return candidateMetaFolders.find(candidate =>
73+
fs.existsSync(path.join(candidate, 'classes-global', 'logging.bbclass')) &&
74+
fs.existsSync(path.join(candidate, 'classes-global', 'base.bbclass'))
75+
) ?? path.join(pokyFolder, 'meta')
76+
}
77+
6378
const insertBashTools = (embeddedLanguageDoc: EmbeddedLanguageDoc, pokyFolder: string): void => {
79+
const metaFolder = getOpenEmbeddedCoreMetaFolder(pokyFolder)
6480
const bashTools = [
65-
`. ${pokyFolder}/meta/classes-global/logging.bbclass`,
66-
`. ${pokyFolder}/meta/classes-global/base.bbclass`,
81+
`. ${metaFolder}/classes-global/logging.bbclass`,
82+
`. ${metaFolder}/classes-global/base.bbclass`,
6783
''
6884
].join('\n')
6985
insertTextIntoEmbeddedLanguageDoc(embeddedLanguageDoc, 0, 0, bashTools)

0 commit comments

Comments
 (0)