sfb_scripts 1.2.0 → 1.2.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b7e35b7d495028d01f0666488b16b4e7394245a
|
4
|
+
data.tar.gz: 808d270802a6e27573e3109772d5b89748734bd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcfdec107a2c4040d91a7edfa9a882a99cd0116364eed5ff834a87ca1176ffc4b2e243bd40a0ba0ce14afc559c0a1f6dc790fc2f641f33628439620ef7dae209
|
7
|
+
data.tar.gz: f060b3d98d0b96486daf9accaa4844b933f2aae942c078271e44404ed6855c27dbcfc93c7630a6f6eae335acebb96bfd4fbf40724715692d87303f3ebe4d4324
|
data/bin/app_up
CHANGED
@@ -5,6 +5,31 @@ require_relative '../lib/sfb_scripts/upper'
|
|
5
5
|
|
6
6
|
class CLI < Thor
|
7
7
|
|
8
|
+
def initialize(args, options, config)
|
9
|
+
# reset --hard hack!
|
10
|
+
#
|
11
|
+
# if the -g option is passed,
|
12
|
+
# we concatenate the rest of the
|
13
|
+
# command into a single string.
|
14
|
+
#
|
15
|
+
# This prevents Thor from interpreting
|
16
|
+
# app_up -g reset --hard
|
17
|
+
# as having the flags -g and --hard
|
18
|
+
#
|
19
|
+
# (we want to ignore the --hard
|
20
|
+
# and just pass it on to git)
|
21
|
+
|
22
|
+
action_flag_index = options.find_index('-g') || options.find_index('--git-action') || options.find_index('--action')
|
23
|
+
|
24
|
+
if action_flag_index
|
25
|
+
new_options = options[0..action_flag_index]
|
26
|
+
new_options << options[action_flag_index+1 .. -1].join(' ')
|
27
|
+
options = new_options
|
28
|
+
end
|
29
|
+
|
30
|
+
super(args, options, config)
|
31
|
+
end
|
32
|
+
|
8
33
|
#
|
9
34
|
# REBASE
|
10
35
|
#
|
@@ -15,10 +40,13 @@ class CLI < Thor
|
|
15
40
|
option :ignore, type: :array, desc: "Directories matching this pattern will be ignored. Example: 'app_up --ignore engines' will not bundle or migrate in a directory matching the word engines. You can specify multiple patterns: 'app_up --ignore dir1 dir2"
|
16
41
|
option :on_branch, desc: "Rebase the current branch onto it's upstream counterpart. [Example: While on branch (feature_branch), using the --on-branch flag will yield the git command: 'git pull --rebase origin feature_branch'", default: 'master', default: false
|
17
42
|
option :git_action, aliases: ['--action', '-g'], type: :array, desc: "Specify what command to pass to git [Example: app_up --git-action 'pull --rebase origin branch_name']. Defaults to 'pull --rebase origin master'."
|
43
|
+
option :finish_rebase, aliases: ['--finish-merge'], type: :boolean, desc: "Recovers from rebase or merge conflicts"
|
18
44
|
|
19
45
|
def up
|
20
46
|
if options[:no_git]
|
21
47
|
Upper.no_git(options)
|
48
|
+
elsif options[:finish_rebase]
|
49
|
+
Upper.finish_rebase(options)
|
22
50
|
elsif options[:on_branch]
|
23
51
|
Upper.rebase_on_branch!(options)
|
24
52
|
elsif options[:git_action]
|
@@ -1,14 +1,13 @@
|
|
1
1
|
class ActiveRepo < Repo
|
2
2
|
|
3
3
|
def alter!(git_command)
|
4
|
-
shell.notify "\
|
4
|
+
shell.notify "\nUpdating repo state:"
|
5
5
|
up do
|
6
6
|
# will raise an error with merge conflicts
|
7
7
|
begin
|
8
8
|
shell.run "git #{git_command}"
|
9
9
|
rescue ShellRunner::CommandFailureError
|
10
10
|
puts "Unable to rebase. Maybe you need to stash local changes, or there are rebase conflicts"
|
11
|
-
puts `git status`
|
12
11
|
exit
|
13
12
|
end
|
14
13
|
end
|
@@ -42,6 +41,11 @@ class ActiveRepo < Repo
|
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
44
|
+
def compare_with_reflog
|
45
|
+
old_sha = shell.run "git rev-parse HEAD@{2}"
|
46
|
+
set_files_changed(old_sha)
|
47
|
+
end
|
48
|
+
|
45
49
|
def fetch_origin
|
46
50
|
shell.run 'git fetch origin'
|
47
51
|
end
|
@@ -31,7 +31,7 @@ class Repo
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def grep(regex, file_pattern: '*')
|
34
|
-
results = shell.run("git grep '#{regex}' -- '#{file_pattern}'").split("\n")
|
34
|
+
results = shell.run("git grep --untracked '#{regex}' -- '#{file_pattern}'").split("\n")
|
35
35
|
results.map do |result|
|
36
36
|
interpret_grep_result(result)
|
37
37
|
end
|
@@ -8,7 +8,10 @@ class TestRunner
|
|
8
8
|
|
9
9
|
# this could use some love
|
10
10
|
def run(tests)
|
11
|
-
if tests.
|
11
|
+
if tests.empty?
|
12
|
+
shell.warn "Unable to identify any tests."
|
13
|
+
exit
|
14
|
+
elsif tests.is_one_test_method?
|
12
15
|
run_method(tests.first)
|
13
16
|
elsif tests.in_one_file? && tests.all? {|t| t.is_method? }
|
14
17
|
shell.notify "Multiple matches in same file. Running that file."
|
data/lib/sfb_scripts/upper.rb
CHANGED
@@ -35,13 +35,18 @@ class Upper
|
|
35
35
|
new(env).no_git
|
36
36
|
end
|
37
37
|
|
38
|
+
def self.finish_rebase(options)
|
39
|
+
env = NeedsManager.configure(:up, needs, with_defaults(options).merge(repo_type: :active))
|
40
|
+
new(env).finish_rebase
|
41
|
+
end
|
42
|
+
|
38
43
|
def self.install_hooks(options)
|
39
44
|
env = NeedsManager.configure(:up, needs, with_defaults(options).merge(repo_type: :lazy))
|
40
45
|
new(env).install_hooks
|
41
46
|
end
|
42
47
|
|
43
48
|
def self.pre_push_hook(git_command, options)
|
44
|
-
env = NeedsManager.configure(:up, needs, with_defaults(options).merge(repo_type: :
|
49
|
+
env = NeedsManager.configure(:up, needs, with_defaults(options).merge(repo_type: :active))
|
45
50
|
new(env).pre_push_hook(git_command)
|
46
51
|
end
|
47
52
|
|
@@ -72,6 +77,12 @@ class Upper
|
|
72
77
|
migrator.migrate_where_necessary
|
73
78
|
end
|
74
79
|
|
80
|
+
def finish_rebase
|
81
|
+
repo.compare_with_reflog
|
82
|
+
bundler.bundle_where_necessary
|
83
|
+
migrator.migrate_where_necessary
|
84
|
+
end
|
85
|
+
|
75
86
|
def install_hooks
|
76
87
|
HookManager.install!(env)
|
77
88
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sfb_scripts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Kinnecom
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|