Sha256: bb2973d4c180a86a7af9f3696c4cd88393a3795740f7e78d31aed3f36afe4938

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 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}/services/#{service}  2>/dev/null`
          if $?.exitstatus.zero?
            `cd #{neptuno_path}/services/#{service}  2>/dev/null && git add . 2>/dev/null`
            unless $?.exitstatus.zero?
              `cd #{neptuno_path}/services/#{service} 2>/dev/null && git submodule update --init --recursive #{neptuno_path}/services/#{service}`
              `cd #{neptuno_path}/services/#{service} 2>/dev/null && git checkout main 2>/dev/null`
              `cd #{neptuno_path}/services/#{service} 2>/dev/null && git checkout master 2>/dev/null`
            end
          end
          `cd #{neptuno_path} && mkdir -p environments/#{service} procfiles/#{service} dockerfiles/#{service}`
          `cd #{neptuno_path} && touch environments/#{service}/default`
          `cd #{neptuno_path} && touch dockerfiles/#{service}/Dockerfile`
          `cd #{neptuno_path} && touch dockerfiles/#{service}/entrypoint.sh`
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
neptuno-1.5.0 lib/neptuno/tty/file.rb