konstruct 0.3.0 → 0.4.0

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: 1e0f8d6d9d08df5fb4a6e2df306fdacd027e5cb7
4
- data.tar.gz: fc1a9f444179125cd001e292e99a2f3dcf4c0010
3
+ metadata.gz: 1ae69132b72d526e031e7a84a4e82597a7aeae53
4
+ data.tar.gz: 71247fa10d11ed3acc0094f898b5a33f0187c401
5
5
  SHA512:
6
- metadata.gz: 9ba67d6b48d82cb6c0bc42ef1d3b948d04701e524c4fb20f0db5ed9deb230009fc2a9c19610b30a534b97d8e332f85f223a0c6563f4d632b2c17903b96fbc492
7
- data.tar.gz: 0cbd097cdeea548afb160c85535ac8b8a5097da3212a72d3a5383377ef1db69c350fde198b9918704f4e9a8d28b0ee4fcbb0f4473386c032417ab3be76346df2
6
+ metadata.gz: be77d386e4c962fbb3fcc3a33100f5acd88152712aec17b101ef7bd302c87d964ecd6aba9aeb497d31c2de6a853185f671aed850950eb8dbb1196fbc577051db
7
+ data.tar.gz: a8a646565efb5c8f1fefcf3b55b0ee209737e675772cf0fa582ee838ffecc48303a8a443751f64edf1f3fb8c5068bb3e9bf50ef77abe4b7d0810317ee5682e3b
data/README.md CHANGED
@@ -26,7 +26,9 @@ This feature is coming soon.
26
26
 
27
27
  #### Gulp
28
28
 
29
- This feature is coming soon.
29
+ $ konstruct gulp
30
+
31
+ Runs a default Gulp
30
32
 
31
33
  #### Skeleton
32
34
 
@@ -18,10 +18,13 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'commander'
22
- spec.add_dependency 'minigit'
23
- spec.add_dependency 'paint'
24
- spec.add_dependency 'launchy'
21
+ dependencies = ['commander', 'minigit', 'paint', 'launchy', 'json']
22
+
23
+ dependencies.each { |d|
24
+
25
+ spec.add_dependency d
26
+
27
+ }
25
28
 
26
29
  spec.add_development_dependency "bundler", "~> 1.11"
27
30
  spec.add_development_dependency "rake", "~> 10.0"
@@ -0,0 +1,35 @@
1
+ # KONSTRUCT CLI [ KONSTRUCT MODULE ] ==================================================================================
2
+
3
+ # ====== INDEX =======================================================================================================
4
+ # ==
5
+ # == A. SKELETON PROJECT CREATOR
6
+ # ==
7
+ # ====== INDEX =======================================================================================================
8
+
9
+ # A. SKELETON PROJECT CREATOR +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10
+
11
+ module Konstruct
12
+
13
+ class Cli
14
+
15
+ def gulp(path)
16
+
17
+ # B.1. INITIALISE FUNCTIONS -------------------------------------------------------------------------------
18
+
19
+ msg = Util::Message.new()
20
+ fs = Util::FS.new()
21
+ gulp = Util::Gulp.new()
22
+
23
+ # B.1. END ------------------------------------------------------------------------------------------------
24
+
25
+ gulp.default(path)
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
33
+ # B. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
34
+
35
+ # END OF FILE =========================================================================================================
@@ -17,45 +17,154 @@ module Konstruct
17
17
  # B.1. INITIALISE FUNCTIONS -------------------------------------------------------------------------------
18
18
 
19
19
  msg = Util::Message.new()
20
+ fs = Util::FS.new()
21
+ git = Util::Git.new()
22
+
23
+ config_dir = File.expand_path('~/.konstruct')
20
24
 
21
25
  # B.1. END ------------------------------------------------------------------------------------------------
22
26
 
23
27
  msg.heading("WELCOME TO THE KONSTRUCT CLI!")
24
28
 
