instructions_list 1.0.0.beta → 1.0.1.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: 85893549c4b07a547a2d75e029d926bbc78f05b0
4
- data.tar.gz: 420aeed99c53df1d2b417dd311c78e5a27c50a27
3
+ metadata.gz: ae3e46c693141fb1b3bdcd6ad5281ab1224ca0fc
4
+ data.tar.gz: 3166f131ae068f5c5865d22a04601ec2d2c1cd91
5
5
  SHA512:
6
- metadata.gz: 731c4bb40d6a1e7403875de14a611b6d5e21093919037529d0905d57574e5ad198d81a3ed36f9c395757b33ad91f764771cd22ab3247ff9c98d82e8d574d922d
7
- data.tar.gz: b5a4ad4028491cf9cbafa9a17603968eca25244315a309a4fe93a4a80043ff0829eb32e7d8f4739c3613db5c3a48b33c2694e705146d4f4754f2e1ecb0867121
6
+ metadata.gz: e867f5f55c09ebf54143b4a15622269f96c3eeb1c22587fe26db31ab775ec54a875e9d80047ab50c48720fa8d95d2ac2ce69034f3a2e314a32e3db6f4e85e32e
7
+ data.tar.gz: b604a687f3e181991fba87afaf91b412f9a6e7758e1fc626159978d05bc80ee1370a19df3bab8baf0aa737f60050fbacf9f20ee5efd8716dbadd1399bdb4c611
data/.byebug_history CHANGED
@@ -1,4 +1,14 @@
1
1
  exit
2
+ n
3
+ exit
4
+ instruction.depends_on
5
+ exit
6
+ stack
7
+ next
8
+ next
9
+ next
10
+ stack
11
+ exit
2
12
  instruction
3
13
  continue
4
14
  exit
@@ -0,0 +1,3 @@
1
+ test
2
+ child
3
+ parent
data/exe/il CHANGED
@@ -6,6 +6,7 @@ require_relative "../lib/instructions_list"
6
6
 
7
7
 
8
8
  module InstructionsList
9
+
9
10
  class Instructions < Thor
10
11
  include Thor::Actions
11
12
 
@@ -42,19 +43,19 @@ module InstructionsList
42
43
  desc "sync", "synchronize the instructions"
43
44
  option :reset
44
45
  def sync
45
-
46
46
  `mkdir -p /tmp/il/cache`
47
+ Dir.chdir ENV['HOME'] do
48
+ if options[:reset]
49
+ `rm -rf #{CACHE}` if Dir.exists? CACHE
50
+ return
51
+ end
47
52
 
48
- if options[:reset]
49
- `rm -rf #{CACHE}` if Dir.exists? CACHE
50
- return
51
- end
52
-
53
- instructable do
54
- begin
55
- CacheBuilder.new.build
56
- rescue SocketError
53
+ instructable do
54
+ begin
55
+ CacheBuilder.new(get_key).build
56
+ rescue SocketError
57
57
 
58
+ end
58
59
  end
59
60
  end
60
61
  end
@@ -73,17 +74,22 @@ module InstructionsList
73
74
  list_from "Home Directory","#{ENV['HOME']}/instructions/" do |path|
74
75
  say show_command_for path
75
76
  end
77
+
76
78
  puts ""
79
+
80
+ return if `pwd`.chomp == ENV['HOME']
81
+
77
82
  list_from "Current Project","./instructions/" do |path|
78
83
  say show_command_for path
79
-
80
84
  end
85
+
81
86
  puts ""
82
87
  end
83
88
 
84
89
  desc "info" , "display information"
85
90
  def info
86
91
  say "connected to\ key: #{get_key}"
92
+ say "host: #{HOST}"
87
93
  end
88
94
 
89
95
  desc "connect KEY" , "connect to a list"
@@ -104,12 +110,14 @@ module InstructionsList
104
110
  desc "do", "do an instruction"
105
111
  option :force
106
112
  def do name=:all
113
+ CHECKED.clear
114
+ STACK.clear
107
115
  instructable do
108
116
  load_from "Defaults","#{File.join(File.dirname(__FILE__), "../instructions/")}"
109
117
  load_from "User","#{ENV['HOME']}/instructions/"
110
118
  load_from "Project","./instructions/"
111
119
  load_from "Cloud", CACHE << "/"
112
- handle_instruction name,force: options[:force]
120
+ handle_instruction name,STACK,options[:force]
113
121
  end
114
122
  end
115
123
 
@@ -118,15 +126,21 @@ module InstructionsList
118
126
  no_tasks do
