From 4a200e59acc6e655e05e78767cbbae5f3a5318fb Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 10 Aug 2021 12:50:22 -0700 Subject: [PATCH] Create headless package script --- bin/package_headless.js | 40 ++++++++++++++++++++++++++++++++++++++++ headless/.gitignore | 2 ++ headless/README.md | 5 +++++ 3 files changed, 47 insertions(+) create mode 100644 bin/package_headless.js create mode 100644 headless/.gitignore create mode 100644 headless/README.md diff --git a/bin/package_headless.js b/bin/package_headless.js new file mode 100644 index 00000000..27613200 --- /dev/null +++ b/bin/package_headless.js @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021 The xterm.js authors. All rights reserved. + * @license MIT + */ + +const fs = require('fs'); +const { join } = require('path'); + +const repoRoot = join(__dirname, '..'); +const headlessRoot = join(repoRoot, 'headless'); + +// Create headless/package.json +console.log('> Creating headless/package.json'); +const xtermPackageJson = require('../package.json'); +const xtermHeadlessPackageJson = { + ...xtermPackageJson, + name: 'xterm-headless', + description: 'A headless terminal component that runs in Node.js', + main: 'lib/xterm-headless.js', + types: 'typings/xterm-headless.d.ts', +}; +delete xtermHeadlessPackageJson['scripts']; +delete xtermHeadlessPackageJson['devDependencies']; +delete xtermHeadlessPackageJson['style']; +xtermHeadlessPackageJson.version += '-alpha'; +fs.writeFileSync(join(headlessRoot, 'package.json'), JSON.stringify(xtermHeadlessPackageJson, null, 1)); +console.log(fs.readFileSync(join(headlessRoot, 'package.json')).toString()); + +console.log('> Creating headless/typings'); +mkdirF(join(headlessRoot, 'typings')); +fs.copyFileSync( + join(repoRoot, 'typings/xterm-headless.d.ts'), + join(headlessRoot, 'typings/xterm-headless.d.ts') +); + +function mkdirF(p) { + if (!fs.existsSync(p)) { + fs.mkdirSync(p); + } +} diff --git a/headless/.gitignore b/headless/.gitignore new file mode 100644 index 00000000..9b8b2749 --- /dev/null +++ b/headless/.gitignore @@ -0,0 +1,2 @@ +typings/ +package.json diff --git a/headless/README.md b/headless/README.md new file mode 100644 index 00000000..de22b47a --- /dev/null +++ b/headless/README.md @@ -0,0 +1,5 @@ +# [![xterm.js logo](../logo-full.png)](https://xtermjs.org) + +⚠ This package is a work in progress + +`xterm-headless` is a headless terminal that can be run in node.js. This is useful in combination with the frontend [`xterm`](https://www.npmjs.com/package/xterm) for example to keep track of a terminal's state on a remote server where the process is hosted.