25
- # B.2. SHOW THE HELLO SCREEN ------------------------------------------------------------------------------
29
+ # B.2. INIT VARIABLSE -------------------------------------------------------------------------------------
30
+
31
+ init = false
32
+ init_db = false
33
+ init_gulp = false
34
+ init_gulp_install = false
35
+ init_bower = false
36
+
37
+ dir_analytics = "#{config_dir}/analytics"
38
+ dir_gulp = "#{config_dir}/gulp"
39
+
40
+ # B.2. END ------------------------------------------------------------------------------------------------
41
+
42
+ # B.3. CHECK IF INIT SHOULD BE DONE -----------------------------------------------------------------------
43
+
44
+ if Dir[config_dir].length > 0
45
+
46
+ init = true
47
+
48
+ else
49
+
50
+ fs.make_dir(config_dir)
51
+ init = true
52
+
53
+ end
54
+
55
+ # B.3. END ------------------------------------------------------------------------------------------------
56
+
57
+ # B.4. MAKE DATABASE.JSON ---------------------------------------------------------------------------------
58
+
59
+ if File.file?("#{dir_analytics}/data.json")
60
+
61
+ init_db = true
62
+
63
+ else
64
+
65
+ fs.make_dir(dir_analytics)
66
+
67
+ file_data = {
68
+
69
+ "konstruct_version" => Konstruct::VERSION
70
+
71
+ }
72
+
73
+ File.open("#{dir_analytics}/data.json","w") do |f|
74
+ f.write(JSON.pretty_generate(file_data))
75
+ end
76
+
77
+ msg.success("Created #{dir_analytics}/data.json")
78
+
79
+ init_db = true
80
+
81
+ end
82
+
83
+ # B.4. END ------------------------------------------------------------------------------------------------
84
+
85
+ # B.5. CLONE GULP REPOSITORY ------------------------------------------------------------------------------
86
+
87
+ if Dir.exists?(dir_gulp)
88
+
89
+ init_gulp = true
90
+
91
+ else
92
+
93
+ fs.make_dir(dir_gulp)
94
+
95
+ git.install(dir_gulp, Konstruct::FRAMEWORK["gulp"], "gulp", "")
96
+
97
+ msg.success("Cloned Gulp to #{dir_gulp}")
98
+
99
+ init_gulp = true
100
+
101
+ end
102
+
103
+ # B.5. END ------------------------------------------------------------------------------------------------
104
+
105
+ # B.6. INSTALL NPM ----------------------------------------------------------------------------------------
26
106
 
