@@ -98,11 +98,11 @@ class Packages {
98
98
* Loads all packages
99
99
* @return {Promise<Package[]> }
100
100
*/
101
- createLoader ( ) {
101
+ async createLoader ( ) {
102
102
let result = [ ] ;
103
103
const { discoveredFile, manifestFile} = this . options ;
104
- const discovered = readOrDefault ( discoveredFile ) ;
105
- const manifest = readOrDefault ( manifestFile ) ;
104
+ const discovered = await readOrDefault ( discoveredFile ) ;
105
+ const manifest = await readOrDefault ( manifestFile ) ;
106
106
const sources = discovered . map ( d => path . join ( d , 'metadata.json' ) ) ;
107
107
108
108
logger . info ( 'Using package discovery file' , relative ( discoveredFile ) ) ;
@@ -204,6 +204,7 @@ class Packages {
204
204
const target = await realpath ( `${ userRoot } /${ name } ` , user ) ;
205
205
206
206
if ( await fs . exists ( target ) ) {
207
+ // FIXME: Secure this
207
208
await fs . remove ( target ) ;
208
209
await this . writeUserManifest ( userRoot , user ) ;
209
210
} else {
@@ -226,7 +227,7 @@ class Packages {
226
227
// TODO: Check conflicts ?
227
228
const root = await realpath ( userRoot , user ) ;
228
229
const manifest = await realpath ( `${ userRoot } /metadata.json` , user ) ;
229
- const filenames = await fg ( root + '/*/metadata.json' ) ; // FIXME: Windows!
230
+ const filenames = await fg ( root . replace ( / \\ / g , '/' ) + '/*/metadata.json' ) ;
230
231
const metadatas = await Promise . all ( filenames . map ( f => fs . readJson ( f ) ) ) ;
231
232
232
233
await fs . writeJson ( manifest , metadatas ) ;
0 commit comments