sfb_scripts 1.2.0 → 1.2.1
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:
|
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
|