MCPcopy
hub / github.com/claude-code-best/claude-code / updateCCB

Function updateCCB

src/cli/updateCCB.ts:94–165  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

92}
93
94export async function updateCCB(): Promise<void> {
95 const currentVersion = getCurrentVersion()
96 writeToStdout(`Current version: ${currentVersion}\n`)
97
98 // Determine package manager
99 const hasBun = isCommandAvailable('bun')
100 const useBun = isBunInstallation()
101 const pkgManager = useBun && hasBun ? 'bun' : 'npm'
102
103 writeToStdout(`Package manager: ${pkgManager}\n`)
104 writeToStdout('Checking for updates...\n')
105
106 // Get latest version
107 const latestVersion = await getLatestVersion()
108 if (!latestVersion) {
109 process.stderr.write(chalk.red('Failed to check for updates') + '\n')
110 process.stderr.write('Unable to fetch latest version from npm registry.\n')
111 await gracefulShutdown(1)
112 return
113 }
114
115 // Already up to date?
116 if (latestVersion === currentVersion || gte(currentVersion, latestVersion)) {
117 writeToStdout(chalk.green(`ccb is up to date (${currentVersion})`) + '\n')
118 await gracefulShutdown(0)
119 return
120 }
121
122 writeToStdout(
123 `New version available: ${latestVersion} (current: ${currentVersion})\n`,
124 )
125 writeToStdout(`Installing update via ${pkgManager}...\n`)
126
127 try {
128 if (pkgManager === 'bun') {
129 execSync(`bun install -g ${PACKAGE_NAME}@latest`, {
130 stdio: 'inherit',
131 cwd: homedir(),
132 timeout: 120_000,
133 })
134 } else {
135 execSync(`npm install -g ${PACKAGE_NAME}@latest`, {
136 stdio: 'inherit',
137 cwd: homedir(),
138 timeout: 120_000,
139 })
140 }
141
142 writeToStdout(
143 chalk.green(
144 `Successfully updated from ${currentVersion} to ${latestVersion}`,
145 ) + '\n',
146 )
147 } catch (error) {
148 process.stderr.write(chalk.red('Update failed') + '\n')
149 process.stderr.write(`${error}\n`)
150 process.stderr.write('\n')
151 process.stderr.write('Try manually updating with:\n')

Callers 1

runFunction · 0.85

Calls 8

getCurrentVersionFunction · 0.85
isBunInstallationFunction · 0.85
isCommandAvailableFunction · 0.70
getLatestVersionFunction · 0.70
gteFunction · 0.70
writeToStdoutFunction · 0.50
gracefulShutdownFunction · 0.50
writeMethod · 0.45

Tested by

no test coverage detected