yjncopycat 0.1.3 → 0.2.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/yjncopycat +7 -1
- data/lib/yjncopycat/commandparser.rb +11 -1
- data/lib/yjncopycat/specfileparser.rb +55 -0
- data/lib/yjncopycat/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39fad83311c20c7aa00c6bf4cdc08428d92967b64e82cad9b06a345765ab8a2f
|
4
|
+
data.tar.gz: e9c1832c894efc0e5b63e31356ee62ed64089c54657260cf17bc26118f994f85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70e9d8dbcb98e8b6adf5bf8bc1bb903d41c598a9d9f23a2b9ba4aa6cc65288734eca46cfa33524b067ab5b73740d50c962321277e9f3627749515ee51591a37d
|
7
|
+
data.tar.gz: 7d4f77a50a7aecb62f85d4abfc55e1171828602fe6f48df59cd575d2e68d88374e7053ab84d03fab8c0bd2a2431a479ef4612ec80d48aa364d68a08795d54cdb
|
data/bin/yjncopycat
CHANGED
@@ -4,12 +4,18 @@ require 'colored2'
|
|
4
4
|
require 'yjncopycat/commandparser.rb'
|
5
5
|
require 'yjncopycat/xcodeprojectcloner.rb'
|
6
6
|
require 'yjncopycat/version.rb'
|
7
|
+
require 'yjncopycat/specfileparser.rb'
|
7
8
|
|
8
9
|
module YJNCopycat
|
9
10
|
USAGE = 'USAGE: $ yjncopycat --url <iOS_project_github_url> --name <new_project_name>'.yellow
|
11
|
+
SPEC_FILE_NAME = 'Copyfile'
|
10
12
|
end
|
11
13
|
|
12
|
-
|
14
|
+
if ARGV.length == 1 && ARGV.first == 'run'
|
15
|
+
options = YJNCopycat::SpecFileParser.run
|
16
|
+
else
|
17
|
+
options = YJNCopycat::CommandParser.parse(ARGV)
|
18
|
+
end
|
13
19
|
puts ''
|
14
20
|
YJNCopycat::XcodeProjectCloner.new(options).createClone
|
15
21
|
puts ''
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require 'colored2'
|
3
3
|
require 'uri'
|
4
|
+
require 'pp'
|
4
5
|
|
5
6
|
module YJNCopycat
|
6
7
|
class CommandParser
|
@@ -22,12 +23,16 @@ module YJNCopycat
|
|
22
23
|
end
|
23
24
|
parser.on_tail('-v', '--version', 'Shows version') do
|
24
25
|
puts YJNCopycat::VERSION
|
25
|
-
exit
|
26
|
+
exit 0
|
26
27
|
end
|
27
28
|
parser.on_tail('-h', '--help', 'Shows simple usage instructions.') do
|
28
29
|
puts YJNCopycat::USAGE
|
29
30
|
exit 0
|
30
31
|
end
|
32
|
+
parser.on_tail('copy', '--copy', "Start copying project based on a spec file.") do
|
33
|
+
options = YJNCopycat::SpecFileParser.run
|
34
|
+
pp = options
|
35
|
+
end
|
31
36
|
end
|
32
37
|
|
33
38
|
begin
|
@@ -59,6 +64,11 @@ module YJNCopycat
|
|
59
64
|
exit 1
|
60
65
|
end
|
61
66
|
|
67
|
+
unless options[:name] =~ /\w/
|
68
|
+
puts "ERROR: Make sure there's no whitespace in --name parameter.".red
|
69
|
+
exit 0
|
70
|
+
end
|
71
|
+
|
62
72
|
options
|
63
73
|
end
|
64
74
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'colored2'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module YJNCopycat
|
5
|
+
class SpecFileParser
|
6
|
+
PARSER_ERROR_MESSAGE = "Invalid spec file format."
|
7
|
+
|
8
|
+
def self.run
|
9
|
+
puts "Reading from #{YJNCopycat::SPEC_FILE_NAME} in current directory...".yellow
|
10
|
+
unless File.file?("./#{YJNCopycat::SPEC_FILE_NAME}")
|
11
|
+
puts "ERROR: Unable to locate #{YJNCopycat::SPEC_FILE_NAME}!".red
|
12
|
+
exit 0
|
13
|
+
end
|
14
|
+
contents = File.open("./#{YJNCopycat::SPEC_FILE_NAME}").read
|
15
|
+
lines = contents.split("\n")
|
16
|
+
|
17
|
+
for line in lines
|
18
|
+
if line =~ /name (.*)/
|
19
|
+
name = line.gsub(' ', '').sub('name', '')
|
20
|
+
end
|
21
|
+
|
22
|
+
if line =~ /url (.*)/
|
23
|
+
url = line.gsub(' ', '').sub('url', '')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
if name.nil?
|
28
|
+
puts "#{PARSER_ERROR_MESSAGE} Missing 'name' parameter.".red
|
29
|
+
exit 0
|
30
|
+
end
|
31
|
+
|
32
|
+
if name.length < 3
|
33
|
+
puts "#{PARSER_ERROR_MESSAGE} Make sure 'name' is at least 3 characters.".red
|
34
|
+
exit 0
|
35
|
+
end
|
36
|
+
|
37
|
+
unless name =~ /\w/
|
38
|
+
puts "#{PARSER_ERROR_MESSAGE} Make sure there's no whitespace in 'name' parameter.".red
|
39
|
+
exit 0
|
40
|
+
end
|
41
|
+
|
42
|
+
if url.nil?
|
43
|
+
puts "#{PARSER_ERROR_MESSAGE} Missing 'url' parameter.".red
|
44
|
+
exit 0
|
45
|
+
end
|
46
|
+
|
47
|
+
unless url =~ URI::regexp
|
48
|
+
puts "#{PARSER_ERROR_MESSAGE} Incorrect value for 'url' parameter. \nMake sure it is a valid git repo for your iOS project.".red
|
49
|
+
exit 0
|
50
|
+
end
|
51
|
+
|
52
|
+
{ :name => name, :url => url}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/yjncopycat/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yjncopycat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Feb Dela Cruz
|
@@ -56,6 +56,7 @@ files:
|
|
56
56
|
- bin/setup
|
57
57
|
- bin/yjncopycat
|
58
58
|
- lib/yjncopycat/commandparser.rb
|
59
|
+
- lib/yjncopycat/specfileparser.rb
|
59
60
|
- lib/yjncopycat/version.rb
|
60
61
|
- lib/yjncopycat/xcodeprojectcloner.rb
|
61
62
|
- yjncopycat.gemspec
|