@@ -10,6 +10,8 @@ import type Parser from 'web-tree-sitter'
1010import { type SyntaxNode } from 'web-tree-sitter'
1111import { logger } from '../lib/src/utils/OutputLogger'
1212import { type TextDocument } from 'vscode-languageserver-textdocument'
13+ import fs from 'fs'
14+ import path from 'path'
1315
1416const 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+
6378const 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