27
- puts ""
28
- puts ""
29
- puts Paint[' $III7IIIIIIIIIIIIIIIIIIIIIIIIII: ', "#de544b"]
30
- puts Paint[' ZZZZZZ$7IIIIIIIIIIIIIIIIIIIIIIII ', "#de544b"]
31
- puts Paint[' ZZZZZZZZZZZZ$7IIIIIIIIIIIIIIIIII ', "#de544b"]
32
- puts Paint[' ZZZZZZZZZZZZZZZZZZZ$IIIIIIIIIIII~', "#de544b"]
33
- puts Paint[' ZZZZZZZZZZZZZZZZZZZZZZZ:,:+IIIIII', "#de544b"]
34
- puts Paint[' ZZZZZZZZZZZZZZZZZZZZZZ. :?', "#de544b"]
35
- puts Paint[' I$ZZZZZZZZZZZZZZZZZZ7 ', "#de544b"]
36
- puts Paint[' III$ZZZZZZZZZZZZZZZ~ ', "#de544b"]
37
- puts Paint[' IIIII7ZZZZZZZZZZZZ ', "#de544b"]
38
- puts Paint[' IIIIIII7ZZZZZZZZ$ ', "#de544b"]
39
- puts Paint[' IIIIIIIIIIZZZZZ: ', "#de544b"]
40
- puts Paint[' IIIIIIIIIIIIZI ', "#de544b"]
41
- puts Paint[' IIIIIIIIIIIIII ', "#de544b"]
42
- puts Paint[' IIIIIIIIIIIIIIII= ', "#de544b"]
43
- puts Paint[' IIIIIIIIIIIIIIIII7= ', "#de544b"]
44
- puts Paint[' IIIIIIIIIIIIIIIIIIII~ ', "#de544b"]
45
- puts Paint[' IIIIIIIIIIIIIIIIIIIIII= ', "#de544b"]
46
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIII7~ ', "#de544b"]
47
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIII.. ', "#de544b"]
48
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIII7 ', "#de544b"]
49
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII,.', "#de544b"]
50
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7', "#de544b"]
51
- puts ""
52
- puts ""
53
- puts Paint[' GO BUILD SOMETHING AWESOME!', "#999999"]
54
- puts ""
55
- puts Paint[' Run "$ konstruct --help" or "$ konstruct documentation" whenever you get stuck!', "#999999"]
56
- puts ""
57
-
58
- exit(0)
107
+ if Dir.exists?("#{dir_gulp}/node_modules")
108
+
109
+ init_gulp_install = true
110
+
111
+ else
112
+
113
+ msg.paragraph("Installing Gulp + Dependencies. This might take a while. ")
114
+ msg.paragraph("Please enter your root/admin password. NPM needs to install with sudo privileges.")
115
+
116
+ FileUtils.cd(dir_gulp) do
117
+
118
+ `npm install`
119
+
120
+ end
121
+
122
+ msg.success("Installed Gulp to #{dir_gulp}")
123
+
124
+ init_gulp_install = true
125
+
126
+ end
127
+
128
+ # B.6. END ------------------------------------------------------------------------------------------------
129
+
130
+ # B.3. SHOW THE HELLO SCREEN ------------------------------------------------------------------------------
131
+
132
+ if init && init_db && init_gulp && init_gulp_install
133
+
134
+ puts ""
135
+ puts ""
136
+ puts Paint[' $III7IIIIIIIIIIIIIIIIIIIIIIIIII: ', "#de544b"]
137
+ puts Paint[' ZZZZZZ$7IIIIIIIIIIIIIIIIIIIIIIII ', "#de544b"]
138
+ puts Paint[' ZZZZZZZZZZZZ$7IIIIIIIIIIIIIIIIII ', "#de544b"]
139
+ puts Paint[' ZZZZZZZZZZZZZZZZZZZ$IIIIIIIIIIII~', "#de544b"]
140
+ puts Paint[' ZZZZZZZZZZZZZZZZZZZZZZZ:,:+IIIIII', "#de544b"]
141
+ puts Paint[' ZZZZZZZZZZZZZZZZZZZZZZ. :?', "#de544b"]
142
+ puts Paint[' I$ZZZZZZZZZZZZZZZZZZ7 ', "#de544b"]
143
+ puts Paint[' III$ZZZZZZZZZZZZZZZ~ ', "#de544b"]
144
+ puts Paint[' IIIII7ZZZZZZZZZZZZ ', "#de544b"]
145
+ puts Paint[' IIIIIII7ZZZZZZZZ$ ', "#de544b"]
146
+ puts Paint[' IIIIIIIIIIZZZZZ: ', "#de544b"]
147
+ puts Paint[' IIIIIIIIIIIIZI ', "#de544b"]
148
+ puts Paint[' IIIIIIIIIIIIII ', "#de544b"]
149
+ puts Paint[' IIIIIIIIIIIIIIII= ', "#de544b"]
150
+ puts Paint[' IIIIIIIIIIIIIIIII7= ', "#de544b"]
151
+ puts Paint[' IIIIIIIIIIIIIIIIIIII~ ', "#de544b"]
152
+ puts Paint[' IIIIIIIIIIIIIIIIIIIIII= ', "#de544b"]
153
+ puts Paint[' IIIIIIIIIIIIIIIIIIIIIII7~ ', "#de544b"]
154
+ puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIII.. ', "#de544b"]
155
+ puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIII7 ', "#de544b"]
156
+ puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII,.', "#de544b"]
157
+ puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7', "#de544b"]
158
+ puts ""
159
+ puts ""
160
+ puts Paint[' GO BUILD SOMETHING AWESOME!', "#999999"]
161
+ puts ""
162
+ puts Paint[' Run "$ konstruct --help" or "$ konstruct documentation" whenever you get stuck!', "#999999"]
163
+ puts ""
164
+
165
+ exit(0)
166
+
167
+ end
59
168
 
60
169
  # B.3. END ------------------------------------------------------------------------------------------------
61
170
 
@@ -2,96 +2,208 @@
2
2
 
3
3
  # ====== INDEX =======================================================================================================
4
4
  # ==
5
- # == A. LOAD DEPENDENCIES
6
- # == A. COMMAND MODULES
5
+ # == A. SCAFFOLD A NEW SITE
7
6
  # ==
8
7
  # ====== INDEX =======================================================================================================
9
8
 
10
- # B. COMMANDER SCRIPT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9
+ # A. SCAFFOLD A NEW SITE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11
10
 
12
- module Cli
13
-
14
- # B.1. GIT COMMANDS -----------------------------------------------------------------------------------------------
11
+ module Konstruct
15
12
 
16
- class Scaffold
17
-
18
- # B.1.1. INTRODUCTION
13
+ class Cli
19
14
 
