diff --git a/saas/exe/stripe-dev b/saas/exe/stripe-dev new file mode 100755 index 000000000..820264766 --- /dev/null +++ b/saas/exe/stripe-dev @@ -0,0 +1,23 @@ +#!/usr/bin/env ruby +# +# Fetches Stripe development environment variables from 1Password. +# Usage: eval "$(bundle exec stripe-dev)" + +require "json" + +secrets_escaped = `kamal secrets fetch \ + --adapter 1password \ + --account basecamp \ + --from "Deploy/Fizzy" \ + "Development/STRIPE_SECRET_KEY" \ + "Development/STRIPE_MONTHLY_V1_PRICE_ID" 2>/dev/null` + +# kamal outputs shell-escaped JSON, unescape it +secrets_json = secrets_escaped.gsub(/\\(.)/, '\1') +secrets = JSON.parse(secrets_json) + +stripe_secret_key = secrets["Deploy/Fizzy/Development/STRIPE_SECRET_KEY"] +stripe_price_id = secrets["Deploy/Fizzy/Development/STRIPE_MONTHLY_V1_PRICE_ID"] + +puts %Q(export STRIPE_SECRET_KEY="#{stripe_secret_key}") +puts %Q(export STRIPE_MONTHLY_V1_PRICE_ID="#{stripe_price_id}") diff --git a/saas/fizzy-saas.gemspec b/saas/fizzy-saas.gemspec index d4f79e4ce..1368ef63c 100644 --- a/saas/fizzy-saas.gemspec +++ b/saas/fizzy-saas.gemspec @@ -18,9 +18,12 @@ Gem::Specification.new do |spec| spec.metadata["source_code_uri"] = "https://github.com/basecamp/fizzy-saas" spec.files = Dir.chdir(File.expand_path(__dir__)) do - Dir["{app,config,db,lib}/**/*", "test/fixtures/**/*", "LICENSE.md", "Rakefile", "README.md"] + Dir["{app,config,db,lib,exe}/**/*", "test/fixtures/**/*", "LICENSE.md", "Rakefile", "README.md"] end + spec.bindir = "exe" + spec.executables = [ "stripe-dev" ] + spec.add_dependency "rails", ">= 8.1.0.beta1" spec.add_dependency "queenbee" spec.add_dependency "rails_structured_logging"