Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/meinside/telegram-clojure-repl-bot

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/meinside/telegram-clojure-repl-bot

  • v0.1.2
  • Source
  • Go
  • Socket score

Version published
Created
Source

telegram-clojure-repl-bot

A Telegram bot for using Clojure REPL, built with golang.

telegram-bot-repl_screenshot_20191110

It connects to an existing PREPL connection, or launches a new PREPL and communicates with it.

1. Install

$ go install github.com/meinside/telegram-clojure-repl-bot@latest

2. Configure

$ git clone https://github.com/meinside/telegram-clojure-repl-bot.git
$ cp telegram-clojure-repl-bot/config.json.sample /path/to/your/config.json
$ vi /path/to/your/config.json

and change values to yours:

{
	"api_token": "0123456789:abcdefghijklmnopqrstuvwyz-x-0a1b2c3d4e",
	"clojure_bin_path": "/usr/local/bin/clojure",
	"repl_host": "localhost",
	"repl_port": 8888,
	"allowed_ids": [
		"telegram_id_1",
		"telegram_id_2"
	],
	"monitor_interval": 1,
	"is_verbose": false
}

3. Run

Execute the installed binary with the path to your config file:

$ telegram-clojure-repl-bot /path/to/your/config.json

4. Run as a service

A. Systemd on Linux

$ sudo cp telegram-clojure-repl-bot/systemd/telegram-clojure-repl-bot.service /lib/systemd/system/
$ sudo vi /lib/systemd/system/telegram-clojure-repl-bot.service

and edit User, Group, WorkingDirectory and ExecStart values.

It will launch automatically on boot with:

$ sudo systemctl enable telegram-clojure-repl-bot.service

and will start/stop manually with:

$ sudo systemctl start telegram-clojure-repl-bot.service
$ sudo systemctl stop telegram-clojure-repl-bot.service

B. Launchd on macOS

$ sudo cp telegram-clojure-repl-bot/launchd/telegram-clojure-repl-bot.plist /Library/LaunchDaemons/
$ sudo vi /Library/LaunchDaemons/telegram-clojure-repl-bot.plist

and edit values:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>telegram-clojure-repl-bot</string>
	<key>ProgramArguments</key>
	<array>
		<string>/path/to/installed/telegram-clojure-repl-bot</string>
		<string>/path/to/your/config.json</string>
	</array>
	<key>UserName</key>
	<string>user_name</string>
	<key>RunAtLoad</key>
	<true/>
	<key>KeepAlive</key>
	<true/>
</dict>
</plist>

Now load it with:

$ sudo launchctl load /Library/LaunchDaemons/telegram-clojure-repl-bot.plist

and unload with:

$ sudo launchctl unload /Library/LaunchDaemons/telegram-clojure-repl-bot.plist

999. Known Issues

A. Stdin Problem with Systemd

When running with systemd, the PREPL launched by this bot stops immediately because it is an interactive shell-like application.

So I put StandardInput and TTYPath properties in the Service section in systemd .service file:

StandardInput=tty
TTYPath=/dev/tty49

If these would be a problem for you, change them or launch your PREPL manually.

B. Systemd Service Failure with ASDF

When running with java/clojure installed with asdf, JAVA_HOME must be specified in the Environment section of the systemd .service file:

# example
Environment="JAVA_HOME=/home/ubuntu/.asdf/installs/java/zulu-17.32.13"

License

MIT

FAQs

Package last updated on 03 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc