#!/usr/bin/env ruby require 'fileutils' require 'tempfile' @root_dir = File.expand_path('~') @root_lib_dir = File.join(@root_dir, 'Library') @root_developer_dir = File.join(@root_lib_dir, 'Developer') @root_xcode_dir = File.join(@root_developer_dir, 'Xcode') @root_template_dir = File.join(@root_xcode_dir, 'Templates') @root_xcfit_dir = File.join(@root_template_dir, 'XCfit') @root_gherkin_dir = File.join(@root_template_dir, 'Gherkin') # @source_dir = File.join(File.dirname(__FILE__), '..', 'XCFit_Templates') # @source_xcfit_dir = File.join(@source_dir, 'XCFit') # @source_gherkin_dir = File.join(@source_dir, 'Gherkin') puts "Welcome to XCFit: Full Stack BDD framework for iOS app" puts "==================XXXXXXXX===========================" def clone_xcfit # system("cd /tmp") system("cd /tmp && curl -sL https://github.com/Shashikant86/XCFit/archive/v2.1.tar.gz | tar xz") puts "*******======= Downloading XCFit Templates for the Xcode =============***" @xcfit_template_dir = "/tmp/XCFit-2.1/XCFit_Templates/XCFit" @gherkin_template_dir = "/tmp/XCFit-2.1/XCFit_Templates/Gherkin" end def clean_xcfit system("rm -rf /tmp/XCFit-2.1/") end def setup_xcode_templates if File.exist?(@root_xcfit_dir) puts "==================XXXXXXXX===========================" puts 'There is already XCFit directory in Xcode Templates. Have you tried XCFit Before? ' puts 'Please remove/move existing ~/Library/Developer/Xcode/Templates/XCFit directory to carry on' puts "==================XXXXXXXX===========================" exit 1 end clone_xcfit puts "==================XXXXXXXX===========================" puts 'Creating XCode Template for XCFit' puts 'This Template will allow you create Cucumberish and Fitnesse targets' puts "==================XXXXXXXX===========================" FileUtils.cp_r(@xcfit_template_dir, @root_template_dir) clean_xcfit puts 'Now Your Xcode will have XCFIT iOS and macOS tagets for Cucumberish and Fitnesse' puts "==================XXXXXXXX===========================" puts 'File -> New -->Target-->XCFit' puts 'You wont need to restart Xcode but do so if nesessary!' puts " ***************** Enjoy XCFit *****************" end def setup_gherkin_template if File.exist?(@root_gherkin_dir) puts 'There is already Gherkin directory. Please move existing Gherkin directory to carry on ' puts "==================XXXXXXXX===========================" exit 1 end puts "==================XXXXXXXX===========================" puts 'Creating XCode Template for XCFit' puts 'This Template will allow you create Cucumberish and Fitnesse targets' puts "==================XXXXXXXX===========================" clone_xcfit FileUtils.cp_r(@gherkin_template_dir, @root_template_dir) clean_xcfit puts 'Now Your Xcode will have XCFIT iOS and macOS tagets for Cucumberish and Fitnesse' puts "==================XXXXXXXX===========================" puts 'File -> New -->Target-->XCFit' puts 'You wont need to restart Xcode but do so if nesessary!' puts " ***************** Enjoy XCFit *****************" end def get_cucumberish puts "==================XXXXXXXX===========================" puts 'Downloading Cucumberish in the current working directory' puts 'You Should execute this command from Cucumberish Xcode target directory' puts "==================XXXXXXXX===========================" system("curl -sL https://github.com/Ahmed-Ali/Cucumberish/archive/v1.0.6.tar.gz | tar xz") cucumberish_dir = "Cucumberish-1.0.6" + "/Cucumberish/" system("mv #{cucumberish_dir} .") system("rm -rf Cucumberish-1.0.6") end def print_usage puts < can be one of setup_xcode_templates generate a Xcode 8 Templates for the Cucumberish and Fitnesse setup_gherkin_template generate Xcode Templates for the Gherkin Feature Files get_cucumberish Downloads Cucumberish directory into UI Testing target version prints the XCFit version help prints more detailed help information. can be -v, --verbose Turns on verbose logging EOF end def print_help puts < can be one of help setup_xcode_templates setup_gherkin_tmplate version Commands: help : prints more detailed help information. setup_xcode_templates : Generate a Xcode8 Templates for the Cucumberish and Fitnesse setup_gherkin_template : Generate Xcode Templates for the Gherkin Feature Files get_cucumberish VERSION : Downloads Cucumberish version version : prints the gem version -v, --verbose Turns on verbose logging EOF end if ARGV.length == 0 print_usage else cmd = ARGV.shift if cmd == 'help' print_help elsif cmd == 'setup_xcode_templates' setup_xcode_templates elsif cmd == 'get_cucumberish' get_cucumberish elsif cmd == 'version' puts "2.x" elsif cmd == 'setup_gherkin_template' setup_gherkin_template else print_usage end end