20
- def icon
21
-
22
- puts ""
23
- puts ""
24
- puts Paint[' $III7IIIIIIIIIIIIIIIIIIIIIIIIII: ', "#de544b"]
25
- puts Paint[' ZZZZZZ$7IIIIIIIIIIIIIIIIIIIIIIII ', "#de544b"]
26
- puts Paint[' ZZZZZZZZZZZZ$7IIIIIIIIIIIIIIIIII ', "#de544b"]
27
- puts Paint[' ZZZZZZZZZZZZZZZZZZZ$IIIIIIIIIIII~', "#de544b"]
28
- puts Paint[' ZZZZZZZZZZZZZZZZZZZZZZZ:,:+IIIIII', "#de544b"]
29
- puts Paint[' ZZZZZZZZZZZZZZZZZZZZZZ. :?', "#de544b"]
30
- puts Paint[' I$ZZZZZZZZZZZZZZZZZZ7 ', "#de544b"]
31
- puts Paint[' III$ZZZZZZZZZZZZZZZ~ ', "#de544b"]
32
- puts Paint[' IIIII7ZZZZZZZZZZZZ ', "#de544b"]
33
- puts Paint[' IIIIIII7ZZZZZZZZ$ ', "#de544b"]
34
- puts Paint[' IIIIIIIIIIZZZZZ: ', "#de544b"]
35
- puts Paint[' IIIIIIIIIIIIZI ', "#de544b"]
36
- puts Paint[' IIIIIIIIIIIIII ', "#de544b"]
37
- puts Paint[' IIIIIIIIIIIIIIII= ', "#de544b"]
38
- puts Paint[' IIIIIIIIIIIIIIIII7= ', "#de544b"]
39
- puts Paint[' IIIIIIIIIIIIIIIIIIII~ ', "#de544b"]
40
- puts Paint[' IIIIIIIIIIIIIIIIIIIIII= ', "#de544b"]
41
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIII7~ ', "#de544b"]
42
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIII.. ', "#de544b"]
43
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIII7 ', "#de544b"]
44
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII,.', "#de544b"]
45
- puts Paint[' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7', "#de544b"]
46
- puts ""
47
- puts ""
15
+ def scaffold(path)
48
16
 
49
- end
50
-
51
- # B.1.1. END
52
-
53
-
54
-
55
- # B.1.1. CHECK FOR EMPTY DIRECTORY
56
-
57
-
58
-
59
- # B.1.1. END
17
+ # B.1. INITIALISE FUNCTIONS -------------------------------------------------------------------------------
18
+
19
+ msg = Util::Message.new()
20
+ fs = Util::FS.new()
21
+ git = Util::Git.new()
22
+
23
+ config_dir = "#{path}/.konstruct"
24
+
25
+ # B.1. END ------------------------------------------------------------------------------------------------
26
+
27
+ msg.heading("SCAFFOLDING A NEW SITE FOR YOU")
28
+
29
+ # B.2. IS YOUR DIRECTORY EMPTY? ---------------------------------------------------------------------------
60
30
 
61
- # B.1.1. INSTALL SYSTEM FILES
31
+ fs.clear_directory(path)
32
+
33
+ # B.2. END ------------------------------------------------------------------------------------------------
34
+
35
+ # B.3. INSTALL BOILERPLATE --------------------------------------------------------------------------------
36
+
37
+ type = choose("What type of site are you building?", :Default, :Jekyll, :Angular)
38
+
39
+ if type == :Default
40
+
41
+ git.install(path, Konstruct::BOILERPLATE["Default"], "www", "")
42
+
43
+ end
44
+
45
+ if type == :Jekyll
46
+
47
+ git.install(path, Konstruct::BOILERPLATE["Jekyll"], "www", "")
48
+
49
+ end
50
+
51
+ if type == :Angular
52
+
53
+ git.install(path, Konstruct::BOILERPLATE["Angular"], "www", "")
54
+
55
+ end
56
+
57
+ msg.success("Successfully installed the #{ type } repository!");
58
+
59
+ # B.3. END ------------------------------------------------------------------------------------------------
60
+
61
+ # B.4. INSTALL CSS ----------------------------------------------------------------------------------------
62
+
63
+ css_dir = "#{path}/assets/css"
64
+
65
+ fs.make_dir(css_dir)
66
+
67
+ # B.4.1. INSTALL KONSTRUCT SCSS MODULE
68
+
69
+ git.install(css_dir, Konstruct::FRAMEWORK["scss"], "scss", "konstruct")
70
+
71
+ msg.success("Successfully installed the Konstruct SCSS framework!")
72
+
73
+ # B.4.1. END
74
+
75
+ # B.4.2. INSTALL KONSTRUCT SITE MODULE
76
+
77
+ git.install(css_dir, Konstruct::FRAMEWORK["site"], "site", "site")
78
+
79
+ msg.success("Successfully installed the Konstruct Site module")
80
+
81
+ # B.4.2. END
82
+
83
+ # B.4.1. INSTALL KONSTRUCT GLUE MODULE
84
+
85
+ git.install(css_dir, Konstruct::FRAMEWORK["glue"], "glue", "")
86
+
87
+ msg.success("Successfully installed the Konstruct Glue module")
88
+
89
+ # B.4.1. END
90
+
91
+ # B.4. END ------------------------------------------------------------------------------------------------
92
+
93
+ # B.5. INSTALL JS -----------------------------------------------------------------------------------------
94
+
95
+ js_dir = "#{path}/assets/js"
96
+
97
+ if type == :Angular
98
+
99
+ git.install(js_dir, Konstruct::FRAMEWORK["angular"], "scripts", "scripts")
100
+
101
+ msg.success("Successfully installed the Konstruct Angular module")
102
+
103
+ else
104
+
105
+ git.install(js_dir, Konstruct::FRAMEWORK["js"], "scripts", "scripts")
106
+
107
+ msg.success("Successfully installed the Konstruct JS module")
108
+
109
+ end
110
+
111
+ # B.5. END ------------------------------------------------------------------------------------------------
112
+
113
+ # B.6. INSTALL NPM ASSETS ---------------------------------------------------------------------------------
114
+
115
+ `npm install`
116
+ msg.success("Installed NPM Assets")
117
+
118
+ # B.6. END ------------------------------------------------------------------------------------------------
119
+
120
+ # B.6. SET UP NEW GIT REPOSITORY --------------------------------------------------------------------------
121
+
122
+ want_git = choose("Want to initialise a git repository?", :Yes, :No)
123
+
124
+ if want_git == :Yes
125
+
126
+ git.init(path)
127
+
128
+ has_remote = choose("Do you already have a remote git repository?", :Yes, :No)
129
+
130
+ if has_remote == :Yes
131
+
132
+ remote_url = ask("Remote Url:")
133
+
134
+ git.remote(path, remote_url)
135
+ git.add(path)
136
+
137
+ msg.success("Successfully initialised your git repo")
138
+
139
+ end
140
+
141
+ end
142
+
143
+ # B.6. END ------------------------------------------------------------------------------------------------
144
+
145
+ # B.4. INSTALL .konstruct ---------------------------------------------------------------------------------
146
+
147
+ fs.make_dir(config_dir)
148
+
149
+ date = Time.new
150
+ date_installed = "#{ date.year }-#{ date.month }-#{ date.day }"
151
+
152
+ file_data = {
153
+
154
+ "konstruct_version" => Konstruct::VERSION,
155
+ "date_installed" => date_installed,
156
+ "path" => path,
157
+ "type" => type,
158
+ "git_remote" => remote_url
159
+
160
+ }
161
+
162
+ File.open("#{config_dir}/data.json","w") do |f|
163
+ f.write(JSON.pretty_generate(file_data))
164
+ end
165
+
166
+ msg.success("Created #{config_dir}/data.json")
167
+
168
+ # B.4. END ------------------------------------------------------------------------------------------------
169
+
170
+ # B.5. SEND BUILD DATA TO ANALYTICS -----------------------------------------------------------------------
62
171
 
63
- def install_system
172
+ analytics_file = File.expand_path('~/.konstruct/analytics/data.json')
173
+
174
+ analytics_data = {
175
+
176
+ "site" => {
177
+
178
+ "path" => path,
179
+ "date" => date_installed,
180
+ "actions" => {
181
+
182
+ "action" => "Installed the site.",
183
+ "date" => date_installed
184
+
185
+ }
186
+
187
+ }
188
+
189
+ }
190
+
191
+ json = File.read(analytics_file)
192
+
193
+ File.open(analytics_file,"w") do |f|
194
+ f.write(JSON.pretty_generate(analytics_data))
195
+ end
196
+
197
+ msg.success("Logged Analytics to #{analytics_file}")
198
+
199
+ # B.5. END ------------------------------------------------------------------------------------------------
64
200
 
65
201
  end
66
202
 
67
- # B.1.1. END
68
-
69
- # B.1.1. GET: SITE INFORMATION
70
-
71
- # B.1.1. END
72
-
73
- # B.1.1. DO: SCAFFOLD CHOSEN SITE
74
-
75
- # B.1.1. END
76
-
77
- # B.1.1. DO: CLEAN DIRECTORY
78
-
79
- # B.1.1. END
80
-
81
- # B.1.1. GET: INITIALISE GIT REPOSITORY?
82
-
83
- # B.1.1. END
84
-
85
- # B.1.1. DO: GIT REPO WORK
86
-
87
- # B.1.1. END
88
-
89
203
  end
