dotfiles 1.0.5 → 1.0.6

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.
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
- require 'yaml'
3
2
  require 'json'
3
+ require 'yaml'
4
4
  require 'uri'
5
5
  require 'net/http'
6
6
  require 'digest'
@@ -128,7 +128,6 @@ module DotFiles
128
128
  req = request("files_list")
129
129
  req ? JSON.parse(req) : nil
130
130
  end
131
-
132
131
 
133
132
  end
134
133
  end
@@ -64,6 +64,7 @@ end
64
64
  desc 'Add a new (or overwrite an existing) file'
65
65
  usage 'add path/to/dotfile'
66
66
  command :add do |path|
67
+ require_setup
67
68
  filename = path.gsub(/\A#{ENV['HOME']}\//, '')
68
69
  local_path = File.join(ENV['HOME'], filename)
69
70
  contents = File.read(local_path)
@@ -76,6 +77,7 @@ end
76
77
  desc 'Pull a remote file to your local file system'
77
78
  usage 'pull path/to/dotfile'
78
79
  command :pull do |path|
80
+ require_setup
79
81
  filename = path.gsub(/\A#{ENV['HOME']}\//, '')
80
82
  if contents = remote_file_contents(filename)
81
83
  save_local_file(filename, contents)
@@ -84,3 +86,24 @@ command :pull do |path|
84
86
  error "Couldn't download remote file from '#{filename}'. Does it exist?"
85
87
  end
86
88
  end
89
+
90
+ desc 'Pull all remote files'
91
+ usage 'fetch'
92
+ command :fetch do
93
+ require_setup
94
+ require 'highline/import'
95
+ HighLine.track_eof = false
96
+
97
+ for name, remote_sha in get_remote_files
98
+ if File.exist?(File.join(ENV['HOME'], name))
99
+ o = ask("#{name} exists. Do you wish to overwrite? [Y/n]")
100
+ if o.to_s[0,1].upcase == 'N'
101
+ next
102
+ end
103
+ end
104
+
105
+ contents = remote_file_contents(name)
106
+ save_local_file(name, contents)
107
+ puts "saved #{name} (#{contents.size} bytes)"
108
+ end
109
+ end
@@ -4,7 +4,6 @@ command :setup do
4
4
 
5
5
  require 'highline/import'
6
6
  HighLine.track_eof = false
7
-
8
7
 
9
8
  puts "Welcome to MyDotFiles."
10
9
  puts
@@ -25,8 +24,14 @@ command :setup do
25
24
  DotFiles.config.username = username
26
25
  DotFiles.config.api_key = api_key
27
26
  DotFiles.config.save
28
- puts "\e[32mThis computer has now been authorised. Run 'dotfiles sync' to get the latest files.\e[0m"
27
+ puts "\e[32mThis computer has now been authorised.\e[0m"
28
+ puts
29
+ puts "We suggest you now run {{dotfiles fetch}} to download all your existing dotfiles. After this point,"
30
+ puts "you will be able to run {{dotfiles sync}} to keep them in sync."
31
+ puts
29
32
  else
30
33
  error "Your account could not be authorised. Please check your email address & password."
31
34
  end
35
+
36
+
32
37
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotfiles
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 5
10
- version: 1.0.5
9
+ - 6
10
+ version: 1.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Adam Cooke
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-06 00:00:00 +01:00
18
+ date: 2010-09-08 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency