Sha256: 48226d74bfb761b46cda464c27bcd1073980492440c6ca49c8620b3ff0a5675f

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

module Dpl
  module Providers
    class Transifex < Provider
      status :alpha

      description sq(<<-str)
        tbd
      str

      python '>= 2.7', '!= 3.0', '!= 3.1', '!= 3.2', '!= 3.3', '< 3.8'

      required :api_token, [:username, :password]

      opt '--api_token TOKEN', 'Transifex API token', secret: true
      opt '--username NAME',   'Transifex username'
      opt '--password PASS',   'Transifex password', secret: true
      opt '--hostname NAME',   'Transifex hostname', default: 'www.transifex.com'
      opt '--cli_version VER', 'CLI version to install', default: '>=0.11'

      cmds status: 'tx status',
           push:   'tx push --source --no-interactive'

      msgs login:  'Writing ~/.transifexrc (user: %{username}, password: %{password})'
      errs push:   'Failure pushing to Transifex'

      RC = sq(<<-rc)
        [%{url}]
        hostname = %{url}
        username = %{username}
        password = %{password}
      rc

      def install
        pip_install 'transifex-client', 'tx', cli_version
      end

      def login
        info :login
        write_rc
        shell :status
      end

      def deploy
        shell :push, retry: true
      end

      private

        def write_rc
          write_file '~/.transifexrc', interpolate(RC, opts, secure: true)
        end

        def username
          super || 'api'
        end

        def password
          super || api_token
        end

        def url
          hostname.start_with?('https://') ? hostname : "https://#{hostname}"
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dpl-2.0.0.alpha.2 lib/dpl/providers/transifex.rb
dpl-2.0.0.alpha.1 lib/dpl/providers/transifex.rb