Sha256: 3b98d3de813ce72c37d2da5584948780150fd1a4639b86ee6be3cdb8778a3570

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.4.10 lib/neptuno/tty/file.rb