crpty

Call forkpty(3) from Crystal code

crpty

Use forkpty(3) from Crystal.

Note: this library is only an experiment/learning project for now. Only tested on Ubuntu 20.04 LTS 64-bit. Requires gcc to compile.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      crpty:
        github: federicotdn/crpty
    
  2. Run shards install

Usage

require "crpty"

result = CrPty.fork_pty()

if result.pid == 0
  # Child process!
  # Do something like e.g. exec() to Bash
else
  # Parent process!
  # `result.master_fd` points to the master side of the pseudoterminal
  master_fd = IO::FileDescriptor.new result.master_fd
  
  # e.g. Copy bytes from STDIN to master_fd and from master_fd to STDOUT
end

Contributing

  1. Fork it (https://github.com/federicotdn/crpty/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Repository

crpty

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 0
  • over 3 years ago
  • August 4, 2021
License

MIT License

Links
Synced at

Sat, 21 Dec 2024 17:34:21 GMT

Languages