Sha256: 1129e0d0ddf02a03ab07582c7d2a1323014cdcb8bc295ca0ab8c2be4a7ddf25a

Contents?: true

Size: 1.72 KB

Versions: 4

Compression:

Stored size: 1.72 KB

Contents

require 'thor'

module Termup
  TERMUP_DIR = File.join(ENV['HOME'],'.config','termup')

  class Cli < Thor
    include Thor::Actions

    class << self
      def source_root
        File.expand_path('../../',__FILE__)
      end
    end

    map 'c' => :create
    map 'e' => :edit
    map 'l' => :list
    map 's' => :start

    desc 'create PROJECT', 'Create termup project (Shortcut: c, Options: --iterm_basic / --iterm_advanced)'
    method_option :iterm_basic,     :type => :boolean, :required => false
    method_option :iterm_advanced,  :type => :boolean, :required => false
    def create(project)
      edit(project)
    end

    desc 'edit PROJECT', 'Edit termup project (Shortcut: e)'
    def edit(project)
      unless File.exists?(path(project))
        empty_directory TERMUP_DIR
        if options['iterm_advanced']
          template 'templates/iterm_advanced.yml', path(project)
        elsif options['iterm_basic']
          template 'templates/iterm_basic.yml', path(project)
        else  
          template 'templates/template.yml', path(project)
        end
      end
      say 'please set $EDITOR in ~/.bash_profile' and return unless editor = ENV['EDITOR']
      system("#{editor} #{path(project)}")
    end

    desc 'list', 'List termup projects (Shortcut: l)'
    def list
      projects = Dir["#{TERMUP_DIR}/*.yml"].map{|file| File.basename(file,'.yml') }
      say "Your projects: #{projects.join(', ')}"
    end

    desc 'start PROJECT', 'Start termup project (Shortcut: s)'
    def start(project)
      say "project \"#{project}\" doesn't exist!" and return unless File.exists?(path(project))
      Termup::Base.new(project)
    end

    protected
    
    def path(project)
      "#{TERMUP_DIR}/#{project}.yml"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
termup-2.0.3 lib/termup/cli.rb
termup-2.0.2 lib/termup/cli.rb
termup-2.0.1 lib/termup/cli.rb
termup-2.0.0 lib/termup/cli.rb