homey 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 357b83661a2b8753ec5b4b9ff49a1f0835ae202b
4
- data.tar.gz: b6f944bf6877044b79f55591630f08293eb465ca
3
+ metadata.gz: e3efb1e2edf108e81036e5cab193c9d34bfb98ae
4
+ data.tar.gz: 0d88573727ab257b6ee95d177fb63eeb248ee976
5
5
  SHA512:
6
- metadata.gz: 0b122fc8275ab3c1cce8a1aea1fae5013e6c8968c99e2fc0dea0d76d9b5973c679abfc4d10d7149442f0ac3fb80596bcf1274edc11d09a02a944f257eccca1d2
7
- data.tar.gz: 4c770bbf9fde1e6398da28a605a5fb260370b302afbd20b9549df24b10609fb1fc3c4954fba273c433a4bf52001679a1f883e449b1609b65700018c89595101b
6
+ metadata.gz: 371b1bbc9ce88c405d0ec7f9a45f73010ecb452d872c802ded698a1fa7b20f8146ea47f5169115743b185d3ee2ac10abe30c63905321a0ddaab810d06782f2ed
7
+ data.tar.gz: 2c45cfcfd1b90331739c4333b9f13b9bea300abf347d3cd7bf8c7d2f7b89738de09a27f8bc29183ada76589bb7dc5ace79dad1418ef61bf625e37a1154331823
@@ -1,12 +1,27 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- homey (0.0.1)
4
+ homey (0.1.1)
5
5
  thor (~> 0.18, >= 0.18.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ byebug (2.5.0)
11
+ columnize (~> 0.3.6)
12
+ debugger-linecache (~> 1.2.0)
13
+ coderay (1.1.0)
14
+ columnize (0.3.6)
15
+ debugger-linecache (1.2.0)
16
+ method_source (0.8.2)
17
+ pry (0.9.12.4)
18
+ coderay (~> 1.0)
19
+ method_source (~> 0.8)
20
+ slop (~> 3.4)
21
+ pry-byebug (1.2.1)
22
+ byebug (~> 2.2)
23
+ pry (~> 0.9.12)
24
+ slop (3.4.7)
10
25
  thor (0.18.1)
11
26
 
12
27
  PLATFORMS
@@ -14,3 +29,4 @@ PLATFORMS
14
29
 
15
30
  DEPENDENCIES
16
31
  homey!
32
+ pry-byebug (~> 1.2)
@@ -6,7 +6,7 @@ require 'homey/version'
6
6
  Gem::Specification.new do |s|
7
7
  s.name = 'homey'
8
8
  s.version = Homey::VERSION
9
- s.date = '2014-01-05'
9
+ s.date = '2014-01-07'
10
10
 
11
11
  s.summary = 'A tool to setup your home enviroment'
12
12
  s.description = "Homey is a basic tool for your dotfiles. Homey will setup " \
@@ -23,4 +23,5 @@ Gem::Specification.new do |s|
23
23
  s.license = 'MIT'
24
24
 
25
25
  s.add_runtime_dependency 'thor', '~> 0.18', '>= 0.18.1'
26
+ s.add_development_dependency 'pry-byebug', '~> 1.2'
26
27
  end
@@ -3,7 +3,8 @@ require "yaml"
3
3
  require "fileutils"
4
4
  require "pathname"
5
5
 
6
- require "homey/tasks.rb"
7
- require "homey/flavorizer.rb"
6
+ require "homey/path_helpers"
7
+ require "homey/flavorizer"
8
+ require "homey/tasks"
8
9
 
9
10
 
@@ -0,0 +1,26 @@
1
+ module Homey
2
+ module PathHelpers
3
+ def dotfiles_path
4
+ @dotfiles_path ||= File.open("#{ENV['HOME']}/.homey", 'rb').read
5
+ end
6
+
7
+ def home_file
8
+ @home_file ||= begin
9
+ path = File.join dotfiles_path, "home.yml"
10
+ home = YAML.load_file(path)
11
+ end
12
+ end
13
+
14
+ def prepare_paths(*paths)
15
+ absolutize_paths(*replace_home_char(*paths))
16
+ end
17
+
18
+ def absolutize_paths(*paths)
19
+ paths.map { |path| Pathname.new(path).expand_path(dotfiles_path) }
20
+ end
21
+
22
+ def replace_home_char(*strings)
23
+ strings.map { |string| string.sub(/^~\//, "#{ENV['HOME']}/") }
24
+ end
25
+ end
26
+ end
@@ -1,5 +1,21 @@
1
1
  module Homey
2
2
  class Tasks < Thor
3
+ include PathHelpers
4
+
5
+ desc "dotfiles", "Fetching your dotfiles from github"
6
+ method_option :path, type: :string
7
+ method_option :force, aliases: "-f", type: :boolean
8
+ method_option :local, aliases: "-l", type: :boolean
9
+ def dotfiles(repo)
10
+ path = replace_home_char(options.fetch("path", "~/.dotfiles")).first
11
+ if !options[:local]
12
+ FileUtils.rm_rf(path) if options["force"]
13
+ command = "git clone git@github.com:#{repo}.git #{path}"
14
+ system command
15
+ end
16
+ File.open("#{ENV['HOME']}/.homey", 'w') { |f| f.write(path) }
17
+ end
18
+
3
19
  desc "create_symlinks", "Creating the sym links that you have set in home.yml"
4
20
  method_option :flavor, type: :string
5
21
  method_option :force, aliases: "-f", type: :boolean
@@ -7,8 +23,7 @@ module Homey
7
23
  opts = { flavor: options[:flavor], flavorized_attributes: %w(target) }
8
24
  symlinks = Flavorizer::flavorize_group(home_file["sym_links"], opts)
9
25
  symlinks.each do |sym|
10
- paths = replace_home_char(sym['target'], sym['link'])
11
- target, link = absolutize_paths(*paths)
26
+ target, link = prepare_paths(sym['target'], sym['link'])
12
27
  FileUtils.rm_rf(link) if options[:force]
13
28
  File.symlink target, link
14
29
  end
@@ -18,22 +33,5 @@ module Homey
18
33
  def setup
19
34
  home_file["commands"].each { |command| system command }
20
35
  end
21
-
22
- private
23
-
24
- def home_file
25
- @home_file ||= begin
26
- home = YAML.load_file('home.yml')
27
- end
28
- end
29
-
30
- def absolutize_paths(*paths)
31
- paths.map { |path| Pathname.new(path).expand_path }
32
- end
33
-
34
- def replace_home_char(*strings)
35
- new_strings = strings.map { |string| string.sub(/^~\//, "#{ENV['HOME']}/") }
36
- new_strings.one? ? new_strings.first : new_strings
37
- end
38
36
  end
39
37
  end
@@ -1,3 +1,3 @@
1
1
  module Homey
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Zaby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-05 00:00:00.000000000 Z
11
+ date: 2014-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.18.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: pry-byebug
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.2'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.2'
33
47
  description: Homey is a basic tool for your dotfiles. Homey will setup your symbolic
34
48
  links and run the scripts you want to initialize your enviroment
35
49
  email: mikezaby@gmail.com
@@ -46,6 +60,7 @@ files:
46
60
  - homey.gemspec
47
61
  - lib/homey.rb
48
62
  - lib/homey/flavorizer.rb
63
+ - lib/homey/path_helpers.rb
49
64
  - lib/homey/tasks.rb
50
65
  - lib/homey/version.rb
51
66
  homepage: https://github.com/mikezaby/homey