/shellshare

シェルをWebSocketでシェアする何か

Primary LanguagePythonMIT LicenseMIT

ShellShare

これはなに

複数のシェルの画面をWebサイトからリアルタイムで見れるようにする何かです。
プログラミング系の勉強会で、コードに関して議論するときにプロジェクタのコネクタを差し替えるのが面倒だから作りました。
やっていることは単純で、tmuxのpipe-paneを使ってシェルの操作をファイルに書きだし、それをPythonスクリプトで監視して転送しています。
サーバーと発表者の間はWebSocketを用いて転送しています。
内部的なプロトコルはVSShareとほぼ同様のものを使っています。(つまり将来的にはVSShareでホストできるようにしたい)

つかいかた

サーバー

やくわり

  • WebSocketのハブ役

必要な環境

  • Python 2.7

セットアップ方法

packages_requirements.txtpip installにかけてください。
必要なら./install.shを実行することで、自動的にvirtualenvを作って、その中に環境構築を行ってくれます。

実行方法

server.pyを実行します。
install.shを使った場合には、serverディレクトリ内にenvディレクトリ(virtualenv)を読み込んでから実行してください。

  • source server/env/bin/activate

クライアント(発表者)

やくわり

  • 発表する側(シェルの画面を共有する側)

必要な環境

  • Python 2.7
  • tmux

セットアップ方法

./install.shを実行することで、自動的にvirtualenvを作って、その中に環境構築を行ってくれます。
もし手動でインストールを行いたい場合には、packages_requirements.txtpip installにかけてください。 なお、その場合にはrun.shの中で、自動的にvirtualenvを読み込むようにしているので、その行を削除するか、パスを変更してください。

実行方法

./run.sh [UserName]を実行します。

  • 例: ./run.sh igarashi

ビューアー

やくわり

  • シェアされているコードを見る側

必要な環境

  • (環境構築時のみ)npm

セットアップ方法

./setup.shを実行することで、自動的に環境構築を行ってくれます。

実行方法

置くだけです。

ライセンス