dotstrap 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/dotstrap +17 -35
- data/dotstrap.gemspec +2 -2
- data/lib/dotstrap/git.rb +1 -3
- data/lib/dotstrap.rb +21 -10
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06b5a3debbd877e85d7b1c418dd75cb7e0a29f30
|
4
|
+
data.tar.gz: 0b0fd86545433c553c8be7e9c7cec3f68f530d3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95cccf83f393fe078fa1b6c219f4f5ef233bf28be19283eda275a4cff9ecb668e84cea290fdaa3f6933df1b3e350edf39ede3223964d573f53155946b8e433cd
|
7
|
+
data.tar.gz: 022ddb81f1a5b47d8c354c9fae1e0ff4ec15419e4a86974cf0883ba6980d0ee83f4270438dbf514398ff067eeefd5d3754ac81094f0af74926d18f17039df39e
|
data/bin/dotstrap
CHANGED
@@ -72,24 +72,14 @@ module Dotstrap
|
|
72
72
|
Download all the repositories listed in the file ~/.config/repos.txt
|
73
73
|
\x5 $ ds install ~/.config/repos.txt
|
74
74
|
LONGDESC
|
75
|
+
option :no_fetch, :type => :boolean
|
75
76
|
def install(repo, *args)
|
76
77
|
args << repo # so thor will not complain when you call `install` with no args
|
77
|
-
repos =
|
78
|
-
args.each do |repo|
|
79
|
-
if File.exist?(repo)
|
80
|
-
File.open(repo).each do |line|
|
81
|
-
# FIXME: strip everything afer '#' until newline (repo # comment)
|
82
|
-
repos << line.strip unless line.start_with?('#')
|
83
|
-
end
|
84
|
-
else
|
85
|
-
repos << repo
|
86
|
-
end
|
87
|
-
end
|
88
|
-
repos = repos.reject(&:empty?)
|
89
|
-
|
78
|
+
repos = __determine_repos(args)
|
90
79
|
__set_log_level
|
91
80
|
$LOG.debug { "REPO ARGS:#{repos}" }
|
92
|
-
Dotstrap::Configuration.new(repos)
|
81
|
+
ds = Dotstrap::Configuration.new(repos)
|
82
|
+
options[:no_fetch] ? ds.configure : ds.install
|
93
83
|
end
|
94
84
|
|
95
85
|
desc 'uninstall REPO...', 'Remove specified REPO'
|
@@ -101,18 +91,7 @@ module Dotstrap
|
|
101
91
|
LONGDESC
|
102
92
|
def uninstall(repo, *args)
|
103
93
|
args << repo # so thor will complain when you call `uninstall` with no args
|
104
|
-
repos =
|
105
|
-
args.each do |repo|
|
106
|
-
if File.exist?(repo)
|
107
|
-
File.open(repo).each do |line|
|
108
|
-
args << line.strip unless line.start_with?('#')
|
109
|
-
end
|
110
|
-
else
|
111
|
-
repos << repo
|
112
|
-
end
|
113
|
-
end
|
114
|
-
repos = repos.reject(&:empty?)
|
115
|
-
|
94
|
+
repos = __determine_repos(args)
|
116
95
|
__set_log_level
|
117
96
|
$LOG.debug { "REPO ARGS:#{repos}" }
|
118
97
|
Dotstrap::Configuration.new(repos).remove
|
@@ -128,30 +107,33 @@ module Dotstrap
|
|
128
107
|
#{__repo_format_desc}
|
129
108
|
LONGDESC
|
130
109
|
def list(*args)
|
131
|
-
repos = []
|
132
110
|
if args.empty?
|
133
111
|
Dotstrap::Configuration.new(Dotstrap.installed_repos).list
|
134
112
|
return
|
135
113
|
end
|
114
|
+
repos = __determine_repos(args)
|
115
|
+
__set_log_level
|
116
|
+
$LOG.debug { "REPO ARGS:#{repos}" }
|
117
|
+
Dotstrap::Configuration.new(repos).list
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
136
121
|
|
137
|
-
|
122
|
+
def __determine_repos(cli_args)
|
123
|
+
repos = []
|
124
|
+
cli_args.each do |repo|
|
138
125
|
if File.exist?(repo)
|
139
126
|
File.open(repo).each do |line|
|
140
|
-
|
127
|
+
# FIXME: strip everything afer '#' until newline (repo # comment)
|
128
|
+
repos << line.strip unless line.start_with?('#')
|
141
129
|
end
|
142
130
|
else
|
143
131
|
repos << repo
|
144
132
|
end
|
145
133
|
end
|
146
134
|
repos = repos.reject(&:empty?)
|
147
|
-
|
148
|
-
__set_log_level
|
149
|
-
$LOG.debug { "REPO ARGS:#{repos}" }
|
150
|
-
Dotstrap::Configuration.new(repos).list
|
151
135
|
end
|
152
136
|
|
153
|
-
private
|
154
|
-
|
155
137
|
def __set_log_level(level = nil)
|
156
138
|
# $LOG.close; return if options[:quiet]
|
157
139
|
unless level
|
data/dotstrap.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: dotstrap 0.
|
5
|
+
# stub: dotstrap 0.3.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "dotstrap"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.3.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.metadata = { "documentation" => "http://www.rubydoc.info/github/mkwmms/dotstrap/master/Dotstrap", "source_code" => "http://github.com/mkwmms/dotstrap" } if s.respond_to? :metadata=
|
data/lib/dotstrap/git.rb
CHANGED
@@ -18,9 +18,7 @@ module Dotstrap
|
|
18
18
|
# FIXME: if user is not logged in to Git the prompt for username/password
|
19
19
|
# is mangled because the threads are not synchronized
|
20
20
|
def clone(url = @url, repo_path = @repo_path, repo = @repo)
|
21
|
-
if Dir.exist?(repo_path)
|
22
|
-
return pull(repo_path)
|
23
|
-
end
|
21
|
+
return pull(repo_path) if Dir.exist?(repo_path)
|
24
22
|
return false unless system('git', 'clone', *git_verbosity, url, repo_path)
|
25
23
|
$LOG.debug { "CLONE #{repo} #{url} #{repo_path}" }
|
26
24
|
$LOG.unknown { "#{'=> '.colorize(:blue)}#{repo}\nupdated" }
|
data/lib/dotstrap.rb
CHANGED
@@ -8,7 +8,7 @@ require_relative 'dotstrap/shell'
|
|
8
8
|
module Dotstrap
|
9
9
|
NAME = 'dotstrap'
|
10
10
|
EXE_NAME = 'dotstrap'
|
11
|
-
VERSION = '0.
|
11
|
+
VERSION = '0.3.0'
|
12
12
|
AUTHOR = 'William Myers'
|
13
13
|
HOMEPAGE = 'http://github.com/mkwmms/dotstrap'
|
14
14
|
SOURCE_URL = 'http://github.com/mkwmms/dotstrap'
|
@@ -105,13 +105,8 @@ module Dotstrap
|
|
105
105
|
FileUtils.mkdir_p(Dotstrap.config_home)
|
106
106
|
end
|
107
107
|
|
108
|
-
def
|
109
|
-
if Dotstrap.shell_name == 'fish'
|
110
|
-
fish_config_home = Dotstrap.shell_config_home('fish')
|
111
|
-
FileUtils.mkdir_p(File.join(fish_config_home, 'functions'))
|
112
|
-
FileUtils.mkdir_p(File.join(fish_config_home, 'completions'))
|
113
|
-
end
|
114
|
-
|
108
|
+
def install(dest_dir = Dotstrap.config_home, repos = @repos)
|
109
|
+
initialize_fish_dirs if Dotstrap.shell_name == 'fish'
|
115
110
|
Parallel.map(repos, in_threads: 16) do |r|
|
116
111
|
bundle = Dotstrap::Git.new(r, dest_dir)
|
117
112
|
path = bundle.clone
|
@@ -120,6 +115,15 @@ module Dotstrap
|
|
120
115
|
end
|
121
116
|
end
|
122
117
|
|
118
|
+
def configure(dest_dir = Dotstrap.config_home, repos = @repos)
|
119
|
+
initialize_fish_dirs if Dotstrap.shell_name == 'fish'
|
120
|
+
Parallel.map(repos, in_threads: 16) do |r|
|
121
|
+
path = Dotstrap::Git.new(r, dest_dir).repo_path
|
122
|
+
puts path
|
123
|
+
load_configs([path]) if path
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
123
127
|
def remove(repos = @repos)
|
124
128
|
repos.each do |repo|
|
125
129
|
bundle = Dotstrap::Git.new(repo)
|
@@ -144,9 +148,16 @@ module Dotstrap
|
|
144
148
|
|
145
149
|
def load_configs(repo_path)
|
146
150
|
repo_path.each do |r|
|
147
|
-
|
148
|
-
shell.configure(repo_path)
|
151
|
+
Dotstrap::Shell.new(r).configure(repo_path)
|
149
152
|
end
|
150
153
|
end
|
154
|
+
|
155
|
+
private
|
156
|
+
|
157
|
+
def initialize_fish_dirs
|
158
|
+
fish_config_home = Dotstrap.shell_config_home('fish')
|
159
|
+
FileUtils.mkdir_p(File.join(fish_config_home, 'functions'))
|
160
|
+
FileUtils.mkdir_p(File.join(fish_config_home, 'completions'))
|
161
|
+
end
|
151
162
|
end
|
152
163
|
end
|