90
204
 
91
- # B.1. END --------------------------------------------------------------------------------------------------------
92
-
93
205
  end
94
206
 
95
207
  # B. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
96
208
 
97
- # END OF FILE =========================================================================================================
209
+ # END OF FILE =========================================================================================================
@@ -11,10 +11,13 @@
11
11
  # A.1. EXTERNAL DEPENDENCIES ------------------------------------------------------------------------------------------
12
12
 
13
13
  require "konstruct/version"
14
+ require "konstruct/config"
14
15
  require 'rubygems'
15
16
  require 'commander/import'
16
17
  require 'paint'
17
18
  require 'launchy'
19
+ require 'minigit'
20
+ require 'json'
18
21
 
19
22
  # A.1. END ------------------------------------------------------------------------------------------------------------
20
23
 
@@ -23,6 +26,8 @@ require 'launchy'
23
26
  #A.2.1. UTILITIES
24
27
 
25
28
  require_relative 'utilities/utils'
29
+ require_relative 'utilities/gulp'
30
+ require_relative 'utilities/git'
26
31
 
27
32
  # A.2.2. CLI SCRIPTS
28
33
 
@@ -30,6 +35,7 @@ require_relative 'cli/scaffold'
30
35
  require_relative 'cli/skeleton'
31
36
  require_relative 'cli/documentation'
32
37
  require_relative 'cli/init'
38
+ require_relative 'cli/gulp'
33
39
 
34
40
  # A.2. END ------------------------------------------------------------------------------------------------------------
35
41
 
@@ -48,12 +54,13 @@ cli = Konstruct::Cli.new()
48
54
  # B.1. GLOBAL VARIABLES -----------------------------------------------------------------------------------------------
49
55
 
50
56
  projectDir = Dir.pwd
57
+ #projectDir = "/Users/traaidmark/Sites/traaidmark/projects/konstruct/testground/4--www" # FOR TESTING ONLY
51
58
 
52
59
  # B.1. END ------------------------------------------------------------------------------------------------------------
53
60
 
54
61
  # B.1. PROGRAM META ---------------------------------------------------------------------------------------------------
55
62
 
56
- program :version, '0.1.0'
63
+ program :version, Konstruct::VERSION
57
64
  program :description, 'The Konstruct CLI provides scaffolding and other tools to help you get up and running quicker, and work faster.'
58
65
 
59
66
  # B.1. END ------------------------------------------------------------------------------------------------------------
@@ -81,7 +88,28 @@ default_command :init
81
88
 
82
89
  # B.2. END ------------------------------------------------------------------------------------------------------------
83
90
 
84
- # B.3. COMMAND: SKELETON ----------------------------------------------------------------------------------------------
91
+ # B.3. COMMAND: SCAFFOLD -----------------------------------------------------------------------------------------
92
+
93
+ # -- DESCRIPTION: Launches Konstruct documentation in a browser
94
+
95
+ # -- USAGE: $ konstruct documentation
96
+
97
+ command :scaffold do |c|
98
+
99
+ c.syntax = 'konstruct scaffold'
100
+ c.summary = 'Launches Konstruct documentation in a browser'
101
+ c.description = 'Launches Konstruct documentation in a browser'
102
+ c.action do |args, options|
103
+
104
+ cli.scaffold(projectDir)
105
+
106
+ end
107
+
108
+ end
109
+
110
+ # B.3. END ------------------------------------------------------------------------------------------------------------
111
+
112
+ # B.4. COMMAND: SKELETON ----------------------------------------------------------------------------------------------
85
113
 
86
114
  # -- DESCRIPTION: Scaffolds a skeleton project folder structure for you.
87
115
 
@@ -101,9 +129,30 @@ command :skeleton do |c|
101
129
 
102
130
  end
103
131
 
104
- # B.3. END ------------------------------------------------------------------------------------------------------------
132
+ # B.4. END ------------------------------------------------------------------------------------------------------------
105
133
 
106
- # B.4. COMMAND: DOCUMENTATION -----------------------------------------------------------------------------------------
134
+ # B.5. COMMAND: GULP --------------------------------------------------------------------------------------------------
135
+
136
+ # -- DESCRIPTION: Launches Konstruct documentation in a browser
137
+
138
+ # -- USAGE: $ konstruct documentation
139
+
140
+ command :gulp do |c|
141
+
142
+ c.syntax = 'konstruct gulp'
143
+ c.summary = 'Launches Konstruct Gulp tasks while you develop.'
144
+ c.description = 'Launches Konstruct Gulp tasks while you develop.'
145
+ c.action do |args, options|
146
+
147
+ cli.gulp(projectDir)
148
+
149
+ end
150
+
151
+ end
152
+
153
+ # B.5. END ------------------------------------------------------------------------------------------------------------
154
+
155
+ # B.5. COMMAND: DOCUMENTATION -----------------------------------------------------------------------------------------
107
156
 
