tatcli

command module
v0.51.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2015 License: BSD-3-Clause Imports: 14 Imported by: 0

README

Description

Tat Command Line Interface.

See Tat Engine for more information: https://github.com/tat/tatcli

How to build

git clone https://github.com/ovh/tatcli.git && cd tatcli
go get && go build && ./tatcli -h

Usage

Documentation

Usage:
  tatcli [command]

Available Commands:
  config      Config commands: tatcli config --help
  group       Group commands: tatcli group --help
  message     Manipulate messages: tatcli message --help
  presence    Presence commands: tatcli presence --help
  socket      Socket commands: tatcli socket --help
  stats       Stats commands (admin only): tatcli stats --help
  topic       Topic commands: tatcli topic --help
  update      Update tatcli to the latest release version: tatcli update
  user        User commands: tatcli user --help
  version     Display Version of tatcli and tat engine if configured : tatcli version
  help        Help about any command

Flags:
  -c, --configFile="$HOME/.tatcli/config.json": configuration file, default is $HOME/.tatcli/config.json
  -h, --help=false: help for tatcli
  -p, --password="": password, facultative if you have a $HOME/.tatcli/config.json file
  -t, --pretty=false: Pretty Print Json Output
  -l, --sslInsecureSkipVerify=false: Skip certificate check with SSL connection
      --url="": URL Tat Engine, facultative if you have a $HOME/.tatcli/config.json file
  -u, --username="": username, facultative if you have a $HOME/.tatcli/config.json file
  -v, --verbose=false: verbose output


Use "tatcli [command] --help" for more information about a command.
Command Config
Config commands: tatcli config <command>

Usage:
  tatcli config [command]

Aliases:
  config, c


Available Commands:
  template    Write a template configuration file in $HOME/.tatcli/config.json: tatcli config template
  show        Show Configuration: tatcli config show

Flags:
  -h, --help=false: help for config

Global Flags: see tatcli -h

Use "tatcli config [command] --help" for more information about a command.

Command Group
Group commands: tatcli group <command>

Usage:
  tatcli group [command]

Aliases:
  group, g


Available Commands:
  list            List all groups: tatcli group list <skip> <limit>
  create          create a new group: tatlic group create <groupname> <description>
  addUser         Add Users to a group: tacli group addUser <groupname> <username1> [<username2> ... ]
  deleteUser      Delete Users from a group: tacli group deleteUser <groupname> <username1> [<username2> ... ]
  addAdminUser    Add Admin Users to a group: tacli group addAdminUser <groupname> <username1> [<username2> ... ]
  deleteAdminUser Delete Admin Users from a group: tacli group deleteAdminUser <groupname> <username1> [<username2> ... ]

Flags:
  -h, --help=false: help for group

Global Flags: see tatcli -h

Use "tatcli group [command] --help" for more information about a command.

Command Message
Manipulate messages: tatcli message <command>

Usage:
  tatcli message [command]

Aliases:
  message, m, msg


