Sha256: 907fe7352e3b75209042d2f1f4addd879dc5337cc773fec572da7be8247b9cbb

Contents?: true

Size: 923 Bytes

Versions: 3

Compression:

Stored size: 923 Bytes

Contents

#!/usr/bin/env ruby

require 'optparse'
require 'methadone'
require 'fullstop'
require 'fileutils'

class App
  include Methadone::Main
  include Methadone::CLILogging
  include Methadone::SH
  include Fullstop

  main do |repo_url|
    Dir.chdir options['checkout-dir'] do
      repo = Repo.clone_from(repo_url,options[:force])
      repo.files do |file|
        link_file(repo,file,options[:force])
      end
    end
    info "Dotfiles symlinked"
  end

  def self.link_file(repo,file,overwrite)
    source_file = File.join(repo.repo_dir,file)
    FileUtils.rm(file) if File.exists?(file) && overwrite
    FileUtils.ln_s source_file,'.'
  end

  version Fullstop::VERSION

  description 'Manages dotfiles from a git repo'

  options['checkout-dir'] = ENV['HOME']
  on("--force","Overwrite files if they exist")
  on("-d DIR","--checkout-dir","Where to clone the repo")

  arg :repo_url

  use_log_level_option

  go!
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
methadone-1.0.0.rc5 tutorial/code/fullstop/bin/fullstop
methadone-1.0.0.rc4 tutorial/code/fullstop/bin/fullstop
methadone-1.0.0.rc3 tutorial/code/fullstop/bin/fullstop