class Jekyll::Premonition::InstallScssCommand
Public: Premonition
stylesheet installer command
Jekyll
command that will install the Premonition
stylesheet and add it to the needed resource files.
Public Class Methods
init_with_program(prog)
click to toggle source
# File lib/premonition/commands/install_scss.rb, line 12 def init_with_program(prog) prog.command(:"premonition-install") do |c| c.syntax 'premonition-install [options]' c.description 'Install Premonition SASS stylesheet into your Jekyll site.' c.option 'dest', '-d DEST', 'Where premonition.scss should be stored. (defaults to _sass/)' c.option 'main', '-m DEST', 'The path to your main SASS file (defaults to assets/main.scss)' c.action do |args, opts| Jekyll::Premonition::InstallScssCommand.process(args, opts) end end end
process(_args, opts)
click to toggle source
# File lib/premonition/commands/install_scss.rb, line 24 def process(_args, opts) puts '== Installing Premonition Stylesheet and resources =="' puts '-- premonition.scss --' dest = opts['dest'].nil? || opts['dest'].empty? ? './_sass/' : File.join(opts['dest'], '') main = opts['main'].nil? || opts['main'].empty? ? './assets/css/styles.scss' : opts['main'] raise StandardError, "#{dest} folder does not exist. Create it manually, and run script again." unless Dir.exist?(dest) raise StandardError, "#{main} does not exist" unless File.exist?(main) uri = URI('https://raw.githubusercontent.com/lazee/premonition/master/stylesheet/premonition.scss') pf = "#{dest}premonition.scss" if File.exist?(pf) print "You already have #{pf} installed. Continue? [Y/n]" override = gets.chomp raise StandardError, 'Aborted. No harm done.' if override == 'n' end File.write(pf, Net::HTTP.get(uri)) puts "Saved stylesheet in #{pf}" if File.readlines(main).grep(/\@import \"premonition\"/).any? puts "#{main} already imports the Premonition stylesheet." else puts 'You must add Premonition to your main SASS file.' print "Add '@import \"premonition\";' to end of #{main} now? [Y/n] " add = gets.chomp if add == 'n' puts 'Ok. But then you will need to add it manually for the styling of Premonition to work.' else f = File.open(main, 'a') f.write("\n@import \"premonition\";\n") f.close puts "Added Premonition stylesheet to #{main}." end end rescue StandardError => e puts "ERROR: #{e}" end