feat: publish HoloLake model-native living system source
This commit is contained in:
parent
6ad10edde1
commit
c395dd3a99
2467 changed files with 615073 additions and 0 deletions
|
|
@ -0,0 +1,80 @@
|
|||
export const GETTING_STARTED_VAULT_NAME = 'Getting Started'
|
||||
|
||||
const CLONE_PATH_ERRORS = [
|
||||
'already exists and is not empty',
|
||||
'already exists and is not a directory',
|
||||
'Failed to create parent directory',
|
||||
'Target path is required',
|
||||
]
|
||||
|
||||
const GIT_NOT_FOUND_ERRORS = [
|
||||
'no such file or directory',
|
||||
'os error 2',
|
||||
'program not found',
|
||||
'system cannot find the file',
|
||||
]
|
||||
|
||||
const NETWORK_ERRORS = [
|
||||
'could not resolve host',
|
||||
'connection refused',
|
||||
'network is unreachable',
|
||||
'timed out',
|
||||
'failed to connect',
|
||||
'ssl connect error',
|
||||
]
|
||||
|
||||
const AUTH_ERRORS = [
|
||||
'authentication failed',
|
||||
'could not read username',
|
||||
'permission denied',
|
||||
'repository not found',
|
||||
'403',
|
||||
]
|
||||
|
||||
export function buildGettingStartedVaultPath(parentPath: string): string {
|
||||
const trimmed = parentPath.trim().replace(/[\\/]+$/g, '')
|
||||
if (!trimmed) {
|
||||
return GETTING_STARTED_VAULT_NAME
|
||||
}
|
||||
|
||||
const separator = trimmed.includes('\\') && !trimmed.includes('/') ? '\\' : '/'
|
||||
return `${trimmed}${separator}${GETTING_STARTED_VAULT_NAME}`
|
||||
}
|
||||
|
||||
export function labelFromPath(path: string): string {
|
||||
const trimmed = path.trim().replace(/[\\/]+$/g, '')
|
||||
return trimmed.split(/[\\/]/).pop() || 'Vault'
|
||||
}
|
||||
|
||||
export function formatGettingStartedCloneError(err: unknown): string {
|
||||
const message =
|
||||
typeof err === 'string'
|
||||
? err
|
||||
: err instanceof Error
|
||||
? err.message
|
||||
: `${err}`
|
||||
|
||||
if (CLONE_PATH_ERRORS.some(fragment => message.includes(fragment))) {
|
||||
return message
|
||||
}
|
||||
|
||||
const lower = message.toLowerCase()
|
||||
if (GIT_NOT_FOUND_ERRORS.some(fragment => lower.includes(fragment))) {
|
||||
return 'Git is required to download the Getting Started vault. Install Git and try again.'
|
||||
}
|
||||
if (AUTH_ERRORS.some(fragment => lower.includes(fragment))) {
|
||||
return 'Could not download Getting Started vault. Check your GitHub access and try again.'
|
||||
}
|
||||
if (NETWORK_ERRORS.some(fragment => lower.includes(fragment))) {
|
||||
return 'Could not download Getting Started vault. Check your connection and try again.'
|
||||
}
|
||||
|
||||
return `Could not download Getting Started vault: ${firstCloneErrorLine(message)}`
|
||||
}
|
||||
|
||||
function firstCloneErrorLine(message: string): string {
|
||||
return message
|
||||
.split(/\r?\n/)
|
||||
.map(line => line.trim())
|
||||
.find(Boolean) ?? 'git reported an unknown error'
|
||||
}
|
||||
Loading…
Reference in a new issue