v-daemon

2.0.3 • Public • Published

v-daemon

Build Status npm Version JS Standard

Daemon script for v-spot-client

Installation

$ npm install v-daemon -g

Usage

Step01: Create script file to run. File basename will be the subject id

/home/scripts/v/jp.realglobe.v-daemon.example01

#!/usr/bin/env node
 
/**
 * @file Example script to daemonize
 */
'use strict'
 
// verb and object passed as process args
const [, , subject, verb, object1, object2] = process.argv
 
switch (verb) {
  case 'sayHi': {
    process.stdout.write(`Hi, ${object1} and ${object2}`)
    break
  }
  default:
    throw new Error(`Unknown verb: ${verb}`)
}

Step02: Daemonize the script

#!/bin/bash 
 
# Give script path to daemonize 
 
v-daemon /home/scripts/v/jp.realglobe.v-daemon.example01 -H "v-spot.cloud.com"

Step03: Call it from another client

#!/usr/bin/env node
 
/**
 * Example to call daemonized script
 */
'use strict'
 
const vSpot = require('v-spot')
 
;(async () => {
  const spot = vSpot().client()
 
  await spot.connect('v-spot.cloud.com')
 
  // By default, subject name is generated from script name
  const example01 = await spot.use('jp.realglobe.v-daemon.example01')
  // Send the signal to daemon script via server
  await example01.sayHi('can you hear me?', 'really?')
})()
 

More Script Examples

Bash Script Example

#!/bin/bash 
# 
 
subject=$1
verb=$2
object1=$3
object2=$4
 
if [[ ${verb} == *"sayHi"* ]]
then
  printf "Hi, ${object1} and ${object2}"
  exit
fi
 
echo "Unknown verb ${verb}"
exit 1

CLI Help

 
  Usage: v-daemon [options] <filename ...> 
 
  Daemon script for v-spot-client
 
 
  Options:
 
    -V, --version                output the version number
    -H, --hostname [hostname]    List available tasks
    -p, --port [port]            Port number
    -P, --protocol [protocol]    Protocol
    -c, --connector [connector]  connection type
    -i, --id [id]                Subject ID
    -q, --quiet [quiet]          No messages
    -v, --verbose [verbose]      Show verbose log
    -h, --help                   output usage information
 

API Guide

License

This software is released under the MIT License.

Links

Readme

Keywords

Package Sidebar

Install

npm i v-daemon

Weekly Downloads

20

Version

2.0.3

License

MIT

Last publish

Collaborators

  • realglobe
  • okunishinishi