fix: Final restoration with port 80
✅ COMPLETED: 1. Dockerfile uses port 80 (astro preview) 2. BaseLayout imports globals.css 3. globals.css with Tailwind v4 @theme syntax 4. index.astro has Header, Footer, FixedContact 5. All image references fixed to existing files 6. Hero uses hdpe_pipe_main.jpg 7. Product cards use hdpe001.jpg 8. pt-20 on main for fixed header ✅ TESTED LOCALLY: - Build: 15 pages in 1.27s - Docker build successful - Port 80 working - Images load - CSS works Ready for Easypanel deployment.
This commit is contained in:
78
node_modules/astro/dist/cli/info/infra/cli-clipboard.js
generated
vendored
Normal file
78
node_modules/astro/dist/cli/info/infra/cli-clipboard.js
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
async function getExecInputForPlatform({
|
||||
platform,
|
||||
commandExecutor
|
||||
}) {
|
||||
if (platform === "darwin") {
|
||||
return ["pbcopy"];
|
||||
}
|
||||
if (platform === "win32") {
|
||||
return ["clip"];
|
||||
}
|
||||
const unixCommands = [
|
||||
["xclip", ["-selection", "clipboard"]],
|
||||
["wl-copy", []]
|
||||
];
|
||||
for (const [unixCommand, unixArgs] of unixCommands) {
|
||||
try {
|
||||
const { stdout } = await commandExecutor.execute("which", [unixCommand]);
|
||||
if (stdout.trim()) {
|
||||
return [unixCommand, unixArgs];
|
||||
}
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
class CliClipboard {
|
||||
#operatingSystemProvider;
|
||||
#commandExecutor;
|
||||
#logger;
|
||||
#prompt;
|
||||
constructor({
|
||||
operatingSystemProvider,
|
||||
commandExecutor,
|
||||
logger,
|
||||
prompt
|
||||
}) {
|
||||
this.#operatingSystemProvider = operatingSystemProvider;
|
||||
this.#commandExecutor = commandExecutor;
|
||||
this.#logger = logger;
|
||||
this.#prompt = prompt;
|
||||
}
|
||||
async copy(text) {
|
||||
text = text.trim();
|
||||
const platform = this.#operatingSystemProvider.name;
|
||||
const input = await getExecInputForPlatform({
|
||||
platform,
|
||||
commandExecutor: this.#commandExecutor
|
||||
});
|
||||
if (!input) {
|
||||
this.#logger.warn("SKIP_FORMAT", "Clipboard command not found!");
|
||||
this.#logger.info("SKIP_FORMAT", "Please manually copy the text above.");
|
||||
return;
|
||||
}
|
||||
if (!await this.#prompt.confirm({
|
||||
message: "Copy to clipboard?",
|
||||
defaultValue: true
|
||||
})) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const [command, args] = input;
|
||||
await this.#commandExecutor.execute(command, args, {
|
||||
input: text,
|
||||
stdio: ["pipe", "ignore", "ignore"]
|
||||
});
|
||||
this.#logger.info("SKIP_FORMAT", "Copied to clipboard!");
|
||||
} catch {
|
||||
this.#logger.error(
|
||||
"SKIP_FORMAT",
|
||||
"Sorry, something went wrong! Please copy the text above manually."
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
export {
|
||||
CliClipboard
|
||||
};
|
||||
Reference in New Issue
Block a user