108
157
  # -- DESCRIPTION: Launches Konstruct documentation in a browser
109
158
 
@@ -122,7 +171,7 @@ command :documentation do |c|
122
171
 
123
172
  end
124
173
 
125
- # B.4. END ------------------------------------------------------------------------------------------------------------
174
+ # B.5. END ------------------------------------------------------------------------------------------------------------
126
175
 
127
176
  # B. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
128
177
 
@@ -0,0 +1,22 @@
1
+ module Konstruct
2
+
3
+ BOILERPLATE = {
4
+
5
+ "Default" => "https://github.com/konstruct/boilerplate.www",
6
+ "Jekyll" => "https://github.com/konstruct/boilerplate.jekyll",
7
+ "Angular" => "https://github.com/konstruct/boilerplate.angular"
8
+
9
+ }
10
+
11
+ FRAMEWORK = {
12
+
13
+ "gulp" => "https://github.com/konstruct/konstruct.gulp.git",
14
+ "scss" => "https://github.com/konstruct/konstruct.scss.git",
15
+ "site" => "https://github.com/konstruct/konstruct.site.git",
16
+ "glue" => "https://github.com/konstruct/konstruct.glue.git",
17
+ "angular" => "https://github.com/konstruct/konstruct.angular.git",
18
+ "js" => "https://github.com/konstruct/konstruct.js.git"
19
+
20
+ }
21
+
22
+ end
@@ -1,3 +1,3 @@
1
1
  module Konstruct
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,82 @@
1
+ # KONSTRUCT CLI [ UTILITY MODULE ] ====================================================================================
2
+
3
+ # ====== INDEX =======================================================================================================
4
+ # ==
5
+ # == A. LOAD DEPENDENCIES
6
+ # == B. GIT MODULES
7
+ # ==
8
+ # ====== INDEX =======================================================================================================
9
+
10
+ # A. UTILITIES ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11
+
12
+ module Util
13
+
14
+ # A.1. GIT COMMANDS -----------------------------------------------------------------------------------------------
15
+
16
+ class Git
17
+
18
+ # A.1.1. GIT INSTALL
19
+
20
+ def install(path, repository, target, dest)
21
+
22
+ `git clone #{repository} "#{path}/.tmp"`
23
+
24
+ FileUtils.copy_entry("#{path}/.tmp/#{target}", "#{path}/#{dest}")
25
+
26
+ FileUtils.rm_rf(Dir.glob("#{path}/.tmp"))
27
+
28
+ end
29
+
30
+ # A.1.1. END
31
+
32
+ # A.1.2. GIT INIT
33
+
34
+ def init(path)
35
+
36
+ FileUtils.cd(path) do
37
+
38
+ `git init`
39
+
40
+ end
41
+
42
+ end
43
+
44
+ # A.1.2. END
45
+
46
+ # A.1.3. GIT REMOTE
47
+
48
+ def remote(path, remote)
49
+
50
+ FileUtils.cd(path) do
51
+
52
+ `git remote add origin #{remote}`
53
+
54
+ end
55
+
56
+ end
57
+
58
+ # A.1.3. END
59
+
60
+ # A.1.4. GIT SCAFFOLD
61
+
62
+ def add(path)
63
+
64
+ FileUtils.cd(path) do
65
+
66
+ `git add *`
67
+
68
+ end
69
+
70
+ end
71
+
72
+ # A.1.4. END
73
+
74
+ end
75
+
76
+ # A.1. END --------------------------------------------------------------------------------------------------------
77
+
78
+ end
79
+
80
+ # A. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
81
+
82
+ # END OF FILE =========================================================================================================
@@ -1,42 +1,44 @@
1
- # KONSTRUCT CLI [ COMMAND MODULE ] ====================================================================================
1
+ # KONSTRUCT CLI [ UTILITY MODULE ] ====================================================================================
2
2
 
3
3
  # ====== INDEX =======================================================================================================
4
4
  # ==
5
- # == A. LOAD DEPENDENCIES
6
- # == A. COMMAND MODULES
5
+ # == A. GULP MODULES
7
6
  # ==
