README
Slack Location Manager
A command-line tool that sets your slack status for you depending on your location. Run the wizard to create a daily cron job, automating the process for the future.
Purpose
The team at F1V works in different offices depending on the day. We let our team know who is at which office by setting our slack status (e.g. use the 'house' emoji when we're working from home). Once you install this tool, this process will be automated by a daily cron job.
If you're not part of our team and are considering using this, you can create a Slack app in your workspace and get a token from it.
Install
Globally install the package
npm install -g slack-location-manager
Setup the cron job
Important: A token will be required for first-time setup, see below section How to get a Token
slm install
Other Commands
slm log
// Outputs the content of most recent cron job log file
slm set
// Command that cron will call daily. Use this to test setting your status.
slm uninstall
// This will remove the locally stored token and any related cron jobs from your machine
How to Get a Token
Note: you should only have to do this once
- Go to your workspace apps
- Click Location Manager
- Go to 'Install App' and click the 'Install App' button, and copy token
How it Works
Install wizard
- User is prompted for token and desired time of day to run script (prompts, chalk)
- Token is saved locally (node-persist)
- Cron job is created (node-crontab, shelljs)
Recurring script
- Status emoji is calculated based on IP address location (ipinfo.io, geolib)
- Token is retrieved from local storage (node-persist)
- API call is made to Slack (node-slack-sdk, Slack Web API)