summaryrefslogtreecommitdiff
path: root/scripts/prepublish.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/prepublish.js')
-rw-r--r--scripts/prepublish.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/prepublish.js b/scripts/prepublish.js
new file mode 100644
index 00000000..f97e450f
--- /dev/null
+++ b/scripts/prepublish.js
@@ -0,0 +1,45 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import fs from 'fs';
+import path from 'path';
+
+const packageJsonPath = path.resolve(process.cwd(), 'package.json');
+const readmePath = path.resolve(process.cwd(), 'README.md');
+const licensePath = path.resolve(process.cwd(), 'LICENSE');
+
+const errors = [];
+
+// 1. Check for package.json and the 'repository' field
+// Required for publishing through wombat-dressing-room
+if (!fs.existsSync(packageJsonPath)) {
+ errors.push(`Error: package.json not found in ${process.cwd()}`);
+} else {
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
+ if (packageJson.repository !== 'google-gemini/gemini-cli') {
+ errors.push(
+ `Error: The "repository" field in ${packageJsonPath} must be "google-gemini/gemini-cli".`,
+ );
+ }
+}
+
+// 2. Check for README.md
+if (!fs.existsSync(readmePath)) {
+ errors.push(`Error: README.md not found in ${process.cwd()}`);
+}
+
+// 3. Check for LICENSE
+if (!fs.existsSync(licensePath)) {
+ errors.push(`Error: LICENSE file not found in ${process.cwd()}`);
+}
+
+if (errors.length > 0) {
+ console.error('Pre-publish checks failed:');
+ errors.forEach((error) => console.error(`- ${error}`));
+ process.exit(1);
+}
+
+console.log('Pre-publish checks passed.');