Skip to main content

GNU-Screen session module handler for NodeJs

Project description

What is this ?

This was build to handle and manage gnu-screen session. Actually work well.

Table of Contents

Required

  • Python: 3.8
  • GNU-Screen: 4.08.00

Installation

First make sure you have gnu-screen installed:

$ apt-get install screen

To run this project, use pip:

$ pip install 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'.

Events:

  • close When screen is closed.
  • stdout str 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.on(call) Set an event (disconnect(),close(),stdout(log)).
  • Screen.run(stdin=None) Connect/create to screen session.
  • Screen.close() Close screen session.
  • Screen.kill(signal=15) Kill screen session.

KeyValues:

  • Screen.id str | None Screen session's id.
  • Screen.logFilePath str | None Path of logFile is there one.
  • Screen.events dict Screen session events.
  • Screen.pid int | None Pid of screen session if is running.
  • Screen.date str | None Date of screen session if is running.
  • Screen.state str | None State of screen session if is running.

Exemple

import os
import gnu_screen as sc

# Generate 10 screens session
for n in range(10):
    scr = sc.Screen(id=f"test n°{n}")
    print(scr)
    scr.run()

# Find and close the 10 screens session
for scr in sc.getAll():
    print(scr)
    scr.close()

# Create a new screen session
test = sc.Screen(id="final test", mode="r")
test.run()
print(test)

# Allow "stdout" event
test.setStdout()


# Remove screen session
def close():
    test.close()
    if not test.pid:
        print("Closed final test's screen session")
    else:
        test.kill()
        print("Killed test's screen session")
    #self kill
    os.kill(os.getpid(), 15)


# Get stdout from screen session
@test.on
def stdout(log):
    print("stdout:", log)
    if "!close" in log:
        close()


# Pipe input to the screen session
while test.pid:
    try:
        test.write(input())
    except KeyboardInterrupt:
        # Capture Ctrl + C to close screen session
        close()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnu-screen-0.0.8.tar.gz (4.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gnu_screen-0.0.8-py3.8.egg (8.3 kB view details)

Uploaded Egg

gnu_screen-0.0.8-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file gnu-screen-0.0.8.tar.gz.

File metadata

  • Download URL: gnu-screen-0.0.8.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.8.0 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for gnu-screen-0.0.8.tar.gz
Algorithm Hash digest
SHA256 c8a2243db147398d7bb86adcb647f1556e2567ea2b4e5a7cc5465339ba09f072
MD5 b7c5f4ee18efc594f714ed922938cdd4
BLAKE2b-256 746d442a3b74d72391f4851b771ffd445c8949ef2fdf1e699bb4292a6d4499c4

See more details on using hashes here.

File details

Details for the file gnu_screen-0.0.8-py3.8.egg.

File metadata

  • Download URL: gnu_screen-0.0.8-py3.8.egg
  • Upload date:
  • Size: 8.3 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.22.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/18.0.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for gnu_screen-0.0.8-py3.8.egg
Algorithm Hash digest
SHA256 f32062e2d8a14cce7f6fe593b56081b25223c90fa64150c96c7304b6e3217652
MD5 9edb5c1d3acb6bf6d859e0c712a8235f
BLAKE2b-256 54365d4b9dc06f44eed4ea645c9eaa094e102eca3920e6263c07dd66724ff5ed

See more details on using hashes here.

File details

Details for the file gnu_screen-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: gnu_screen-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.8.0 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for gnu_screen-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1825357ca6c3ddd35effbd6c919085000bf288c5ff2a2b15cb5ff8ea5315e82b
MD5 235df078eb0a075b344e8f85e27fefe8
BLAKE2b-256 d8335239003886f1b9caaf3949a4063dbf7def23f3db43990c3e4bec61a37a4c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page