Sha256: cf9fef6a2dad9b64bdcd9880491fe65ed815d1f18a347432424521c3e14e8f85

Contents?: true

Size: 1.15 KB

Versions: 14

Compression:

Stored size: 1.15 KB

Contents

#!/usr/bin/env ruby -U

require 'azure'
require 'thor'
require 'fileutils'

module Azure
  class Pfxer < Thor
    desc 'transform', 'Transforms a publish settings file from Azure into a .pfx'

    long_desc <<-TRANSFORM

    `transform` will create a .pfx file from an Azure publish settings file. The publish settings file contains a
    pfx, but the pfx is base64 encode within the publish settings xml structure. This is here to make that a little
    easier.

    TRANSFORM

    option :in, required: true, desc: 'Path to publish settings file'
    option :out, desc: 'Path to where you want your .pfx'
    def transform
      path = File.expand_path(options[:in])
      if File.exists?(path)
        pub_settings_xml = Nokogiri::XML(File.read(path))
        b64_pfx = pub_settings_xml.css('PublishData PublishProfile Subscription')[0]['ManagementCertificate']
        pfx = Base64.decode64(b64_pfx)
        file_name = File.basename(path, '.publishsettings').downcase.gsub(' ', '_')
        out_path = options[:out] || File.join(File.dirname(path), file_name + '.pfx')
        File.binwrite(File.expand_path(out_path), pfx)
      end
    end
  end
end

Azure::Pfxer.start(ARGV)

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
azure-0.7.10 bin/pfxer
azure-0.7.9 bin/pfxer
azure-0.7.7 bin/pfxer
azure-0.7.6 bin/pfxer
azure-0.7.5 bin/pfxer
azure-0.7.4 bin/pfxer
azure-0.7.3 bin/pfxer
azure-0.7.1 bin/pfxer
azure-0.7.0 bin/pfxer
azure-0.7.0.pre3 bin/pfxer
azure-fix-0.7.0.pre3 bin/pfxer
azure-0.7.0.pre2 bin/pfxer
juliusl-azure-sdk-for-ruby-0.7.0 bin/pfxer
azure-0.7.0.pre bin/pfxer