Coder Social home page Coder Social logo

slack-cli's Introduction

slack-cli

Join the chat at https://gitter.im/candrholdings/slack-cli A very simple command line interface (CLI) for Slack.

Send a message

slackcli -t slack_token -g group_name -m "Hello World!"

Or if the environment variable SLACK_TOKEN is set, you can simply use,

slackcli -g group_name -m "Hello World!"

Or use -h instead, if you want to post to a channel

slackcli -h channel_name -m "Hello World!"

Send a file

slackcli -t slack_token -g group_name -f filename -m "Download this file"

Send from standard input

# slackcli -t slack_token -g group_name -c
Hello World!

Send with customized icon

# slackcli -t slack_token -g group_name -u goat -e :goat: -m baaaaaaaaa

Install

With npm do:

npm install -g slack-cli

Usage

# slackcli --help
USAGE: node <SOMEWHERE>\npm\node_modules\slack-cli\bin\cmd.js [OPTION1] [OPTION2]... arg1 arg2...
The following options are supported:

  -u, --username <ARG1>         Specify the name of the bot.
  -i, --icon_url <ARG1>         Specify the URL to an image to use as the icon for this message.
  -e, --icon_emoji <ARG1>       Specify the emoji to use as the icon for this message.  This cannot be used together with icon_url.
  -m, --message <ARG1>          Specify the text of the message to send.
  -g, --group <ARG1>            Specify the group name.
  -h, --channel <ARG1>          Specify the channel name.
  -f, --file <ARG1>             Specify the name of the file to send.
  -t, --token <ARG1>            Specify the Slack API token.
  -v, --verbose                 Set to verbose mode.
  -c, --console                 Use console to input message.
  -w, --waitForText <ARG1>      Specify the text message to wait.  Default timeout is 30 seconds.
  -s, --timeout <ARG1>          Specify the seconds to timeout when using --waitForText.
  -l, --linkNames               Link names in messages.
  -r, --read                    Read to stdout.
  -a, --asUser                  Post message as a user for which API Token belongs to.
  -p, --pin                     Pin message after sending.

Advanced Mode

To reuse the Slack token, you can set the token as the environment variable SLACK_TOKEN like this.

SET SLACK_TOKEN=xoxo-12345678-12345678-12345678-123abc

slack-cli's People

Contributors

francois2metz avatar gitter-badger avatar kanzmrsw avatar mylifeasdog avatar paultaykalo avatar pdehaan avatar raymondkpwong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

slack-cli's Issues

Error while trying to send a message to a channel

I'm getting the error shown below while trying to use the command:
slackcli -t token -h channel-name -u username -m "message"

cmd.js line 219 cannot call forEach on undefined while using -h channel

TypeError: Cannot call method 'forEach' of undefined
at Array.async.auto.channelId as 1
at listener (/usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:490:46)
at /usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:441:17
at _each (/usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:46:13)
at Object.taskComplete (/usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:440:13)
at processImmediate as _immediateCallback

Feature Request: Set your current status

It would be awesome if we could use this CLI to set our current status, and how long it should last before being automatically cleared. I'm not certain if that's possible or not, but it would be a great addition to the feature set. Thanks!

Rewrite using promise with mocha

As our user base grows and we want to deliver a more community "contribute-able" version, we plan to rewrite with Promise and automate testing using mocha. Share your ideas. Stay tuned.

Can't send file

