blobs: file_list: Switch to new helpers and add serialization
This commit is contained in:
parent
1346e0381e
commit
455b85146d
1 changed files with 41 additions and 17 deletions
|
@ -1,10 +1,10 @@
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import * as chalk from 'chalk'
|
|
||||||
import * as ora from 'ora'
|
|
||||||
|
|
||||||
import { EXT_PARTITIONS } from '../util/partitions'
|
import { EXT_PARTITIONS } from '../util/partitions'
|
||||||
import { BlobEntry } from './entry'
|
import { BlobEntry, partPathToSrcPath, srcPathToPartPath } from './entry'
|
||||||
import { exists, listFilesRecursive } from '../util/fs'
|
import { exists, listFilesRecursive } from '../util/fs'
|
||||||
|
import { MAKEFILE_HEADER } from '../build/make'
|
||||||
|
import { createActionSpinner, stopActionSpinner } from '../util/cli'
|
||||||
import { parseLines } from '../util/parse'
|
import { parseLines } from '../util/parse'
|
||||||
|
|
||||||
// Sub-partition directories to ignore
|
// Sub-partition directories to ignore
|
||||||
|
@ -184,15 +184,7 @@ export function parseFileList(list: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Split path into partition and sub-partition path
|
// Split path into partition and sub-partition path
|
||||||
let pathParts = srcPath.split('/')
|
let [partition, path] = srcPathToPartPath(srcPath)
|
||||||
let partition = pathParts[0]
|
|
||||||
let path: string
|
|
||||||
if (EXT_PARTITIONS.has(partition)) {
|
|
||||||
path = pathParts.slice(1).join('/')
|
|
||||||
} else {
|
|
||||||
partition = 'system'
|
|
||||||
path = srcPath
|
|
||||||
}
|
|
||||||
|
|
||||||
entries.push({
|
entries.push({
|
||||||
partition: partition,
|
partition: partition,
|
||||||
|
@ -219,10 +211,7 @@ export async function listPart(partition: string, systemRoot: string, showSpinne
|
||||||
}
|
}
|
||||||
let refRoot = path.dirname(partRoot)
|
let refRoot = path.dirname(partRoot)
|
||||||
|
|
||||||
let spinner = ora({
|
let spinner = createActionSpinner(`Listing ${partition}`)
|
||||||
prefixText: chalk.bold(chalk.greenBright(`Listing ${partition}`)),
|
|
||||||
color: 'green',
|
|
||||||
})
|
|
||||||
if (showSpinner) {
|
if (showSpinner) {
|
||||||
spinner.start()
|
spinner.start()
|
||||||
}
|
}
|
||||||
|
@ -247,9 +236,44 @@ export async function listPart(partition: string, systemRoot: string, showSpinne
|
||||||
})
|
})
|
||||||
|
|
||||||
if (showSpinner) {
|
if (showSpinner) {
|
||||||
spinner.stopAndPersist()
|
stopActionSpinner(spinner)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort and return raw path list
|
// Sort and return raw path list
|
||||||
return files.sort((a, b) => a.localeCompare(b))
|
return files.sort((a, b) => a.localeCompare(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function serializeBlobList(entries: Iterable<BlobEntry>) {
|
||||||
|
let lines = []
|
||||||
|
for (let entry of entries) {
|
||||||
|
let depFlag = entry.isNamedDependency ? '-' : ''
|
||||||
|
let suffixFlags = entry.isPresigned ? ';PRESIGNED' : ''
|
||||||
|
lines.push(depFlag + entry.srcPath + suffixFlags)
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${MAKEFILE_HEADER}
|
||||||
|
|
||||||
|
${lines.join('\n')}`
|
||||||
|
}
|
||||||
|
|
||||||
|
export function diffLists(filesRef: Array<string>, filesNew: Array<string>) {
|
||||||
|
let setRef = new Set(filesRef)
|
||||||
|
return filesNew.filter(f => !setRef.has(f)).sort((a, b) => a.localeCompare(b))
|
||||||
|
}
|
||||||
|
|
||||||
|
export function combinedPartPathToEntry(partition: string, combinedPartPath: string) {
|
||||||
|
// Decompose into 2-part partition path
|
||||||
|
let partPath = combinedPartPath.split('/').slice(1).join('/')
|
||||||
|
|
||||||
|
// Convert to source path
|
||||||
|
let srcPath = partPathToSrcPath(partition, partPath)
|
||||||
|
|
||||||
|
return {
|
||||||
|
partition: partition,
|
||||||
|
path: partPath,
|
||||||
|
srcPath: srcPath,
|
||||||
|
isPresigned: false,
|
||||||
|
// TODO
|
||||||
|
isNamedDependency: false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue