gnu-screen

1.0.14 • Public • Published

What is this ?

This was build to handle and manage minecraft servers first, but actually only use Linux so if you have another OS you may have some bugs.

Table of Contents

Required

  • NodeJs: 12.16.0
  • GNU-Screen: 4.08.00

Installation

First make sure you have gnu-screen installed:

$ apt-get install screen

To run this project, install it locally using npm:

$ npm i gnu-screen

Functions

  • getAll() Return all available Screens.

Screen

Create a representation of gnu-screen session : Screen(id, mode=""). If you want to save logs change mode to 's'. Extend events.EventEmitter.

Events:

  • close When screen is closed.
  • stdout String When something new is append in logFile.

Methods:

  • Screen.exist() Check if screen's session is running.
  • Screen.setup() Fetch self variable with running session.
  • Screen.setRule(...rules) Rules to apply in screen session.
  • Screen.write(...stdins) Write something in screen session.
  • Screen.setStdout(state) Watch over logFile to call stdout Event.
  • Screen.logFile() Return logFile.
  • Screen.run(stdin=null) Connect/create to screen session.
  • Screen.close() Close screen session.
  • Screen.kill(signal="SIGKILL") Kill screen session.

KeyValues:

  • Screen.id String | null Screen session's id.
  • Screen.logFilePath String | null Path of logFile is there one.
  • Screen.pid Int | null Pid of screen session if is running.
  • Screen.date String | null Date of screen session if is running.
  • Screen.state String | null State of screen session if is running.

Exemple

const SC = require("gnu-screen")

// Generate 10 screens session
for (n = 0; n < 10; n++) {
    scr = new SC.Screen(id=`test n°${n}`);
    console.log(scr);
    scr.run();
}

// Find and close the 10 screens session
SC.getAll().forEach((scr) => {
    console.log(scr);
    scr.close();
})

// Create and start a screen session
test = new SC.Screen(id="final test", mode="s");
test.run();
console.log(test);

// Allow "stdout" event
test.setStdout()


// Close the screen session
function close() {
    test.close();
    if (!test.pid) {
        console.log("Closed final test's screen session");
    } else {
        test.kill();
        console.log("Killed test's screen session");
    }
    //self kill
    process.exit();
}


// Get stdout from screen session
test.on("stdout", log => {
    console.log("stdout:", log);
    if (log.includes("!close")) {
        close();
    }
});


// Pipe input to the screen session
process.stdin.on('data', (stdin) => test.write(stdin));


// Capture Ctrl + C to close screen session
process.on('SIGINT', () => close());

Package Sidebar

Install

npm i gnu-screen

Weekly Downloads

10

Version

1.0.14

License

GPL-3.0

Unpacked Size

9.14 kB

Total Files

3

Last publish

Collaborators

  • loucas