class Fantasia::CLI
Public Instance Methods
build()
click to toggle source
# File lib/fantasia/cli.rb, line 14 def build if !system("git diff-index --quiet HEAD --") if options[:force] STDERR.puts "Ignoring uncommitted changes. This is probably a bad idea.".colorize(:red) else STDERR.puts "There are uncommitted changes. Commit, stash, or revert them, or use the force option.".colorize(:red) exit(1) end end system("docker-compose build") || exit(1) end
deploy()
click to toggle source
# File lib/fantasia/cli.rb, line 53 def deploy invoke :build invoke :push invoke :update end
push()
click to toggle source
# File lib/fantasia/cli.rb, line 27 def push system("docker-compose push") || exit(1) end
show()
click to toggle source
# File lib/fantasia/cli.rb, line 60 def show spec = YAML.load(File.read "fantasia.yml") secrets = YAML.load(File.read(spec["secrets"] || "fantasia.secrets.yml")) url = spec["url"] http = Faraday.new("#{url}api/v1/") name = spec["stack"] http.authorization(:Bearer, secrets[name]) r = JSON.parse(http.get("stack").body) puts "#{"State".colorize(:green)}: #{r["state"]}" puts "#{"Portainer ID".colorize(:green)}: #{r["portainer_id"]}" puts puts "Fantasia config".colorize(:green) puts r["fantasia_file"] puts puts "Compose config".colorize(:green) puts r["compose_file"] end
update()
click to toggle source
# File lib/fantasia/cli.rb, line 32 def update spec = YAML.load(File.read "fantasia.yml") secrets = YAML.load(File.read(spec["secrets"] || "fantasia.secrets.yml")) url = spec["url"] http = Faraday.new("#{url}api/v1/") name = spec["stack"] http.authorization(:Bearer, secrets[name]) r = http.post "stack", { fantasia_file: spec.to_yaml, compose_file: File.read(spec["compose-file"] || "docker-compose.yml") } r = JSON.parse(r.body) if r["success"] puts r["message"].colorize(:green) else puts r["message"].colorize(:red) exit 1 end end