119
127
  def get_key
120
128
  return "Not connected!" unless File.exists? KEY_PATH
121
- File.read(KEY_PATH)
129
+ File.read(KEY_PATH).chomp
122
130
  end
123
131
  def instructable
124
132
  if Dir.exists? "./instructions"
125
133
  if Dir.exists? "./.instructions"
126
- if File.exists? "./.instructions/key"
134
+ if home?
135
+ if File.exists? "./.instructions/key"
136
+ yield
137
+ return
138
+ end
139
+ else
127
140
  yield
128
- return
141
+ return
129
142
  end
143
+
130
144
  end
131
145
  end
132
146
 
@@ -134,6 +148,10 @@ module InstructionsList
134
148
 
135
149
  end
136
150
 
151
+ def home?
152
+ `pwd`.chomp == ENV['HOME']
153
+ end
154
+
137
155
 
138
156
  def show_command_for path
139
157
  return " None" if path == " None"
@@ -161,11 +179,14 @@ module InstructionsList
161
179
  end
162
180
  end
163
181
 
164
- def handle_instruction name, force: false
182
+ def handle_instruction name,stack,force
165
183
  instruction = InstructionsList::INSTRUCTIONS.find{ |i| i.name == name }
166
184
  raise "Ooooops cant find #{instruction}" if instruction.nil?
167
185
  instruction.depends_on.each do |dependancy|
168
- handle_instruction dependancy,force: force
186
+ unless stack.include? dependancy
187
+ stack << dependancy
188
+ handle_instruction(dependancy,stack,force)
189
+ end
169
190
  end
170
191
  execute instruction,force: force
171
192
  end
@@ -1,3 +1,3 @@
1
1
  module InstructionsList
2
- VERSION = "1.0.0.beta"
2
+ VERSION = "1.0.1.beta"
3
3
  end
@@ -5,7 +5,10 @@ require_relative "instructions_list/version"
5
5
 
6
6
  module InstructionsList
7
7
  INSTRUCTIONS=[]
8
+ STACK=[]
9
+ CHECKED=[]
8
10
  CACHE = "/tmp/il/cache"
11
+ CACHE_ARTIFACTS="#{CACHE}/artifacts"
9
12
  KEY_PATH="./.instructions/key"
10
13
  HOST= ENV.fetch('INSTRUCTIONS_LIST_HOST',"instructionslist.com")
11
14
  class It
@@ -41,7 +44,7 @@ module InstructionsList
41
44
  block.call
42
45
  end
43
46
 
44
- def depends_on name
47
+ def depends_on name
45
48
  @instruction.depends_on << name
46
49
  end
47
50
 
@@ -76,7 +79,8 @@ module InstructionsList
76
79
  end
77
80
 
78
81
  def check name
79
- system "echo #{name} ✔︎"
82
+ system "echo #{name} ✔︎" unless CHECKED.include? name
83
+ CHECKED << name
80
84
  end
81
85
  end
82
86
 
@@ -92,8 +96,20 @@ module InstructionsList
92
96
  end
93
97
  end
94
98
 
99
+ class CacheArtifactItem
100
+ def initialize(file_name)
101
+ @file_name = file_name
102
+ end
103
+ def write content,directory
104
+ `mkdir -p #{CACHE_ARTIFACTS}/#{directory}`
105
+ File.open("#{CACHE_ARTIFACTS}/#{directory}/#{@file_name}","w") do |file|
106
+ file.puts content
107
+ end
108
+ end
109
+ end
110
+
95
111
  class CacheBuilder
96
- def initialize(key="ILSCZUWANID",host=HOST)
112
+ def initialize(key,host=HOST)
97
113
  @key = key
98
114
  @host = host
99
115
  end
@@ -102,10 +118,21 @@ module InstructionsList
102
118
  content = JSON.parse open("http://#{@host}/lists/#{@key}.json").read
103
119
  `mkdir -p #{CACHE}`
104
120
  content["instructions"].each do |instruction|
121
+
105
122
  CacheItem
106
123
  .new(instruction["file_name"])
107
124
  .write(instruction["file_contents"])
108
- end
125
+
126
+ instruction["artifacts"].each do |artifact|
127
+
128
+ CacheArtifactItem
129
+ .new(artifact["file_name"])
130
+ .write(artifact["contents"],content["key"])
131
+
132
+ end
133
+
134
+ end
135
+
109
136
  rescue SocketError,JSON::ParserError
110
137
  puts "cant find #{@host}"
