Initial commit: KHY Admin project
This commit is contained in:
commit
d3403cb5e2
65 changed files with 12739 additions and 0 deletions
161
setup-deploy.js
Normal file
161
setup-deploy.js
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Setup Script for KHY Admin Deploy Configuration
|
||||
*
|
||||
* This script helps you configure the deploy paths for your specific setup.
|
||||
* Run this once to set up the correct paths for your environment.
|
||||
*/
|
||||
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const readline = require("readline");
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout,
|
||||
});
|
||||
|
||||
function question(prompt) {
|
||||
return new Promise((resolve) => {
|
||||
rl.question(prompt, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
async function setupDeploy() {
|
||||
console.log("KHY Admin Deploy Setup");
|
||||
console.log("======================");
|
||||
console.log("");
|
||||
console.log("This script will help you configure the deploy paths.");
|
||||
console.log("You need to specify where your main KHY website is located.");
|
||||
console.log("");
|
||||
|
||||
// Get current admin directory
|
||||
const adminDir = __dirname;
|
||||
console.log(`Current admin directory: ${adminDir}`);
|
||||
console.log("");
|
||||
|
||||
// Ask for the main website path
|
||||
console.log("Where is your main KHY website located?");
|
||||
console.log("Examples:");
|
||||
console.log(" - If in same parent directory: ../khy_website");
|
||||
console.log(" - If in different location: /path/to/your/khy_website");
|
||||
console.log(" - If admin is inside main website: ../");
|
||||
console.log("");
|
||||
|
||||
const mainWebsitePath = await question("Enter path to main KHY website: ");
|
||||
|
||||
if (!mainWebsitePath.trim()) {
|
||||
console.log("No path provided. Exiting.");
|
||||
rl.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Resolve the path
|
||||
const resolvedPath = path.resolve(adminDir, mainWebsitePath.trim());
|
||||
|
||||
console.log("");
|
||||
console.log(`Resolved path: ${resolvedPath}`);
|
||||
|
||||
// Check if the path exists
|
||||
if (!fs.existsSync(resolvedPath)) {
|
||||
console.log("WARNING: The specified path does not exist!");
|
||||
const continueAnyway = await question("Continue anyway? (y/N): ");
|
||||
if (continueAnyway.toLowerCase() !== "y") {
|
||||
console.log("Setup cancelled.");
|
||||
rl.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for required files
|
||||
const requiredFiles = ["index.html", "data/products.json"];
|
||||
const missingFiles = requiredFiles.filter(
|
||||
(file) => !fs.existsSync(path.join(resolvedPath, file))
|
||||
);
|
||||
|
||||
if (missingFiles.length > 0) {
|
||||
console.log(`WARNING: Missing required files: ${missingFiles.join(", ")}`);
|
||||
const continueAnyway = await question("Continue anyway? (y/N): ");
|
||||
if (continueAnyway.toLowerCase() !== "y") {
|
||||
console.log("Setup cancelled.");
|
||||
rl.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Update the config file
|
||||
const configPath = path.join(adminDir, "deploy-config.js");
|
||||
const configContent = `/**
|
||||
* Deploy Configuration for KHY Admin Dashboard
|
||||
*
|
||||
* This file contains configuration for deploying from the admin repository
|
||||
* to the main KHY website repository.
|
||||
*
|
||||
* Generated by setup-deploy.js on ${new Date().toISOString()}
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
// Default target paths (adjust these based on your setup)
|
||||
targets: {
|
||||
// If admin and main website are in the same parent directory
|
||||
sibling: "../khy_website",
|
||||
|
||||
// If admin is in a subdirectory of the main website
|
||||
parent: "../",
|
||||
|
||||
// Your configured path
|
||||
main: "${mainWebsitePath.trim()}",
|
||||
|
||||
// Absolute path examples (uncomment and modify as needed)
|
||||
// absolute: "/path/to/your/khy_website",
|
||||
// absolute: "/Users/george/Documents/khy_website/khy_website",
|
||||
},
|
||||
|
||||
// Which target to use by default
|
||||
defaultTarget: "main",
|
||||
|
||||
// Files to copy from admin to main website
|
||||
filesToCopy: [
|
||||
{
|
||||
source: "data/products.json",
|
||||
target: "data/products.json",
|
||||
description: "Product catalog data",
|
||||
},
|
||||
{
|
||||
source: "assets/images",
|
||||
target: "assets/images",
|
||||
description: "Product images",
|
||||
isDirectory: true,
|
||||
},
|
||||
],
|
||||
|
||||
// Required files that must exist in target directory
|
||||
requiredTargetFiles: ["index.html", "data/products.json"],
|
||||
|
||||
// Backup settings
|
||||
backup: {
|
||||
enabled: true,
|
||||
directory: "backups",
|
||||
timestampFormat: "YYYY-MM-DD_HH-mm-ss",
|
||||
}
|
||||
};`;
|
||||
|
||||
try {
|
||||
fs.writeFileSync(configPath, configContent);
|
||||
console.log("");
|
||||
console.log("Configuration updated successfully!");
|
||||
console.log(`Config file: ${configPath}`);
|
||||
console.log("");
|
||||
console.log("You can now run: npm run deploy");
|
||||
console.log("");
|
||||
console.log("To test the configuration, run:");
|
||||
console.log(` node deploy.js "${mainWebsitePath.trim()}"`);
|
||||
} catch (error) {
|
||||
console.log(`Error writing config file: ${error.message}`);
|
||||
}
|
||||
|
||||
rl.close();
|
||||
}
|
||||
|
||||
setupDeploy().catch(console.error);
|
||||
Loading…
Add table
Add a link
Reference in a new issue