Sha256: d1a6dba2ae3ee467e22deb5b47baf548b74e2316be4d2d01352d9a88ea5fe83f

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module Neptuno
  module TTY
    # Wrapper class for TTY gem
    module File
      TTY = ::TTY::File
      ABORT_MESSAGE = "fatal: not a Neptuno repository (or any of the parent directories)"

      def file
        TTY
      end

      # define path helpers
      def project
        neptuno_path.split("/").last
      end

      def in_service?
        Dir.pwd.include?("#{neptuno_path}/services/")
      end

      def service
        ENV["PWD"].match(%r{services/([^/]*)})&.captures&.first
      end

      def neptuno_path
        return @base_path if @base_path

        pwd = Dir.pwd
        loop do
          return pwd if pwd == ""
          return @base_path = pwd if Dir.children(pwd).include?("neptuno.yml")

          pwd = pwd.split("/")[0..-2].join("/")
        end
      end

      def make_service_files(services)
        services.each do |service|
          `cd #{neptuno_path} && mkdir -p environments/#{service} procfiles/#{service} dockerfiles/#{service}`
          `cd #{neptuno_path} && touch environments/#{service}/local_env`
          `cd #{neptuno_path} && touch dockerfiles/#{service}/Dockerfile`
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
neptuno-1.2.1 lib/neptuno/tty/file.rb
neptuno-1.2.0 lib/neptuno/tty/file.rb