111
138
  end
data/tags CHANGED
@@ -4,25 +4,32 @@
4
4
  !_TAG_PROGRAM_NAME Exuberant Ctags //
5
5
  !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6
6
  !_TAG_PROGRAM_VERSION 5.8 //
7
+ CacheBuilder lib/instructions_list.rb /^ class CacheBuilder$/;" c
8
+ CacheItem lib/instructions_list.rb /^ class CacheItem$/;" c class:InstructionsList
7
9
  DSL lib/instructions_list.rb /^ module DSL$/;" m class:InstructionsList
8
10
  Instruction lib/instructions_list.rb /^ class Instruction$/;" c class:InstructionsList
9
11
  InstructionsList lib/instructions_list.rb /^module InstructionsList$/;" m
10
12
  InstructionsList lib/instructions_list/version.rb /^module InstructionsList$/;" m
11
13
  InstructionsList lib/package_manager.rb /^module InstructionsList do$/;" m
12
- ItIs lib/instructions_list.rb /^ class ItIs$/;" c class:InstructionsList
14
+ Is lib/instructions_list.rb /^ class Is$/;" c class:InstructionsList.It
15
+ It lib/instructions_list.rb /^ class It$/;" c class:InstructionsList
13
16
  PackageManager lib/package_manager.rb /^ class PackageManager$/;" c class:InstructionsList
14
17
  aptget lib/package_manager.rb /^ def self.aptget?$/;" F class:InstructionsList.PackageManager
15
18
  brew lib/package_manager.rb /^ def self.brew?$/;" F class:InstructionsList.PackageManager
19
+ build lib/instructions_list.rb /^ def build$/;" f class:CacheBuilder
16
20
  check lib/instructions_list.rb /^ def check name$/;" f class:InstructionsList.DSL
17
21
  depends_on lib/instructions_list.rb /^ def depends_on name$/;" f class:InstructionsList.DSL
22
+ done lib/instructions_list.rb /^ def self.done? name$/;" F class:InstructionsList.It.Is
18
23
  done lib/instructions_list.rb /^ def done(name)$/;" f class:InstructionsList.DSL
19
- done lib/instructions_list.rb /^ def self.done? name$/;" F class:InstructionsList.ItIs
20
- exists lib/instructions_list.rb /^ def self.exists? context,path$/;" F class:InstructionsList.ItIs
24
+ exists lib/instructions_list.rb /^ def self.exists? path$/;" F class:InstructionsList.It
21
25
  initialize lib/instructions_list.rb /^ def initialize$/;" f class:InstructionsList.Instruction
22
- installed lib/instructions_list.rb /^ def self.installed? exe_path$/;" F class:InstructionsList.ItIs
26
+ initialize lib/instructions_list.rb /^ def initialize(file_name)$/;" f class:InstructionsList.CacheItem
27
+ initialize lib/instructions_list.rb /^ def initialize(key,host=HOST)$/;" f class:CacheBuilder
28
+ installed lib/instructions_list.rb /^ def self.installed? path$/;" F class:InstructionsList.It.Is
23
29
  instruct lib/instructions_list.rb /^ def instruct &block$/;" f class:InstructionsList.DSL
24
30
  instructed? lib/instructions_list.rb /^ def instructed? &block$/;" f class:InstructionsList.DSL
25
31
  instruction lib/instructions_list.rb /^ def instruction name,&block$/;" f class:InstructionsList.DSL
26
32
  on lib/instructions_list.rb /^ def on os$/;" f class:InstructionsList.DSL
27
- running lib/instructions_list.rb /^ def self.running? name$/;" F class:InstructionsList.ItIs
28
- sss lib/package_manager.rb /^ def self.yum?$/;" F class:InstructionsList.PackageManager
33
+ running lib/instructions_list.rb /^ def self.running? name$/;" F class:InstructionsList.It.Is
34
+ write lib/instructions_list.rb /^ def write content$/;" f class:InstructionsList.CacheItem
35
+ yum lib/package_manager.rb /^ def self.yum?$/;" F class:InstructionsList.PackageManager
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.0.beta
4
+ version: 1.0.1.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-10-29 00:00:00.000000000 Z
11
+ date: 2017-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -120,6 +120,7 @@ files:
120
120
  - ".byebug_history"
121
121
  - ".gitignore"
122
122
  - ".instructions/key"
123
+ - ".instructions/state"
123
124
  - CODE_OF_CONDUCT.md
124
125
  - Gemfile
125
126
  - LICENSE.txt