ora-cli 0.1.3 → 0.1.4
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/README.md +6 -4
- data/lib/ora/cli/bash.rb +23 -6
- data/lib/ora/cli/stdin.rb +9 -2
- data/lib/ora/cli/task.rb +16 -2
- data/lib/ora/cli/tasks/new_feature_branch.rb +2 -0
- data/lib/ora/cli/tasks/push_feature_branch.rb +2 -0
- data/lib/ora/cli/tasks/push_to_master.rb +2 -0
- data/lib/ora/cli/tasks/push_to_staging.rb +2 -0
- data/lib/ora/cli/tasks/push_to_uat.rb +2 -0
- data/lib/ora/cli/tasks/switch_branch.rb +41 -0
- data/lib/ora/cli/version.rb +1 -1
- data/lib/ora/cli.rb +3 -11
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6baf3c45bb5e052285bc2c476902b4a329f533f
|
4
|
+
data.tar.gz: dee459f8cf75961b8a9a4828109a18fe342e1dba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf4e37a5f7c2ac3b45a3fc75b390f082abfed1a01c596c9abd37ff57c375eedc8a88816c4a9a95809e106bc249b07c82c865276f9f1540c2d30ed2643df1f5cc
|
7
|
+
data.tar.gz: d4c640b7fdc6418310b2e3d9d10e01ef90044596e8b8cc85ae33815c83e58e7b37df505d0c2d20ab57acb1326123e50c2bc9ccb1eae5a325ac84babfd5bfb784
|
data/README.md
CHANGED
@@ -16,15 +16,17 @@ A command line tool to automate development workflow in ORA
|
|
16
16
|
## Tasks
|
17
17
|
|
18
18
|
`new_feature_branch`: Help to create a new branch from up-to-date develop branch
|
19
|
-
|
19
|
+
|
20
20
|
`push_feature_branch`: Help to push your feature branch to remote ready for pull request
|
21
|
-
|
21
|
+
|
22
22
|
`push_to_staging`: Help to push your feature branch to staging
|
23
|
-
|
23
|
+
|
24
24
|
`push_to_uat`: Help to push your feature branch to uat
|
25
|
-
|
25
|
+
|
26
26
|
`push_to_master`: Help to push your feature branch to develop and master branches with a version tag
|
27
27
|
|
28
|
+
`switch_branch`: Help to switch branch without thinking about dirty files`
|
29
|
+
|
28
30
|
## Contributing
|
29
31
|
|
30
32
|
Bug reports and pull requests are welcome on GitHub at https://github.com/ducktyper/ora-cli.
|
data/lib/ora/cli/bash.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
|
+
require "ora/cli/print.rb"
|
2
|
+
|
1
3
|
module Ora::Cli
|
2
4
|
class Bash
|
3
5
|
def initialize(target, from: nil, print: Print.new)
|
4
|
-
@target
|
5
|
-
@from
|
6
|
-
@print
|
6
|
+
@target = target
|
7
|
+
@from = from
|
8
|
+
@print = print
|
9
|
+
@success = true
|
7
10
|
end
|
8
11
|
|
9
12
|
def silent command
|
@@ -11,10 +14,12 @@ module Ora::Cli
|
|
11
14
|
end
|
12
15
|
|
13
16
|
def run commands
|
17
|
+
@success = true
|
14
18
|
unprocessed_commands = extract commands
|
15
19
|
|
16
20
|
outputs = []
|
17
21
|
while (command = complete unprocessed_commands.shift)
|
22
|
+
next if command.empty?
|
18
23
|
break unless call command do |output|
|
19
24
|
outputs.push output
|
20
25
|
end
|
@@ -25,6 +30,14 @@ module Ora::Cli
|
|
25
30
|
join outputs
|
26
31
|
end
|
27
32
|
|
33
|
+
def select command
|
34
|
+
`#{move}#{command} | #{selecta}`
|
35
|
+
end
|
36
|
+
|
37
|
+
def success?
|
38
|
+
@success
|
39
|
+
end
|
40
|
+
|
28
41
|
private
|
29
42
|
def move
|
30
43
|
"cd #{@from} && " if @from
|
@@ -55,7 +68,7 @@ module Ora::Cli
|
|
55
68
|
def call command
|
56
69
|
@print.green command
|
57
70
|
|
58
|
-
success =
|
71
|
+
@success =
|
59
72
|
if method? command
|
60
73
|
call_method command
|
61
74
|
else
|
@@ -63,8 +76,8 @@ module Ora::Cli
|
|
63
76
|
$?.success?
|
64
77
|
end
|
65
78
|
|
66
|
-
alert command unless success
|
67
|
-
success
|
79
|
+
alert command unless @success
|
80
|
+
@success
|
68
81
|
end
|
69
82
|
def method? command
|
70
83
|
command.start_with? ":"
|
@@ -92,5 +105,9 @@ module Ora::Cli
|
|
92
105
|
@print.red(complete unprocessed_command)
|
93
106
|
end
|
94
107
|
end
|
108
|
+
|
109
|
+
def selecta
|
110
|
+
@selecta ||= File.expand_path('../../../../bin/ora_selecta', __FILE__)
|
111
|
+
end
|
95
112
|
end
|
96
113
|
end
|
data/lib/ora/cli/stdin.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
require "ora/cli/print.rb"
|
2
|
+
|
1
3
|
module Ora::Cli
|
2
4
|
class Stdin
|
3
|
-
def initialize(
|
4
|
-
@
|
5
|
+
def initialize(bash:, print: Print.new, inputs: [])
|
6
|
+
@bash = bash
|
5
7
|
@print = print
|
8
|
+
@inputs = inputs
|
6
9
|
end
|
7
10
|
|
8
11
|
def gets(pattern = '')
|
@@ -18,5 +21,9 @@ module Ora::Cli
|
|
18
21
|
|
19
22
|
input
|
20
23
|
end
|
24
|
+
|
25
|
+
def select(command)
|
26
|
+
@inputs.shift || @bash.select(command)
|
27
|
+
end
|
21
28
|
end
|
22
29
|
end
|
data/lib/ora/cli/task.rb
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
+
require "ora/cli/bash.rb"
|
2
|
+
require "ora/cli/print.rb"
|
3
|
+
require "ora/cli/stdin.rb"
|
4
|
+
|
1
5
|
module Ora::Cli
|
2
6
|
class Task
|
3
7
|
attr_reader :branch, :stdin, :print
|
4
8
|
|
9
|
+
MAIN_BRANCHES = %w{master develop staging uat}
|
10
|
+
|
5
11
|
def initialize(from, inputs: [], print: Print.new)
|
6
12
|
@from = from
|
7
13
|
@bash = Bash.new(self, from: @from, print: print)
|
8
14
|
@branch = current_branch
|
9
|
-
@stdin = Stdin.new(
|
15
|
+
@stdin = Stdin.new(bash: @bash, print: print, inputs: inputs)
|
10
16
|
@print = print
|
11
17
|
end
|
12
18
|
|
@@ -18,13 +24,21 @@ module Ora::Cli
|
|
18
24
|
raise "Override this method in subclass"
|
19
25
|
end
|
20
26
|
|
27
|
+
def success?
|
28
|
+
@bash.success?
|
29
|
+
end
|
30
|
+
|
21
31
|
private
|
22
32
|
def current_branch
|
23
33
|
@bash.silent('git branch | grep \\*').sub("*", "").strip
|
24
34
|
end
|
25
35
|
|
36
|
+
def main_branch?
|
37
|
+
MAIN_BRANCHES.include? branch
|
38
|
+
end
|
39
|
+
|
26
40
|
def feature_branch!
|
27
|
-
if
|
41
|
+
if main_branch?
|
28
42
|
@print.red "Please checkout feature branch first!"
|
29
43
|
false
|
30
44
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'ora/cli/task'
|
2
|
+
|
3
|
+
module Ora::Cli
|
4
|
+
class SwitchBranch < Task
|
5
|
+
attr_reader :target_branch
|
6
|
+
|
7
|
+
def commands
|
8
|
+
'
|
9
|
+
:only_feature_branch_can_be_dirty!
|
10
|
+
:switch_to
|
11
|
+
git stash save -u "OraCli"
|
12
|
+
git checkout #{target_branch}
|
13
|
+
#{apply_stash}
|
14
|
+
'
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def only_feature_branch_can_be_dirty!
|
19
|
+
if main_branch? && dirty?
|
20
|
+
print.red "#{branch} branch can't be dirty!"
|
21
|
+
return false
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def switch_to
|
26
|
+
@target_branch = stdin.select("git branch | grep '^ ' | sed 's/^ //'")
|
27
|
+
end
|
28
|
+
|
29
|
+
def apply_stash
|
30
|
+
return nil if target_stash_revision.empty?
|
31
|
+
"git stash pop #{target_stash_revision}"
|
32
|
+
end
|
33
|
+
def target_stash_revision
|
34
|
+
@bash.silent("git stash list | grep '#{target_stash_name}' | sed s/:.*//").strip
|
35
|
+
end
|
36
|
+
def target_stash_name
|
37
|
+
"On #{target_branch}: OraCli"
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
data/lib/ora/cli/version.rb
CHANGED
data/lib/ora/cli.rb
CHANGED
@@ -1,19 +1,11 @@
|
|
1
|
+
require "ora/cli/version.rb"
|
2
|
+
|
1
3
|
module Ora
|
2
4
|
module Cli
|
3
5
|
def self.run task, from
|
6
|
+
require "ora/cli/tasks/#{task}"
|
4
7
|
class_name = task.split('_').map(&:capitalize).join
|
5
8
|
Object.const_get("Ora::Cli::#{class_name}").new(from).run
|
6
9
|
end
|
7
10
|
end
|
8
11
|
end
|
9
|
-
|
10
|
-
require "ora/cli/bash.rb"
|
11
|
-
require "ora/cli/print.rb"
|
12
|
-
require "ora/cli/stdin.rb"
|
13
|
-
require "ora/cli/task.rb"
|
14
|
-
require "ora/cli/version.rb"
|
15
|
-
require "ora/cli/tasks/new_feature_branch.rb"
|
16
|
-
require "ora/cli/tasks/push_feature_branch.rb"
|
17
|
-
require "ora/cli/tasks/push_to_master.rb"
|
18
|
-
require "ora/cli/tasks/push_to_staging.rb"
|
19
|
-
require "ora/cli/tasks/push_to_uat.rb"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ora-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ducksan Cho
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -79,6 +79,7 @@ files:
|
|
79
79
|
- lib/ora/cli/tasks/push_to_master.rb
|
80
80
|
- lib/ora/cli/tasks/push_to_staging.rb
|
81
81
|
- lib/ora/cli/tasks/push_to_uat.rb
|
82
|
+
- lib/ora/cli/tasks/switch_branch.rb
|
82
83
|
- lib/ora/cli/version.rb
|
83
84
|
- ora-cli.gemspec
|
84
85
|
homepage: https://orahq.com
|