Files
dealplustech/node_modules/astro/dist/cli/info/infra/cli-clipboard.js
Kunthawat 5171a789e9 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.
2026-03-12 08:58:56 +07:00

79 lines
1.8 KiB
JavaScript

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
};