8
7
  # ====== INDEX =======================================================================================================
9
8
 
10
- # A. LOAD DEPENDENCIES ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9
+ # A. GULP MODULES +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11
10
 
12
- require 'minigit'
13
-
14
- # A. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
15
-
16
- # B. COMMANDER SCRIPT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17
-
18
- module Command
11
+ module Util
19
12
 
20
- # B.1. GIT COMMANDS -----------------------------------------------------------------------------------------------
13
+ # A.1. GIT COMMANDS -----------------------------------------------------------------------------------------------
21
14
 
22
- class Git
15
+ class Gulp
23
16
 
24
- # B.1.1. GIT CLONE
17
+ # A.1.1. GULP BUILD
25
18
 
26
- def clone(repository, path)
19
+ def default(path)
27
20
 
28
- MiniGit.git :clone, repository, path
21
+ gulp = Util::Gulp.new()
22
+ msg = Util::Message.new()
23
+
24
+ gulp_path = File.expand_path('~/.konstruct/gulp')
25
+
26
+ FileUtils.cd(gulp_path) do
27
+
28
+ exec "gulp --path #{path}"
29
+
30
+ end
29
31
 
30
32
  end
31
33
 
32
- # B.1.1. END
34
+ # A.1.1. END
33
35
 
34
36
  end
35
37
 
36
- # B.1. END --------------------------------------------------------------------------------------------------------
38
+ # A.1. END --------------------------------------------------------------------------------------------------------
37
39
 
38
40
  end
39
41
 
40
- # B. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
42
+ # A. END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
41
43
 
42
44
  # END OF FILE =========================================================================================================
@@ -82,6 +82,20 @@ module Util
82
82
 
83
83
  # B.1.4. END
84
84
 
85
+ # B.1.5. PARAGRAPH
86
+
87
+ def paragraph(msg)
88
+
89
+ puts ""
90
+
91
+ puts Paint[msg, "999999"]
92
+
93
+ puts ""
94
+
95
+ end
96
+
97
+ # B.1.5. END
98
+
85
99
  end
86
100
 
87
101
  # B.1. END --------------------------------------------------------------------------------------------------------
@@ -134,9 +148,7 @@ module Util
134
148
 
135
149
  if choice == :yes
136
150
 
137
- toClear = "#{path}/*"
138
-
139
- FileUtils.rm_rf(Dir.glob(toClear))
151
+ `rm -rf *`
140
152
 
141
153
  msg.success("Working directory cleared: #{path}")
142
154
 
@@ -153,6 +165,35 @@ module Util
153
165
 
154
166
  # B.2.2. END
155
167
 
168
+ # B.2.3. CLEAN DIRECTORY
169
+
170
+ def delete_files(path)
171
+
172
+ msg = Util::Message.new()
173
+
174
+ FileUtils.rm_rf(path)
175
+
176
+ end
177
+
178
+ # B.2.3. END
179
+
180
+ # B.2.3. CLEAN DIRECTORY
181
+
182
+ def make_dir(dir)
183
+
184
+ msg = Util::Message.new()
185
+
186
+ unless Dir[dir].length > 0
187
+
188
+ FileUtils.mkdir(dir)
189
+ msg.success("Created #{dir}")
190
+
191
+ end
192
+
193
+ end
194
+
195
+ # B.2.3. END
196
+
156
197
  end
157
198
 
158
199
  # B.2. END --------------------------------------------------------------------------------------------------------
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: konstruct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Kirsten
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-15 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: json
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -117,12 +131,15 @@ files:
117
131
  - bin/setup
118
132
  - konstruct.gemspec
119
133
  - lib/cli/documentation.rb
134
+ - lib/cli/gulp.rb
120
135
  - lib/cli/init.rb
121
136
  - lib/cli/scaffold.rb
122
137
  - lib/cli/skeleton.rb
123
138
  - lib/konstruct.rb
139
+ - lib/konstruct/config.rb
124
140
  - lib/konstruct/version.rb
125
- - lib/utilities/commands.rb
141
+ - lib/utilities/git.rb
142
+ - lib/utilities/gulp.rb
126
143
  - lib/utilities/utils.rb
127
144
  homepage: https://github.com/konstruct/konstruct.cli
128
145
  licenses:
@@ -144,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
161
  version: '0'
145
162
  requirements: []
146
163
  rubyforge_project:
147
- rubygems_version: 2.4.6
164
+ rubygems_version: 2.5.1
148
165
  signing_key:
149
166
  specification_version: 4
150
167
  summary: A set of tools to help you work with the Konstruct Framework.