Available Commands:
  list        List all messages on one topic: tatcli msg list <Topic> <skip> <limit>
  add         tatcli message add [--dateCreation=timestamp] <topic> <my message>
  reply       Reply to a message: tatcli message reply <topic> <inReplyOfId> <my message...>
  bookmark    Bookmark a message to a topic: tatcli message bookmark /Private/username/bookmarks/sub-topic idMessage
  delete      Remove a message (or bookmark) from Private Topic: tatcli message delete <idMessage>
  update      Update a message (if it's enabled on topic): tatcli message update <topic> <idMessage> <my message...>
  task        Create a task from one message to a topic: tatcli message task /Private/username/tasks/sub-topic idMessage
  untask      Remove a message from tasks: tatcli message untask /Private/username/tasks idMessage
  like        Like a message: tatcli message like <idMessage>
  unlike      Unlike a message: tatcli message unlike <idMessage>
  label       Add a label to a message: tatcli message label <idMessage> <colorInHexa> <my Label>
  unlabel     Remove a label from a message: tatcli message unlabel <idMessage> <my Label>
  tag         Add a tag to a message (user system with rights only): tatcli message tag <idMessage> <my Tag>
  untag       Remove a tag from a message (user system with rights only): tatcli message untag <idMessage> <myTag>
  read        List all messages on one public topic (read only): tatcli msg read <Topic> <skip> <limit>

Flags:
  -h, --help=false: help for message

Global Flags: see tatcli -h

Use "tatcli message [command] --help" for more information about a command.

Command Message list
List all messages of a topic: tatcli msg list <Topic> <skip> <limit>

Usage:
  tatcli message list [flags]

Aliases:
  list, l


Flags:
      --allIDMessage="": Search in All ID Message (idMessage, idReply, idRoot)
      --andLabel="": Search by label (and) : could be labelA,labelB
      --andTag="": Search by tag (and) : could be tagA,tagB
      --dateMaxCreation="": Search by dateMaxCreation (timestamp)
      --dateMaxUpdate="": Search by dateMaxUpdate (timestamp)
      --dateMinCreation="": Search by dateMinCreation (timestamp)
      --dateMinUpdate="": Search by dateMinUpdate (timestamp)
  -h, --help=false: help for list
      --idMessage="": Search by IDMessage
      --inReplyOfID="": Search by IDMessage InReply
      --inReplyOfIDRoot="": Search by IDMessage IdRoot
      --label="": Search by label: could be labelA,labelB
      --notLabel="": Search by label (exclude): could be labelA,labelB
      --notTag="": Search by tag (exclude) : could be tagA,tagB
      --tag="": Search by tag : could be tagA,tagB
      --text="": Search by text
      --topic="": Search by topic
      --treeView="": Tree View of messages: onetree or fulltree. Default: notree
      --username="": Search by username : could be usernameA,usernameB

Command Presence
Presence commands: tatcli presence [<command>]

Usage:
  tatcli presence [command]

Aliases:
  presence, p


Available Commands:
  add         Add a new presence on one topic with status (online, offline, busy): tatcli presence add <topic> <status>
  list        List all presences on one topic: tatcli presence list <topic> [<skip>] [<limit>]

Flags:
  -h, --help=false: help for presence

Global Flags: see tatcli -h

Command Socket
Socket commands: tatcli socket [<command>]

Usage:
  tatcli socket [command]

Aliases:
  socket, s


Available Commands:
  dump        Dump websocket admin variables: tatcli socket dump
  messages    Open websocket and get events messages on one or many topics: tatcli socket messages <<topic>|all|onetree|fulltree>> [topic]...
  messagesNew Open websocket and get events on new messages on one or many topics: tatcli socket messagesNew <<topic>|all>> [topic]...
  interactive Interactive mode Websocket: tatcli socket interactive (or tatcli socket i)
  users       Open websocket and get events users (admin only): tatcli socket users

Flags:
  -h, --help=false: help for socket

Global Flags: see tatcli -h

Command Topic
Topic commands: tatcli topic [command]

Usage:
  tatcli topic [command]

Aliases:
  topic, t


Available Commands:
  list             List all topics: tatcli topic list [<skip>] [<limit>] [<true>] if true, return unread cound msg
  create           Create a new topic: tatcli create <topic> <description of topic>
  delete           Delete a new topic: tatcli delete <topic>
  addRoUser        Add Read Only Users to a topic: tatcli topic addRoUser [--recursive] <topic> <username1> [username2]...
  addRwUser        Add Read Write Users to a topic: tatcli topic addRwUser [--recursive] <topic> <username1> [username2]...
  addAdminUser     Add Admin Users to a topic: tatcli topic addAdminUser [--recursive] <topic> <username1> [username2]...
  deleteRoUser     Delete Read Only Users from a topic: tatcli topic deleteRoUser [--recursive] <topic> <username1> [username2]...
  deleteRwUser     Delete Read Write Users from a topic: tatcli topic deleteRwUser [--recursive] <topic> <username1> [username2]...
  deleteAdminUser  Delete Admin Users from a topic: tatcli topic deleteAdminUser [--recursive] <topic> <username1> [username2]...
  addRoGroup       Add Read Only Groups to a topic: tatcli topic addRoGroup [--recursive] <topic> <groupname1> [<groupname2>]...
  addRwGroup       Add Read Write Groups to a topic: tatcli topic addRwGroup [--recursive] <topic> <groupname1> [<groupname2>]...
  addAdminGroup    Add Admin Groups to a topic: tatcli topic addAdminGroup [--recursive] <topic> <groupname1> [groupname2]...
  deleteRoGroup    Delete Read Only Groups from a topic: tatcli topic deleteRoGroup [--recursive] <topic> <groupname1> [<groupname2>]...
  deleteRwGroup    Delete Read Write Groups from a topic: tatcli topic deleteRwGroup [--recursive] <topic> <groupname1> [<groupname2>]...
  deleteAdminGroup Delete Admin Groups from a topic: tatcli topic deleteAdminGroup [--recursive] <topic> <groupname1> [<groupname2>]...
  addParameter     Add Parameter to a topic: tatcli topic addParameter [--recursive] <topic> <key>:<value> [<key2>:<value2>]...
  deleteParameter  Remove Parameter to a topic: tatcli topic deleteParameter [--recursive] <topic> <key> [<key2>]...
  parameter        Update param on one topic: tatcli topic param [--recursive] <topic> <maxLength> <canForceDate> <canUpdateMsg> <canDeleteMsg> <canUpdateAllMsg> <canDeleteAllMsg> <isROPublic>

Flags:
  -h, --help=false: help for topic

Global Flags: see tatcli -h

Command Stats
Stats commands (admin only): tatcli stats [<command>]

Usage:
  tatcli stats [command]

Aliases:
  stats, stat


Available Commands:
  count              Count all messages, groups, presences, users, groups, topics: tatcli stats count
  distribution       Distribution of messages per topics: tatcli stats distribution
  dbstats            DB Stats: tatcli stats dbstats
  dbServerStatus     DB Stats: tatcli stats dbServerStatus
  dbReplSetGetConfig DB Stats: tatcli stats dbReplSetGetConfig
  dbReplSetGetStatus DB Stats: tatcli stats dbReplSetGetStatus
  dbCollections      DB Stats on each collection: tatcli stats dbCollections
  dbSlowestQueries   DB Stats slowest Queries: tatcli stats dbSlowestQueries
  instance           Info about current instance of engine

Flags:
  -h, --help=false: help for stats

Global Flags: see tatcli -h

Command Update
tatcli update

Usage:
  tatcli update [flags]
  tatcli update [command]

Aliases:
  update, up

Available Commands:
  snapshot    Update tatcli to latest snapshot version: tatcli update snapshot

Flags:
  -h, --help=false: help for update

Global Flags: see tatcli -h

Command User
User commands: tatcli user <command>

Usage:
  tatcli user [command]

Aliases:
  user, u


Available Commands:
  list                      List all users: tatcli user list [<skip>] [<limit>]
  me                        Get Information about you: tatcli user me
  contacts                  Get contacts presences since n seconds: tatcli user contacts <seconds>
  addContact                Add a contact: tatcli user addContact <contactUsername>
  removeContact             Remove a contact: tatcli user removeContact <contactUsername>
  addFavoriteTopic          Add a favorite Topic: tatcli user addFavoriteTopic <topicName>
  removeFavoriteTopic       Remove a favorite Topic: tatcli user removeFavoriteTopic <topicName>
  enableNotificationsTopic  Enable notifications on a topic: tatcli user enableNotificationsTopic <topicName>
  disableNotificationsTopic Disable notifications on a topic: tatcli user disableNotificationsTopic <topicName>
  addFavoriteTag            Add a favorite Tag: tatcli user addFavoriteTag <tag>
  removeFavoriteTag         Remove a favorite Tag: tatcli user removeFavoriteTag <tag>
  add                       Add a user: tatcli user add <username> <email> <fullname>
  reset                     Ask for Reset a password: tatcli user reset <username> <email>
  resetSystemUser           Reset password for a system user (admin only): tatcli user resetSystemUser <username>
  convert                   Convert a user to a system user (admin only): tatcli user convert <username> <canWriteNotifications>
  archive                   Archive a user (admin only): tatcli user archive <username>
  rename                    Rename username of a user (admin only): tatcli user rename <oldUsername> <newUsername>
  update                    Update Fullname and Email of a user (admin only): tatcli user update <username> <newEmail> <newFullname>
  setAdmin                  Grant user to Tat admin (admin only): tatcli user setAdmin <username>
  verify                    Verify account: tatcli user verify [--save] <username> <tokenVerify>
  check                     Check Private Topics and Default Group on one user (admin only): tatcli user check <username> <fixPrivateTopics> <fixDefaultGroup>

Flags:
  -h, --help=false: help for user

Global Flags: see tatcli -h

Command Version
tatcli version

Usage:
  tatcli version [flags]

Aliases:
  version, v


Flags:
  -h, --help=false: help for version
      --versionNewLine=true: New line after version number. If true, display Version Engine too

Global Flags: see tatcli -h

Examples

Credentials

Config file is under $HOME/.tatcli/config.json You can create it with this command:

tatcli config template

Template is:

{
  "username":"myUsername",
  "password":"myPassword",
  "url":"http://urltat:port"
}
Message
Create a message
tatcli message add /topic my message

If you are a system user, you can force date creation. Date as timestamp

tatcli message add --dateCreation=11111 /topic my message
Reply to a message
tatcli message reply idOfMessage my message
Like a message
tatcli message like idOfMessage
Unlike a message
tatcli message unlike idOfMessage
Add a label to a message
tatcli message label idOfMessage color myLabel
Remove a label from a message
tatcli message unlabel idOfMessage myLabel
Add a tag to a message

Only for system user on his messages

tatcli message tag idOfMessage myTag
Remove a tag from a message

Only for system user on his messages

tatcli message untag idOfMessage myTag
Bookmark a message
tatcli message bookmark /Private/username/Bookmarks/subtopic idOfMessage
Unbookmark a message
tatcli message unbookmark idOfMessage
Create a task from one message
tatcli message task /Private/username/Tasks idOfMessage
Remove a message from tasks
tatcli message untask /Private/username/Tasks idOfMessage

Getting message
tatcli message list /topic
tatcli message list /topic 0 10
Getting message on one public topic (access read only)
tatcli message read /topic
tatcli message read /topic 0 10
User
Create a user
tatcli user add username email fullname
Verify account
tatcli user verify username tokenVerify

For saving configuration in $HOME/.tatcli/config.json file

tatcli user verify --save username tokenVerify
Ask for reset password
tatcli user reset username email
Get information about me
tatcli user me
Get contacts presences since n seconds: tatcli user contacts
tatcli user contacts 15
Add a favorite tag
tatcli user addFavoriteTag myTag
Remove a favorite tag
tatcli user removeFavoriteTag myTag
Add a favorite topic
tatcli user addFavoriteTopic /topic/sub-topic
Remove a favorite topic
tatcli user removeFavoriteTopic /topic/sub-topic
Enable notifications on a topic

Notifications are by default enabled on topic

tatcli user enableNotificationsTopic /topic/sub-topic
Disable notifications on a topic
tatcli user disableNotificationsTopic /topic/sub-topic
List Users
tatcli user list

with groups (admin only):

tatcli user list --withGroups
Convert to a system user (Admin only)
tatcli user convert usernameToConvertSystem flagCanWriteOnNotificationsTopics

flagCanWriteOnNotificationsTopics could be true or false

Grant a user to Tat Admin (Admin only)
tatcli user setAdmin usernameToGrant
Archive a user (Admin only)
tatcli user archive usernameToArchive
Rename a username (Admin only)
tatcli user rename oldUsername newUsername
Update fullname and email (Admin only)
tatcli user update username newEmail newFirstname newLastname
Check a user (Admin only)

Check Private Topics and Default Group on one user:

tatcli user check <username> <fixPrivateTopics> <fixDefaultGroup>

Example :

tatcli check username true true
Group
Create a group
tatcli group add groupname description of group
Add user to a group
tatcli group addUser groupname username
Delete a user from a group
tatcli group deleteUser groupname username
Topic
Create a Topic
tatcli topic add /topic topic description
Delete a Topic
tatcli topic delete /topic
Getting Topics List
tatcli topic list
tatcli topic list skip limit
tatcli topic list skip limit true

if true, return nb unread messages

Add a read only user to a topic
tatcli topic addRoUser /topic username
tatcli topic addRoUser /topic username1 username2
Add a read write user to a topic
tatcli topic addRwUser /topic username
tatcli topic addRwUser /topic username1 username2
Add an admin user to a topic
tatcli topic addAdminUser /topic username
tatcli topic addAdminUser /topic username1 username2
Delete a read only user from a topic
tatcli topic deleteRoUser /topic username
tatcli topic deleteRoUser /topic username1 username2
Delete a read write user from a topic
tatcli topic deleteRwUser /topic username
tatcli topic deleteRwUser /topic username1 username2
Delete an admin user from a topic
tatcli topic deleteAdminUser /topic username
tatcli topic deleteAdminUser /topic username1 username2
Add a read only group to a topic
tatcli topic addRoGroup /topic groupname
tatcli topic addRoGroup /topic groupname1 groupname2
Add a read write group to a topic
tatcli topic addRwGroup /topic groupname
tatcli topic addRwGroup /topic groupname1 groupname2
Add an admin group to a topic
tatcli topic addAdminGroup /topic groupname
tatcli topic addAdminGroup /topic groupname1 groupname2
Delete a read only group from a topic
tatcli topic deleteRoGroup /topic groupname
tatcli topic deleteRoGroup /topic groupname1 groupname2
Delete a read write group from a topic
tatcli topic deleteRwGroup /topic groupname
tatcli topic deleteRwGroup /topic groupname1 groupname2
Delete an admin group from a topic
tatcli topic deleteAdminGroup /topic groupname
tatcli topic deleteAdminGroup /topic groupname1 groupname2
Communicate with Tat Websocket
Interactive mode
tatcli socket interactive
Subscribe to messages event on one topic

Returns a full message struct:

tatcli socket messages <<topic>|all>> [topic]...

Returns a full message struct, with replies:

tatcli socket messages <<topic>|all|onetree|fulltree>> [topic]...

Example:

tatcli socket messages onetree all
tatcli socket messages fulltree all
tatcli socket messages fulltree /TopicA/subTopicA
Subscribe to new messages event on one or many topic

Returns only topic name when a new message is created on this topic

tatcli socket messagesNew <<topic>|all>> [topic]...
Write a presence on one topic
tatcli socket writePresence <status> <topic>...
Subscribe to presences event on one topic
tatcli socket presences <<topic>|all>> [topic]...
Subscribe to user event, for admin only
tatcli socket users

Hacking

Tatcli is written in Go 1.5, using the experimental vendoring mechanism introduced in this version. Make sure you are using at least version 1.5.

mkdir -p $GOPATH/src/github.com/ovh
cd $GOPATH/src/github.com/ovh
git clone [email protected]:ovh/tatcli.git
cd $GOPATH/src/github.com/ovh/tatcli
export GO15VENDOREXPERIMENT=1
go build

You've developed a new cool feature? Fixed an annoying bug? We'd be happy to hear from you! Make sure to read CONTRIBUTING.md before.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL