instructions_list 1.0.3.beta → 1.0.4.beta

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: 01f435854efca5c2ef03dbdf2e55b340ee4a000c
4
- data.tar.gz: 53c3a4202faedec87e6a7e40ae9f1c036c1edb71
3
+ metadata.gz: 178f2f01804312efebddae3724913bd8a82f2cf9
4
+ data.tar.gz: 1888e74f845861bd7264939012230cac5168840a
5
5
  SHA512:
6
- metadata.gz: ef66f23557dc6ff795a28fbbb63ec3468f7167b77e20ac986ddab7f9f245d7216f63606c8312f75f89cf0f2dcdcdcfca87f1c618afb7c2a677025d6ae062af42
7
- data.tar.gz: 7e98d832553bd63cc803651ad38ff8fc7ee7736732184e8afcca40ea2adddfdf6f415e18c669e4197293e75ad24a05fc92bafcaba2ea8a879eecf82dcf9d5f62
6
+ metadata.gz: f530cc89303795277fcf94eed2ea0543b0d9731454efe8b0d268aedf0014280425b1bee333c8f4a765318f98ae4c43ddface76bc54792fc8df5a3140a9339f87
7
+ data.tar.gz: e567d639a4819b3f9e409f874cd5cd0575d7ab1b60bea8ef8494484634a5e43a2442c8dbaf197d145ab1bf32747dabda078bb04dec196c567197e10522a44f6e
data/exe/il CHANGED
@@ -4,21 +4,8 @@ require 'pry'
4
4
  require_relative "../lib/instructions_list/version"
5
5
  require_relative "../lib/instructions_list"
6
6
 
7
-
8
7
  module InstructionsList
9
8
 
10
- class Instructions < Thor
11
- include Thor::Actions
12
-
13
- def self.source_root
14
- File.dirname(__FILE__)
15
- end
16
- desc "add", "add instruction"
17
- def add name
18
- puts "add #{name} instruction"
19
- end
20
- end
21
-
22
9
  class CLI < Thor
23
10
  include Thor::Actions
24
11
 
@@ -27,14 +14,19 @@ module InstructionsList
27
14
  end
28
15
  desc "init KEY", "initialize a il directory with list key"
29
16
  def init key
17
+ `mkdir -p #{INSTRUCTIONS_DIR}`
30
18
  `touch #{KEY_PATH}`
31
19
  `echo #{key} > #{KEY_PATH}`
32
- connect key
33
20
  end
34
21
  desc "reset", "reset state"
35
22
  def reset name=:all
36
23
  instructable do
37
- `rm #{STATE}` if name == :all
24
+ if name == :all
25
+ `rm #{STATE}` if File.exists? STATE
26
+ `rm -rf .instructions`
27
+ return
28
+ end
29
+
38
30
  `ex +g/#{name}/d -cwq #{STATE}`
39
31
  end
40
32
  end
@@ -42,23 +34,15 @@ module InstructionsList
42
34
  option :reset
43
35
  def sync
44
36
  if instructable?
45
-
46
- puts "is instructable!"
47
-
48
37
  `mkdir -p #{PROJECT_CACHE}`
49
- puts "created the project cache"
50
38
  `mkdir -p #{PROJECT_CACHE_ARTIFACTS}`
51
- puts "created the project cache artifacts"
52
-
53
39
  if options[:reset]
54
40
  `rm -rf #{PROJECT_CACHE}` if Dir.exists? PROJECT_CACHE
55
41
  return
56
42
  end
57
-
58
43
  instructable do
59
44
  begin
60
45
  CacheBuilder.new(get_key,HOST,cache=PROJECT_CACHE,artifact_cache=PROJECT_CACHE_ARTIFACTS).build
61
- puts "built cache"
62
46
  rescue SocketError
63
47
  end
64
48
  end
@@ -72,38 +56,23 @@ module InstructionsList
72
56
  desc "instructions", "list all instructions"
73
57
  def instructions
74
58
 
75
- if home?
76
-
77
- list_from "Instructions", HOME_CACHE << "/" do |path|
78
- say show_command_for path
79
- end
80
-
81
- return
82
- end
83
-
84
- if instructable?
85
- unless home?
86
-
87
- list_from "Project", PROJECT_CACHE << "/" do |path|
88
- say show_command_for path
59
+ if project?
60
+ puts "project instructions!\n"
61
+ puts "list home instructions!"
62
+ elsif home?
63
+ Dir.chdir(ENV['HOME']) do
64
+ list_from "home", HOME_CACHE << '/' do |name|
65
+ say show_command_for name
89
66
  end
90
- puts ""
91
- list_from "Home Directory", HOME_CACHE << "/" do |path|
92
- say show_command_for path
93
- end
94
-
95
67
  end
96
68
  else
97
- Dir.chdir (ENV['HOME']) do
98
- list_from "Instructions", HOME_CACHE << "/" do |path|
99
- say show_command_for path
69
+ Dir.chdir(ENV['HOME']) do
70
+ list_from "home", HOME_CACHE << '/' do |name|
71
+ say show_command_for name
100
72
  end
101
73
  end
102
74
  end
103
75
 
104
-
105
-
106
-
107
76
  end
108
77
 
109
78
  desc "info" , "display information"
@@ -112,36 +81,27 @@ module InstructionsList
112
81
  say "host: #{HOST}"
113
82
  end
114
83
 
115
- desc "connect KEY" , "connect to a list"
116
- def connect key
117
- instructable do
118
- disconnect
119
- `echo #{key} > #{KEY_PATH}`
120
- `il sync`
121
- end
122
-
123
- end
124
-
125
- desc "disconnect" , "disconnect from a list"
126
- def disconnect
127
- instructable do
128
- `il sync --reset`
129
- `rm #{KEY_PATH}`
130
- end
131
- end
132
84
 
133
85
  desc "do", "do an instruction"
134
86
  option :force
135
- def do name=:all
136
- CHECKED.clear
137
- STACK.clear
138
- instructable do
139
- #load_from "Defaults","#{File.join(File.dirname(__FILE__), "../instructions/")}"
140
- #load_from "User","#{ENV['HOME']}/instructions/"
141
- #load_from "Project","./instructions/"
142
- load_from "Instructions", HOME_CACHE << "/"
143
- handle_instruction name,STACK,options[:force]
87
+ def do name
88
+ if name.nil?
89
+ say "oops ! you need a name"
90
+ return
91
+ end
92
+
93
+ begin
94
+ CHECKED.clear
95
+ STACK.clear
96
+ instructable do
97
+ load_from "Instructions", HOME_CACHE << "/" if home?
98
+ load_from "Projects", PROJECT_CACHE << "/" if project?
99
+ handle_instruction name,STACK,options[:force]
100
+ end
101
+ rescue => e
102
+ puts e.message
144
103
  end
104
+
145
105
  end
146
106
 
147
107
  map list: :instructions
@@ -173,13 +133,13 @@ module InstructionsList
173
133
  end
174
134
 
175
135
  def instructable?
176
- if Dir.exists? "./instructions"
177
- if Dir.exists? "./.instructions"
178
- if File.exists? "./.instructions/key"
179
- return true
180
- end
136
+
137
+ if Dir.exists? "./.instructions"
138
+ if File.exists? "./.instructions/key"
139
+ return true
181
140
  end
182
141
  end
142
+
183
143
  false
184
144
  end
185
145
 
@@ -197,22 +157,24 @@ module InstructionsList
197
157
  `pwd`.chomp == ENV['HOME']
198
158
  end
199
159
 
160
+ def project?
161
+ File.exists?("./instructions") && !home?
162
+ end
163
+
200
164
 
201
- def show_command_for path
202
- return " None" if path == " None"
203
- " il do #{path}"
165
+ def show_command_for name
166
+ " il do #{command_name(name)}"
204
167
  end
205
168
 
206
169
  def list_from location,path
207
- puts "#{location}"
208
- if Dir["#{path}*.rb"].any?
209
- Dir["#{path}*.rb"].each {|file|
210
- pn = Pathname.new(file)
211
- yield "#{File.basename(pn)}".gsub(".rb","")
212
- }
213
- else
214
- yield " None"
215
- end
170
+
171
+ puts "#{location}\n"
172
+
173
+ Dir["#{path}*.rb"].each {|file|
174
+ pn = Pathname.new(file)
175
+ yield File.basename(pn).gsub(".rb","")
176
+ }
177
+
216
178
  end
217
179
 
218
180
  def load_from name, path
@@ -225,12 +187,14 @@ module InstructionsList
225
187
  end
226
188
 
227
189
  def handle_instruction name,stack,force
228
- instruction = InstructionsList::INSTRUCTIONS.find{ |i| i.name == name }
229
- raise "Ooooops cant find #{instruction}" if instruction.nil?
190
+ instruction = InstructionsList::INSTRUCTIONS.find { |i|
191
+ command_name(i.name.gsub(" ","_")) == command_name(name)
192
+ }
193
+ raise "Ooooops cant find #{command_name(name)}" if instruction.nil?
230
194
  instruction.depends_on.each do |dependancy|
231
- unless stack.include? dependancy
232
- stack << dependancy
233
- handle_instruction(dependancy,stack,force)
195
+ unless stack.include? command_name(dependancy.gsub(" ","_"))
196
+ stack << command_name(dependancy.gsub(" ","_"))
197
+ handle_instruction(command_name(dependancy.gsub(" ","_")),stack,force)
234
198
  end
235
199
  end
236
200
  execute instruction,force: force
@@ -251,8 +215,6 @@ module InstructionsList
251
215
  end
252
216
  end
253
217
  end
254
- #desc "instructions", "instructions"
255
- #subcommand "instructions", Instructions
256
218
  end
257
219
  end
258
220
 
@@ -1,3 +1,3 @@
1
1
  module InstructionsList
2
- VERSION = "1.0.3.beta"
2
+ VERSION = "1.0.4.beta"
3
3
  end
@@ -7,14 +7,13 @@ module InstructionsList
7
7
  INSTRUCTIONS=[]
8
8
  STACK=[]
9
9
  CHECKED=[]
10
-
11
- HOME_CACHE = "/tmp/il/cache"
10
+ INSTRUCTIONS_DIR=".instructions"
11
+ HOME_CACHE = "#{ENV['HOME']}/#{INSTRUCTIONS_DIR}/cache"
12
12
  HOME_CACHE_ARTIFACTS="#{HOME_CACHE}/artifacts"
13
-
14
13
  PROJECT_CACHE = "./.instructions/cache"
15
14
  PROJECT_CACHE_ARTIFACTS="#{PROJECT_CACHE}/artifacts"
16
-
17
- KEY_PATH="./.instructions/key"
15
+ KEY_PATH="./#{INSTRUCTIONS_DIR}/key"
16
+ STATE="./.instructions/state"
18
17
  HOST= ENV.fetch('INSTRUCTIONS_LIST_HOST',"instructionslist.com")
19
18
  class It
20
19
  def self.exists? path
@@ -79,13 +78,25 @@ module InstructionsList
79
78
  def done(name)
80
79
  `mkdir -p './.instructions/'`
81
80
  `touch #{STATE}`
82
- `echo #{name} >> #{STATE}`
83
- check name
81
+ `echo #{command_name(name.to_s.gsub(" ","_"))} >> #{STATE}`
82
+ check command_name(name)
83
+ end
84
+
85
+ def command_name(name)
86
+ name.to_s.gsub("_", ":")
87
+ end
88
+ def reverse_command_name(name)
89
+ name.to_s.gsub(":", "_")
84
90
  end
85
91
 
86
92
  def check name
87
- system "echo #{name} ✔︎" unless CHECKED.include? name
88
- CHECKED << name
93
+
94
+ unless CHECKED.include? command_name(name)
95
+ system "echo #{command_name(name)} ✔︎"
96
+ return
97
+ end
98
+
99
+ CHECKED << command_name(name)
89
100
  end
90
101
  end
91
102
 
@@ -96,7 +107,7 @@ module InstructionsList
96
107
  @cache = cache
97
108
  end
98
109
  def write content
99
- File.open("#{@cache}/#{@file_name}", "w") do |file|
110
+ File.open("#{@cache}/#{reverse_command_name(@file_name)}", "w") do |file|
100
111
  file.puts content
101
112
  end
102
113
  end
@@ -109,7 +120,7 @@ module InstructionsList
109
120
  end
110
121
  def write content,directory
111
122
  `mkdir -p #{@cache}/#{directory}`
112
- File.open("#{@cache}/#{directory}/#{@file_name}", "w") do |file|
123
+ File.open("#{@cache}/#{directory}/#{reverse_command_name(@file_name)}", "w") do |file|
113
124
  file.puts content
114
125
  end
115
126
  end
@@ -124,8 +135,6 @@ module InstructionsList
124
135
  end
125
136
  def build
126
137
  begin
127
- puts "http://#{@host}/lists/#{@key}.json"
128
-
129
138
  content = JSON.parse open("http://#{@host}/lists/#{@key}.json").read
130
139
  `mkdir -p #{@cache}`
131
140
  content["instructions"].each do |instruction|
@@ -1,4 +1,4 @@
1
- module InstructionsList do
1
+ module InstructionsList
2
2
  class PackageManager
3
3
  def self.aptget?
4
4
  `which apt-get`.nil?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instructions_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3.beta
4
+ version: 1.0.4.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coco Coder (aka Delaney Burke)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-12 00:00:00.000000000 Z
11
+ date: 2017-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -119,7 +119,6 @@ extra_rdoc_files: []
119
119
  files:
120
120
  - ".byebug_history"
121
121
  - ".gitignore"
122
- - ".instructions/cache/install:redis.rb"
123
122
  - ".instructions/key"
124
123
  - ".ruby-version"
125
124
  - CODE_OF_CONDUCT.md
@@ -1,8 +0,0 @@
1
- instruction 'install:redis' do
2
- instructed?{
3
- It::Is.done? "install:redis"
4
- }
5
- instruct{
6
- system "echo "install redis""
7
- }
8
- end