UNPKG

huxley-cli

Version:

CLI for Huxley Deployment Platform

91 lines (89 loc) 3.73 kB
module.exports = questions: (config) -> console.log "This utility will walk you through configuring a Huxley cluster." console.log "It pulls from your local config or tries to guess sane defaults." console.log " " console.log "See https://github.com/pandastrike/huxley/wiki for definitive documentation" console.log " " console.log "Press ^C at any time to quit." [ name: "size" description: "Cluster Size [3-12]:" message: "Specify an integer between 3 and 12, inclusive." default: 3 conform: (v) -> return false if Number.isNaN v return false if v % 1 != 0 if 12 >= v >= 3 then true else false , name: "type" description: "EC2 Instance Type:" enum: ["c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.large", "m3.xlarge", "m3.2xlarge"] message: "Specify one among the allowed EC2 Instance Types: \nc1.medium, c1.xlarge, \nc3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, \nm1.medium, m1.large, m1.xlarge, \nm2.xlarge, m2.2xlarge, m2.4xlarge, \nm3.large, m3.xlarge, m3.2xlarge" default: do -> if config.cluster && config.cluster.instance return config.cluster.instance else return "m1.medium" , name: "virtualization" description: "Instance Virtualizaiton Type:" enum: ["pv", "hvm"] message: "Specify one among the allowed virtualization types: pv, hvm" default: do -> if config.cluster && config.cluster.virtualization return config.cluster.virtualization else return "pv" , name: "region" description: "AWS Region:" enum: ["ap-northeast-1", "ap-southeast-1", "ap-southeast-2", "eu-central-1", "eu-west-1", "sa-east-1", "us-east-1", "us-west-1", "us-west-2"] message: "Specify one among the allowed AWS Regions: \nap-northeast-1, ap-southeast-1, ap-southeast-2, \neu-central-1, eu-west-1, \nsa-east-1, \nus-east-1, us-west-1, us-west-2" default: config.aws.region , name: "zone" description: "Availability Zone:" default: config.aws.availability_zone , name: "key" description: "Default SSH Key:" default: config.aws.key_name , name: "channel" description: "CoreOS Channel:" enum: ["stable", "beta", "alpha"] message: "Specify among the allowed CoreOS channels: alpha, beta, stable" default: do -> if config.coreos && config.coreos.channel return confg.coreos.channel else return "stable" , name: "price" description: "Spot Bid [or 0 for on-demand]:" message: "Specify a bid ($/hr) greater that 0 for a Spot Instance, or specify 0 to use an On-Demand Instance." default: do -> if config.cluster && config.cluster.price return config.cluster.price else return 0 conform: (v) -> return false if Number.isNaN v if v >= 0 then true else false , name: "domain" description: "Public Domain:" message: "Specify a publicly accessable domain for the cluster:" default: config.cluster.domain if config.cluster , name: "tags" description: "Descriptive Tag:" minLength: 1 maxLength: 254 default: do -> if config.cluster && config.cluster.tags return config.cluster.tags else return "huxley" ]