auto-gemsets 0.1.6 → 0.1.7
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.
- data/Changelog.md +5 -0
- data/VERSION +1 -1
- data/auto-gemsets.gemspec +2 -2
- data/auto_gemsets.sh +97 -47
- data/lib/auto-gemsets/application.rb +8 -6
- metadata +3 -3
data/Changelog.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
#Changelog
|
2
2
|
|
3
|
+
## Version 0.1.7
|
4
|
+
- Fixed a bug where calling gemset with -v would error
|
5
|
+
- Set appropriate gem bin directories in PATH
|
6
|
+
- Namespace functions to avoid collisions
|
7
|
+
|
3
8
|
## Version 0.1.6
|
4
9
|
- Fixed a bug where the gemset bin path was being duplicated in $PATH
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
data/auto-gemsets.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "auto-gemsets"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dayton Nolan"]
|
12
|
-
s.date = "2012-12-
|
12
|
+
s.date = "2012-12-22"
|
13
13
|
s.description = "auto-gemsets creates a gemset named after the parent directory of every Gemfile you encounter. This let's you automatically scope your gems without using shims or creating gemsets. "
|
14
14
|
s.email = "dnolan@gmail.com"
|
15
15
|
s.executables = ["gemset"]
|
data/auto_gemsets.sh
CHANGED
@@ -1,67 +1,123 @@
|
|
1
|
-
|
2
|
-
if [
|
3
|
-
|
1
|
+
ag_set_default_gemset() {
|
2
|
+
if [ -n "${DEFAULT_GEMSET}" ]; then
|
3
|
+
if [ ! "$GEM_PATH" == "${DEFAULT_GEMSET}" ]; then
|
4
|
+
DEFAULT=$( basename $DEFAULT_GEMSET )
|
5
|
+
fi
|
6
|
+
|
7
|
+
if [ -n "$GEMSET" ] && [ ! "$GEMSET" == "$DEFAULT" ]; then
|
8
|
+
ag_remove_path "${GEMSET_ROOT}/${GEMSET}/bin"
|
9
|
+
fi
|
10
|
+
|
11
|
+
DEFAULT_BIN_PATH="${DEFAULT_GEMSET}/bin"
|
12
|
+
|
13
|
+
export GEMSET="${DEFAULT}"
|
14
|
+
export GEM_HOME="$DEFAULT_GEMSET"
|
15
|
+
export GEMFILE="$DEFAULT_GEMSET"
|
16
|
+
export GEM_ROOT="$GEM_HOME"
|
17
|
+
export GEM_PATH="$GEM_HOME"
|
18
|
+
|
19
|
+
ag_add_path "$DEFAULT_BIN_PATH"
|
20
|
+
ag_using_gemset_via "*default"
|
21
|
+
fi
|
22
|
+
}
|
23
|
+
|
24
|
+
ag_using_gemset_via() {
|
25
|
+
echo "Now using $GEMSET gemset via $1"
|
26
|
+
}
|
27
|
+
|
28
|
+
ag_remove_path() {
|
29
|
+
NEW_PATH=""
|
30
|
+
IFS=':' read -a PATHS <<< "$PATH"
|
31
|
+
for p in "${PATHS[@]}"
|
32
|
+
do
|
33
|
+
if [ ! "$p" == "$1" ]; then
|
34
|
+
if [ -z "$NEW_PATH" ]; then
|
35
|
+
NEW_PATH="$p"
|
36
|
+
else
|
37
|
+
NEW_PATH="$NEW_PATH:$p"
|
38
|
+
fi
|
39
|
+
fi
|
40
|
+
done
|
41
|
+
export PATH="$NEW_PATH"
|
42
|
+
}
|
43
|
+
|
44
|
+
ag_add_path () {
|
45
|
+
if ! echo $PATH | egrep -q "(^|:)$1($|:)" ; then
|
46
|
+
if [ "$2" = "after" ] ; then
|
47
|
+
PATH=$PATH:$1
|
48
|
+
else
|
49
|
+
PATH=$1:$PATH
|
50
|
+
fi
|
51
|
+
|
52
|
+
export PATH
|
4
53
|
fi
|
5
54
|
}
|
6
55
|
|
7
|
-
|
56
|
+
auto_gemsets() {
|
8
57
|
local dir="$PWD"
|
9
|
-
local version_file
|
10
58
|
|
11
59
|
until [[ -z "$dir" ]]; do
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
elif [[ ! -f "$gemfile" ]]; then
|
27
|
-
set_default_gemset
|
60
|
+
GEMFILE="$dir/Gemfile"
|
61
|
+
|
62
|
+
if [ -f "$GEMFILE" ]; then
|
63
|
+
ag_get_parent_dirname
|
64
|
+
if [ "$GEMSET" == "$PARENT_DIR" ]; then
|
65
|
+
break
|
66
|
+
else
|
67
|
+
ag_set_gemset "$PARENT_DIR"
|
68
|
+
break
|
69
|
+
fi
|
70
|
+
else
|
71
|
+
if [ ! "$GEMSET" == "$DEFAULT" ]; then
|
72
|
+
ag_set_default_gemset
|
73
|
+
fi
|
28
74
|
fi
|
29
75
|
|
30
76
|
dir="${dir%/*}"
|
31
77
|
done
|
32
78
|
}
|
33
79
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
export GEM_ROOT="$DEFAULT_GEMSET"
|
39
|
-
export GEM_PATH="$DEFAULT_GEMSET"
|
40
|
-
export GEMSET="daytonn"
|
41
|
-
export GEMFILE="*default"
|
80
|
+
ag_get_parent_dirname() {
|
81
|
+
IFS='/' read -a gemfile_path_parts <<< "$GEMFILE"
|
82
|
+
PARENT_DIR="${gemfile_path_parts[${#gemfile_path_parts[@]}-2]}"
|
83
|
+
}
|
42
84
|
|
43
|
-
|
85
|
+
ag_set_gemset() {
|
86
|
+
NEW_GEMSET="$1"
|
87
|
+
NEW_GEMSET_PATH="${GEMSET_ROOT}/${1}"
|
88
|
+
NEW_GEMSET_BIN_PATH="${NEW_GEMSET_PATH}/bin"
|
89
|
+
ag_remove_path "$GEMSET_BIN_PATH"
|
90
|
+
ag_create_gemset_if_missing "$NEW_GEMSET"
|
91
|
+
export GEMSET="$NEW_GEMSET"
|
92
|
+
export GEM_HOME="$NEW_GEMSET_PATH"
|
93
|
+
export GEM_ROOT="$NEW_GEMSET_PATH"
|
94
|
+
export GEM_PATH="$NEW_GEMSET_PATH:$DEFAULT_GEMSET"
|
44
95
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
fi
|
96
|
+
ag_add_path "$DEFAULT_BIN_PATH"
|
97
|
+
ag_add_path "$NEW_GEMSET_BIN_PATH"
|
98
|
+
|
99
|
+
ag_using_gemset_via "$GEMFILE"
|
50
100
|
}
|
51
101
|
|
52
|
-
|
53
|
-
|
102
|
+
ag_create_gemset_if_missing() {
|
103
|
+
if [ ! -d "${GEMSET_ROOT}/${1}" ]; then
|
104
|
+
mkdir -p "${GEMSET_ROOT}/${1}" && echo "${1} created. run gem install bundler"
|
105
|
+
fi
|
54
106
|
}
|
55
107
|
|
108
|
+
# Create a GEMSET_ROOT if none is set
|
56
109
|
if [ ! -n "$GEMSET_ROOT" ]; then
|
57
110
|
export GEMSET_ROOT="${HOME}/.gemsets"
|
58
111
|
fi
|
59
112
|
|
113
|
+
# If ZSH add precommand
|
60
114
|
if [[ -n "$ZSH_VERSION" ]]; then
|
61
115
|
precmd_functions+=("auto_gemsets")
|
62
116
|
else
|
63
|
-
|
64
|
-
|
117
|
+
# If there's already a prompt command,
|
118
|
+
if [ -n "$PROMPT_COMMAND" ]; then
|
119
|
+
# check if it's already in the PROMPT
|
120
|
+
if [ ! "$PROMPT_COMMAND" == *auto_gemsets* ]; then
|
65
121
|
PROMPT_COMMAND="$PROMPT_COMMAND; auto_gemsets"
|
66
122
|
fi
|
67
123
|
else
|
@@ -69,11 +125,5 @@ else
|
|
69
125
|
fi
|
70
126
|
fi
|
71
127
|
|
72
|
-
|
73
|
-
|
74
|
-
GEMSET_PRELOAD="true"
|
75
|
-
set_default_gemset
|
76
|
-
unset GEMSET_PRELOAD
|
77
|
-
}
|
78
|
-
|
79
|
-
init
|
128
|
+
# Set default when sourced
|
129
|
+
ag_set_default_gemset
|
@@ -36,7 +36,13 @@ module AutoGemsets
|
|
36
36
|
if @command
|
37
37
|
self.send @command, *@args
|
38
38
|
else
|
39
|
-
options[:help]
|
39
|
+
if options[:help]
|
40
|
+
help
|
41
|
+
elsif options[:version]
|
42
|
+
version
|
43
|
+
else
|
44
|
+
self.send(:current)
|
45
|
+
end
|
40
46
|
end
|
41
47
|
end
|
42
48
|
|
@@ -139,7 +145,6 @@ module AutoGemsets
|
|
139
145
|
OptionParser.new do |opts|
|
140
146
|
opts.on("-v", "--version", "Version info") do
|
141
147
|
@options[:version] = true
|
142
|
-
version
|
143
148
|
end
|
144
149
|
|
145
150
|
opts.on('-h', '--help', 'Display help') do
|
@@ -155,10 +160,7 @@ module AutoGemsets
|
|
155
160
|
end
|
156
161
|
|
157
162
|
def version
|
158
|
-
|
159
|
-
message = "auto-gemsets #{version}\n"
|
160
|
-
message << "Copyright (c) #{Time.now.year} Dayton Nolan\n"
|
161
|
-
@output.puts message
|
163
|
+
@output.puts "auto-gemsets #{AutoGemsets::VERSION}"
|
162
164
|
end
|
163
165
|
|
164
166
|
def gemset_path(gemset)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auto-gemsets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -149,7 +149,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
149
|
version: '0'
|
150
150
|
segments:
|
151
151
|
- 0
|
152
|
-
hash:
|
152
|
+
hash: -185994835984614763
|
153
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
154
|
none: false
|
155
155
|
requirements:
|