$ slackcli -h random -f README.md
/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:340
      if (value.hasOwnProperty('value') && value.hasOwnProperty('options')) {
               ^
TypeError: Cannot read property 'hasOwnProperty' of undefined
    at appendFormValue (/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:340:16)
    at Request.init (/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:354:11)
    at new Request (/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:140:8)
    at request (/usr/local/lib/node_modules/slack-cli/node_modules/request/index.js:55:10)
    at Function.<anonymous> (/usr/local/lib/node_modules/slack-cli/node_modules/request/index.js:63:12)
    at post (/usr/local/lib/node_modules/slack-cli/bin/cmd.js:92:24)
    at Array.async.auto.uploadFile (/usr/local/lib/node_modules/slack-cli/bin/cmd.js:249:13)
    at listener (/usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:490:46)
    at /usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:441:17
    at _each (/usr/local/lib/node_modules/slack-cli/node_modules/async/lib/async.js:46:13)

Error DistributionNotFound

 slack-cli -h
Traceback (most recent call last):
  File "/bin/slack-cli", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3007, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 728, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 626, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: configparser>=3.5

I installed the latest version with pip and running any slack-cli command returns this error. What are the requirements?

My system, Centos 7

Python 2.7.5
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

Do I need other versions?

Error Sending File to a User

I tried this
slackcli -t xxxx-xxx-xxx-xx -a -d @user --file filename.csv -m "message"

and this
slackcli -t xxxx-xxx-xxx-xx -a -d @user --file /full/path/to/file/filename.csv -m "message"

for both I get the following error

/usr/local/lib/node_modules/slack-cli/node_modules/form-data/lib/form_data.js:217`
var filename = options.filename || value.name || value.path;
^

TypeError: Cannot read property 'name' of undefined
at FormData._getContentDisposition (/usr/local/lib/node_modules/slack-cli/node_modules/form-data/lib/form_data.js:217:43)
at FormData._multiPartHeader (/usr/local/lib/node_modules/slack-cli/node_modules/form-data/lib/form_data.js:171:33)
at FormData.append (/usr/local/lib/node_modules/slack-cli/node_modules/form-data/lib/form_data.js:64:21)
at appendFormValue (/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:327:21)
at Request.init (/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:338:11)
at new Request (/usr/local/lib/node_modules/slack-cli/node_modules/request/request.js:128:8)
at request (/usr/local/lib/node_modules/slack-cli/node_modules/request/index.js:54:10)
at Function.post (/usr/local/lib/node_modules/slack-cli/node_modules/request/index.js:62:12)
at post (/usr/local/lib/node_modules/slack-cli/bin/cmd.js:124:24)
at Array.async.auto.uploadFile (/usr/local/lib/node_modules/slack-cli/bin/cmd.js:380:13)

env: node\r: Not a directory

Was getting env: node\r: Not a directory when trying to use slackcli command.

Got it working by:

vim /Users/username/.node/lib/node_modules/slack-cli/bin/cmd.js
:set ff=unix
:x

Error on install node 8.7.0

bufferutil errors during the install. node --version;npm i -g slack-cli

v8.7.0
/usr/local/bin/slackcli -> /usr/local/lib/node_modules/slack-cli/bin/cmd.js

> [email protected] install /usr/local/lib/node_modules/slack-cli/node_modules/bufferutil
> node-gyp rebuild

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
../../nan/nan_new.h:34:56: warning: 'ToInt32' is deprecated [-Wdeprecated-declarations]
To<v8::Int32>(v8::Handle<v8::Integer> i)   { return i->ToInt32(); }
                                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2331:10: note: 'ToInt32' has been explicitly marked deprecated here
  inline V8_DEPRECATED("Use maybe version", Local<Int32> ToInt32() const);
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
../../nan/nan_new.h:39:56: warning: 'ToUint32' is deprecated [-Wdeprecated-declarations]
To<v8::Uint32>(v8::Handle<v8::Integer> i)  { return i->ToUint32(); }
                                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2330:10: note: 'ToUint32' has been explicitly marked deprecated here
  inline V8_DEPRECATED("Use maybe version", Local<Uint32> ToUint32() const);
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:49:29: warning: 'New' is deprecated [-Wdeprecated-declarations]
  return v8::BooleanObject::New(value).As<v8::BooleanObject>();
                            ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:4793:3: note: 'New' has been explicitly marked deprecated here
  V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
  ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:166:30: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:173:30: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:205:22: warning: 'NewFromOneByte' is deprecated [-Wdeprecated-declarations]
  return v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), value,
                     ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2668:10: note: 'NewFromOneByte' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:217:22: warning: 'NewExternal' is deprecated [-Wdeprecated-declarations]
  return v8::String::NewExternal(v8::Isolate::GetCurrent(), value);
                     ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2707:10: note: 'NewExternal' has been explicitly marked deprecated here
  static V8_DEPRECATED("Use maybe version",
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:237:30: warning: 'CompileUnbound' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::CompileUnbound(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1403:10: note: 'CompileUnbound' has been explicitly marked deprecated here
  static V8_DEPRECATED("Use maybe version",
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:244:30: warning: 'CompileUnbound' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::CompileUnbound(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1403:10: note: 'CompileUnbound' has been explicitly marked deprecated here
  static V8_DEPRECATED("Use maybe version",
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
../../nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                        ^
../../nan/nan.h:256:25: note: previous definition is here
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                        ^
../../nan/nan.h:289:39: warning: 'IdleNotification' is deprecated [-Wdeprecated-declarations]
    return v8::Isolate::GetCurrent()->IdleNotification(idle_time_in_ms);
                                      ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:7428:3: note: 'IdleNotification' has been explicitly marked deprecated here
  V8_DEPRECATED("use IdleNotificationDeadline()",
  ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
../../nan/nan.h:473:20: error: no type named 'GCEpilogueCallback' in 'v8::Isolate'
      v8::Isolate::GCEpilogueCallback callback
      ~~~~~~~~~~~~~^
../../nan/nan.h:479:20: error: no type named 'GCEpilogueCallback' in 'v8::Isolate'
      v8::Isolate::GCEpilogueCallback callback) {
      ~~~~~~~~~~~~~^
../../nan/nan.h:484:20: error: no type named 'GCPrologueCallback' in 'v8::Isolate'
      v8::Isolate::GCPrologueCallback callback
      ~~~~~~~~~~~~~^
../../nan/nan.h:490:20: error: no type named 'GCPrologueCallback' in 'v8::Isolate'
      v8::Isolate::GCPrologueCallback callback) {
      ~~~~~~~~~~~~~^
../../nan/nan.h:569:15: error: no type named 'WeakCallbackData' in namespace 'v8'
    const v8::WeakCallbackData<T, _NanWeakCallbackInfo<T, P> > &data) {
          ~~~~^
../../nan/nan.h:569:31: error: expected ')'
    const v8::WeakCallbackData<T, _NanWeakCallbackInfo<T, P> > &data) {
                              ^
../../nan/nan.h:568:41: note: to match this '('
  static void _NanWeakCallbackDispatcher(
                                        ^
../../nan/nan.h:570:42: error: use of undeclared identifier 'data'
      _NanWeakCallbackInfo<T, P> *info = data.GetParameter();
                                         ^
../../nan/nan.h:661:13: error: no member named 'smalloc' in namespace 'node'
    , node::smalloc::FreeCallback callback
      ~~~~~~^
../../nan/nan.h:672:12: error: no matching function for call to 'New'
    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
           ^~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:67:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:55:40: note: candidate function not viable: no known conversion from 'const char *' to 'v8::Local<v8::String>' for 2nd argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:52:40: note: candidate function not viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:60:40: note: candidate function not viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
In file included from ../src/bufferutil.cc:16:
../../nan/nan.h:676:12: error: no viable conversion from returned value of type 'v8::MaybeLocal<v8::Object>' to function return type 'v8::Local<v8::Object>'
    return node::Buffer::New(v8::Isolate::GetCurrent(), size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:196:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'v8::MaybeLocal<v8::Object>' to
      'const v8::Local<v8::Object> &' for 1st argument
class Local {
      ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:196:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'v8::MaybeLocal<v8::Object>' to
      'v8::Local<v8::Object> &&' for 1st argument
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:200:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'
  V8_INLINE Local(Local<S> that)
            ^
In file included from ../src/bufferutil.cc:16:
../../nan/nan.h:683:26: error: no member named 'Use' in namespace 'node::Buffer'
    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
           ~~~~~~~~~~~~~~^
../../nan/nan.h:710:32: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
    return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
                               ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/bufferutil.cc:16:
../../nan/nan.h:717:32: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
    return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
                               ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/bufferutil.cc:30:5: error: call to 'NODE_SET_METHOD' is ambiguous
    NODE_SET_METHOD(t, "unmask", BufferUtil::Unmask);
    ^~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:299:25: note: expanded from macro 'NODE_SET_METHOD'
#define NODE_SET_METHOD node::NODE_SET_METHOD
                        ^~~~~~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:274:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Template> recv,
            ^
/Users/andre/.node-gyp/8.7.0/include/node/node.h:287:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
            ^
../src/bufferutil.cc:31:5: error: call to 'NODE_SET_METHOD' is ambiguous
    NODE_SET_METHOD(t, "mask", BufferUtil::Mask);
    ^~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:299:25: note: expanded from macro 'NODE_SET_METHOD'
#define NODE_SET_METHOD node::NODE_SET_METHOD
                        ^~~~~~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:274:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Template> recv,
            ^
/Users/andre/.node-gyp/8.7.0/include/node/node.h:287:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
            ^
../src/bufferutil.cc:32:5: error: call to 'NODE_SET_METHOD' is ambiguous
    NODE_SET_METHOD(t, "merge", BufferUtil::Merge);
    ^~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:299:25: note: expanded from macro 'NODE_SET_METHOD'
#define NODE_SET_METHOD node::NODE_SET_METHOD
                        ^~~~~~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:274:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Template> recv,
            ^
/Users/andre/.node-gyp/8.7.0/include/node/node.h:287:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
            ^
In file included from ../src/bufferutil.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Primitive *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:414:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/bufferutil.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Boolean *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:424:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/bufferutil.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Function *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:1514:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/bufferutil.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Object *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:1632:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here
    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
12 warnings and 19 errors generated.
make: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/Cellar/node/8.7.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/slack-cli/node_modules/bufferutil
gyp ERR! node -v v8.7.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok

> [email protected] install /usr/local/lib/node_modules/slack-cli/node_modules/utf-8-validate
> node-gyp rebuild

  CXX(target) Release/obj.target/validation/src/validation.o
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
../../nan/nan_new.h:34:56: warning: 'ToInt32' is deprecated [-Wdeprecated-declarations]
To<v8::Int32>(v8::Handle<v8::Integer> i)   { return i->ToInt32(); }
                                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2331:10: note: 'ToInt32' has been explicitly marked deprecated here
  inline V8_DEPRECATED("Use maybe version", Local<Int32> ToInt32() const);
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
../../nan/nan_new.h:39:56: warning: 'ToUint32' is deprecated [-Wdeprecated-declarations]
To<v8::Uint32>(v8::Handle<v8::Integer> i)  { return i->ToUint32(); }
                                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2330:10: note: 'ToUint32' has been explicitly marked deprecated here
  inline V8_DEPRECATED("Use maybe version", Local<Uint32> ToUint32() const);
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:49:29: warning: 'New' is deprecated [-Wdeprecated-declarations]
  return v8::BooleanObject::New(value).As<v8::BooleanObject>();
                            ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:4793:3: note: 'New' has been explicitly marked deprecated here
  V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
  ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:166:30: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:173:30: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:205:22: warning: 'NewFromOneByte' is deprecated [-Wdeprecated-declarations]
  return v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), value,
                     ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2668:10: note: 'NewFromOneByte' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:217:22: warning: 'NewExternal' is deprecated [-Wdeprecated-declarations]
  return v8::String::NewExternal(v8::Isolate::GetCurrent(), value);
                     ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:2707:10: note: 'NewExternal' has been explicitly marked deprecated here
  static V8_DEPRECATED("Use maybe version",
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:237:30: warning: 'CompileUnbound' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::CompileUnbound(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1403:10: note: 'CompileUnbound' has been explicitly marked deprecated here
  static V8_DEPRECATED("Use maybe version",
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
In file included from ../../nan/nan.h:82:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:244:30: warning: 'CompileUnbound' is deprecated [-Wdeprecated-declarations]
  return v8::ScriptCompiler::CompileUnbound(v8::Isolate::GetCurrent(), &src);
                             ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1403:10: note: 'CompileUnbound' has been explicitly marked deprecated here
  static V8_DEPRECATED("Use maybe version",
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
../../nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                        ^
../../nan/nan.h:256:25: note: previous definition is here
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                        ^
../../nan/nan.h:289:39: warning: 'IdleNotification' is deprecated [-Wdeprecated-declarations]
    return v8::Isolate::GetCurrent()->IdleNotification(idle_time_in_ms);
                                      ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:7428:3: note: 'IdleNotification' has been explicitly marked deprecated here
  V8_DEPRECATED("use IdleNotificationDeadline()",
  ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
../../nan/nan.h:473:20: error: no type named 'GCEpilogueCallback' in 'v8::Isolate'
      v8::Isolate::GCEpilogueCallback callback
      ~~~~~~~~~~~~~^
../../nan/nan.h:479:20: error: no type named 'GCEpilogueCallback' in 'v8::Isolate'
      v8::Isolate::GCEpilogueCallback callback) {
      ~~~~~~~~~~~~~^
../../nan/nan.h:484:20: error: no type named 'GCPrologueCallback' in 'v8::Isolate'
      v8::Isolate::GCPrologueCallback callback
      ~~~~~~~~~~~~~^
../../nan/nan.h:490:20: error: no type named 'GCPrologueCallback' in 'v8::Isolate'
      v8::Isolate::GCPrologueCallback callback) {
      ~~~~~~~~~~~~~^
../../nan/nan.h:569:15: error: no type named 'WeakCallbackData' in namespace 'v8'
    const v8::WeakCallbackData<T, _NanWeakCallbackInfo<T, P> > &data) {
          ~~~~^
../../nan/nan.h:569:31: error: expected ')'
    const v8::WeakCallbackData<T, _NanWeakCallbackInfo<T, P> > &data) {
                              ^
../../nan/nan.h:568:41: note: to match this '('
  static void _NanWeakCallbackDispatcher(
                                        ^
../../nan/nan.h:570:42: error: use of undeclared identifier 'data'
      _NanWeakCallbackInfo<T, P> *info = data.GetParameter();
                                         ^
../../nan/nan.h:661:13: error: no member named 'smalloc' in namespace 'node'
    , node::smalloc::FreeCallback callback
      ~~~~~~^
../../nan/nan.h:672:12: error: no matching function for call to 'New'
    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
           ^~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:67:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:55:40: note: candidate function not viable: no known conversion from 'const char *' to 'v8::Local<v8::String>' for 2nd argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:52:40: note: candidate function not viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                       ^
/Users/andre/.node-gyp/8.7.0/include/node/node_buffer.h:60:40: note: candidate function not viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
In file included from ../src/validation.cc:15:
../../nan/nan.h:676:12: error: no viable conversion from returned value of type 'v8::MaybeLocal<v8::Object>' to function return type 'v8::Local<v8::Object>'
    return node::Buffer::New(v8::Isolate::GetCurrent(), size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:196:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'v8::MaybeLocal<v8::Object>' to
      'const v8::Local<v8::Object> &' for 1st argument
class Local {
      ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:196:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'v8::MaybeLocal<v8::Object>' to
      'v8::Local<v8::Object> &&' for 1st argument
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:200:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'
  V8_INLINE Local(Local<S> that)
            ^
In file included from ../src/validation.cc:15:
../../nan/nan.h:683:26: error: no member named 'Use' in namespace 'node::Buffer'
    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
           ~~~~~~~~~~~~~~^
../../nan/nan.h:710:32: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
    return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
                               ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
In file included from ../src/validation.cc:15:
../../nan/nan.h:717:32: warning: 'Compile' is deprecated [-Wdeprecated-declarations]
    return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
                               ^
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:1422:10: note: 'Compile' has been explicitly marked deprecated here
  static V8_DEPRECATED(
         ^
/Users/andre/.node-gyp/8.7.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/validation.cc:112:5: error: call to 'NODE_SET_METHOD' is ambiguous
    NODE_SET_METHOD(t, "isValidUTF8", Validation::IsValidUTF8);
    ^~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:299:25: note: expanded from macro 'NODE_SET_METHOD'
#define NODE_SET_METHOD node::NODE_SET_METHOD
                        ^~~~~~~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/node.h:274:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Template> recv,
            ^
/Users/andre/.node-gyp/8.7.0/include/node/node.h:287:13: note: candidate function
inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
            ^
In file included from ../src/validation.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Primitive *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:414:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/validation.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Boolean *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:424:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/validation.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Function *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:1514:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/validation.cc:7:
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:207:5: error: assigning to 'v8::Object *' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/andre/.node-gyp/8.7.0/include/node/v8.h:161:39: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../../nan/nan.h:1632:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here
    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
           ^
../../nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
12 warnings and 17 errors generated.
make: *** [Release/obj.target/validation/src/validation.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/Cellar/node/8.7.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/slack-cli/node_modules/utf-8-validate
gyp ERR! node -v v8.7.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/slack-cli/node_modules/bufferutil):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/slack-cli/node_modules/utf-8-validate):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ [email protected]
added 4 packages and updated 1 package in 5.592s

Issue #14 resurfaced, and hasn't been reopened

#14 should likely have been reopened. Trying to create a new issue so that it gets attention.

It seems that posting any message with file is rejected with the error: pinning a file is not supported

Nothing else I can change seems to influence this.

Perhaps related, but less of an issue, the SLACK_TOKEN enviroment variable isn't being picked up either for me, so I cannot test without the --token xoxo-...... argument.

Error sending file to channel

When executing slackcli -h channel-name -f test.apk I get the error:

{ error: { err: 'pinning a file is not supported', message: undefined } }

"Pinning a file is not supported" without -p option

Hi, awesome tool! I only have one problem: I'm trying to send a file (don't know if I'm doing it right, I'm specifying the path as file name) but is shows me this error:
{ error: { err: 'pinning a file is not supported', message: undefined } }
which is really strange because I am not using the -p option for pinning the message.

Talking to a bot

I've used slack-cli successfully with my team's slack. However, I can't send a message to a bot (specifically, growthbot) that is a member of our team. I've tried both sending a direct message to the bot, and also sending a message to a channel that the bot is monitoring. The message does arrive in the chat or channel, but the bot apparently doesn't see it. Typing the exact same message by hand into the Slack app works as expected.

For example,

  • As a direct message: Tell me about IBM
  • As a message to a channel: @growthbot Tell me about IBM

Any thoughts why this doesn't work, and/or how to make it work?

Ability to send DM

Is it possible to currently send DM'S?

tried using -c @username but didn't seem to work, and since none of the documentation eludes to it wondering if it's even possible?

Can't get slack-cli to install

Below is the output with the errors:
npm install -g slack-cli

/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/bin/slackcli -> /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/bin/cmd.js

> [email protected] install /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory `/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
In file included from ../src/bufferutil.cc:16:0:
../../nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                         ^
../../nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                         ^
../../nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../../nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../../nan/nan.h:665:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../../nan/nan.h:665:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../../nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../../nan/nan.h:672:67: note: candidates are:
In file included from ../src/bufferutil.cc:10:0:
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:31:40: note:   no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:43:40: note:   no known conversion for argument 2 from ‘const char*’ to ‘char*’
In file included from ../src/bufferutil.cc:16:0:
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../../nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
     return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                                                             ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../../nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
            ^
make: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1
make: Leaving directory `/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/bufferutil/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.10.0-229.20.1.el7.x86_64
gyp ERR! command "/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/bin/node" "/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/bufferutil
gyp ERR! node -v v5.3.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild`
npm WARN install:[email protected] Exit status 1

> [email protected] install /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory `/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
In file included from ../src/validation.cc:15:0:
../../nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                         ^
../../nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                         ^
../../nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../../nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../../nan/nan.h:665:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../../nan/nan.h:665:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../../nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../../nan/nan.h:672:67: note: candidates are:
In file included from ../src/validation.cc:10:0:
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:31:40: note:   no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/var/lib/jenkins/.node-gyp/5.3.0/include/node/node_buffer.h:43:40: note:   no known conversion for argument 2 from ‘const char*’ to ‘char*’
In file included from ../src/validation.cc:15:0:
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../../nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
     return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                                                             ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../../nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
            ^
make: *** [Release/obj.target/validation/src/validation.o] Error 1
make: Leaving directory `/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/utf-8-validate/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.10.0-229.20.1.el7.x86_64
gyp ERR! command "/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/bin/node" "/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib/node_modules/slack-cli/node_modules/utf-8-validate
gyp ERR! node -v v5.3.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild`
npm WARN install:[email protected] Exit status 1
/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.3.0/lib
└─┬ [email protected] 
  ├── [email protected] 
  ├─┬ [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├─┬ [email protected] 
  │ │ └─┬ [email protected] 
  │ │   ├── [email protected] 
  │ │   ├── [email protected] 
  │ │   ├── [email protected] 
  │ │   ├── [email protected] 
  │ │   ├── [email protected] 
  │ │   └── [email protected] 
  │ ├── [email protected] 
  │ ├─┬ [email protected] 
  │ │ └── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├─┬ [email protected] 
  │ │ └── [email protected] 
  │ ├─┬ [email protected] 
  │ │ ├─┬ [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ ├─┬ [email protected] 
  │ │ │ │ └── [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ └── [email protected] 
  │ │ ├─┬ [email protected] 
  │ │ │ └── [email protected] 
  │ │ ├─┬ [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ ├─┬ [email protected] 
  │ │ │ │ └── [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ └── [email protected] 
  │ │ └─┬ [email protected] 
  │ │   └── [email protected] 
  │ ├─┬ [email protected] 
  │ │ ├── [email protected] 
  │ │ ├── [email protected] 
  │ │ ├── [email protected] 
  │ │ └── [email protected] 
  │ ├─┬ [email protected] 
  │ │ ├── [email protected] 
  │ │ ├─┬ [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ ├── [email protected] 
  │ │ │ └── [email protected] 
  │ │ └─┬ [email protected] 
  │ │   ├── [email protected] 
  │ │   ├── [email protected] 
  │ │   ├─┬ [email protected] 
  │ │   │ └── [email protected] 
  │ │   ├── [email protected] 
  │ │   ├─┬ [email protected] 
  │ │   │ └── [email protected] 
  │ │   ├── [email protected] 
  │ │   ├── [email protected] 
  │ │   └── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├─┬ [email protected] 
  │ │ └── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ └── [email protected] 
  ├── [email protected] 
  ├─┬ [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ ├── [email protected] 
  │ └── [email protected] 
  └─┬ [email protected] 
    ├── [email protected] 
    └── [email protected] 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.