setup_script_generator 0.2.1 → 0.2.2

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
  SHA256:
3
- metadata.gz: a5d703195a149c493aa00489accde35403f43b065329538f7f684704967e9919
4
- data.tar.gz: f1537ed8738aefdb030949dbebd709d819f8123d91536e69f40ff3bb0f9f1611
3
+ metadata.gz: ed17c40212f0857cadb91986f31f099511dd1cf6245db95581948ce267be3a6c
4
+ data.tar.gz: f867c2449067ceed2434b85214f038bc4b037a2fa351daf66917f7302ed408ed
5
5
  SHA512:
6
- metadata.gz: 62604ff23a577ade8e56c1dd283023625438bb48badadd8d4cbb440aff0a7fddd1378e1f910ab0fab9058a05c97a4e41d273284e60bb9c018347b7e7d5ce76a5
7
- data.tar.gz: 0a86ff442db9a9db3b74edd5b05ddfb4b9e3f7991d877cf3af5fb3da31cbbe779d945c2d98a231f63f3b9e164ead7185970126aeb5dbccaac61f23ec365502a8
6
+ metadata.gz: 5a44e7899c89b1dd04b8f1892b0593f97614d550bb34e2e6ee6b62cabca6e97b36e3013c9aec203e0c1794bf4b6679aa26279c45502b24cd7c1b68a02bd097bf
7
+ data.tar.gz: 602dedb74fb0fe247409905463325823e2b4f4bfc3d2898acf1a4d85abe7e7450844d6931eda9b19685a95d6683c176c57bdc81a6640cf0c2cc378a0d7f7e9d8
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- setup_script_generator (0.2.1)
4
+ setup_script_generator (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/bin/setup CHANGED
@@ -2,9 +2,32 @@
2
2
 
3
3
  set -euo pipefail
4
4
 
5
- something_already_printed=0
5
+ ### PROJECT SETUP ##############################################################
6
+
7
+ # Feel free to add whatever functions or variables you want to add in this
8
+ # section. You may also delete this section altogether if your project doesn't
9
+ # need a custom setup.
10
+
11
+ provision-project() {
12
+ # This function gets called automatically below.
13
+ # Feel free to remove these comments.
14
+ # If your project needs custom setup, then place that here.
15
+ true
16
+ }
17
+
18
+ ### DON'T MODIFY ANYTHING BELOW THIS LINE! #####################################
19
+
20
+ # This setup script was generated with setup_script_generator 0.2.1,
21
+ # available on RubyGems.
22
+ #
23
+ # To regenerate this section, install the gem and run:
24
+ #
25
+ # generate-setup
26
+ #
6
27
 
7
- cd "$(dirname "$(dirname "$0")")"
28
+ # --- SETUP --------------------------------------------------------------------
29
+
30
+ something_already_printed=0
8
31
 
9
32
  determine-platform() {
10
33
  local uname=$(uname)
@@ -111,7 +134,7 @@ install() {
111
134
  sudo apt-get install -y "$package"
112
135
  fi
113
136
  elif has-executable yum; then
114
- package="${yum_package:-$default_package}"
137
+ package="${rpm_package:-$default_package}"
115
138
 
116
139
  if [[ -n $package ]]; then
117
140
  sudo yum install -y "$package"
@@ -125,108 +148,40 @@ install() {
125
148
  check-for-package-manager() {
126
149
  local platform=$(determine-platform)
127
150
 
128
- if [[ $platform == "linux" ]]; then
129
- if ! has-executable apt-get; then
130
- error "You don't seem to have a package manager installed."
131
- print-wrapped "\
132
- The setup script assumes you're using Debian or a Debian-derived flavor of
133
- Linux (i.e. something with Apt). If this is not the case, then we would
134
- gladly take a PR fixing this!"
135
- exit 1
136
- fi
137
- else
138
- if ! has-executable brew; then
139
- error "You don't seem to have Homebrew installed."
140
- print-wrapped "\
141
- Follow the instructions here to do this:
142
-
143
- http://brew.sh
144
-
145
- Then re-run this script."
146
- exit 1
147
- fi
148
-
149
- # TODO: Check that OS X Command Line Tools are installed?
150
- fi
151
- }
152
-
153
- install-development-libraries() {
154
- install rpm=zlib-devel
155
- }
151
+ if [[ $platform == "linux" ]] && ! has-executable apt-get && ! has-executable yum; then
152
+ # TODO: Check if build-essential is installed on Debian?
153
+ # TODO: Check if 'Development Tools' group is installed on RedHat?
156
154
 
157
- provision-ruby() {
158
- if [[ -f .ruby-version ]]; then
159
- REQUIRED_RUBY_VERSION=$(cat .ruby-version)
160
- else
161
- error "You don't seem to have a Ruby version set in your project."
155
+ error "You don't seem to have a package manager installed."
162
156
  print-wrapped "\
163
- You'll need to create a .ruby-version file in your project before you can run
164
- this script.
165
- "
157
+ This setup script assumes you're using a flavor of Linux derived from Debian or
158
+ RedHat (i.e. something with Apt or Yum). If this is not the case, then we would
159
+ gladly take a PR fixing this!"
166
160
  exit 1
167
- fi
168
-
169
- install-ruby-development-library
170
- ensure-ruby-installed
171
- install-ruby-dependencies
172
- }
173
-
174
- install-ruby-development-library() {
175
- install apt=ruby-dev rpm=ruby-devel
176
- }
161
+ elif [[ $platform == "mac" ]] && ! has-executable brew; then
162
+ # TODO: Check that OS X Command Line Tools are installed?
177
163
 
178
- ensure-ruby-installed() {
179
- if has-executable rbenv; then
180
- if ! (rbenv versions | grep $REQUIRED_RUBY_VERSION'\>' &>/dev/null); then
181
- banner "Installing Ruby $REQUIRED_RUBY_VERSION with rbenv"
182
- rbenv install --skip-existing "$REQUIRED_RUBY_VERSION"
183
- fi
184
- elif has-executable chruby-exec; then
185
- PREFIX='' source /usr/local/share/chruby/chruby.sh
186
- if ! (chruby '' | grep $REQUIRED_RUBY_VERSION'\>' &>/dev/null); then
187
- if has-executable install-ruby; then
188
- banner "Installing Ruby $REQUIRED_RUBY_VERSION with install-ruby"
189
- install-ruby "$REQUIRED_RUBY_VERSION"
190
- else
191
- error "Please install Ruby $REQUIRED_RUBY_VERSION"
192
- fi
193
- fi
194
- elif has-executable rvm; then
195
- if ! (rvm list | grep $required_ruby_version'\>' &>/dev/null); then
196
- banner "Installing Ruby $required_ruby_version with rvm"
197
- rvm install $required_ruby_version
198
- rvm use $required_ruby_version
199
- fi
200
- else
201
- error "You don't seem to have a Ruby manager installed."
164
+ error "You don't seem to have Homebrew installed."
202
165
  print-wrapped "\
203
- We recommend using rbenv. You can find instructions to install it here:
204
-
205
- https://github.com/rbenv/rbenv#installation
206
-
207
- Make sure to follow the instructions to configure your shell so that rbenv is
208
- automatically loaded.
209
-
210
- When you're done, open up a new terminal tab and re-run this script."
166
+ Visit <https://brew.sh> and follow the instructions there, then re-run this
167
+ script."
211
168
  exit 1
212
169
  fi
213
170
  }
214
171
 
215
- install-ruby-dependencies() {
216
- banner 'Installing Ruby dependencies'
217
- gem install bundler -v '~> 1.0' --conservative
218
- bundle check || bundle install
219
- }
220
-
221
- run-provisions() {
222
- provision-ruby
172
+ install-development-libraries() {
173
+ install rpm=zlib-devel
223
174
  }
224
175
 
225
176
  setup() {
177
+ cd "$(dirname "$(dirname "$0")")"
226
178
  check-for-package-manager
227
179
  install-development-libraries
228
- run-provisions
229
- success "Done!"
180
+ provision-project
181
+ success "Setup complete!"
230
182
  }
231
183
 
184
+
185
+ # --- FIN ----------------------------------------------------------------------
186
+
232
187
  setup
@@ -6,10 +6,10 @@
6
6
  # To regenerate this section, install the gem and run:
7
7
  #
8
8
  <% if provisions.any? -%>
9
- # generate-setup <%= provisions.map { |p| "-p #{p.name}" }.join(" ") -%>
10
- <% else %>
9
+ # generate-setup <%= provisions.map { |p| "-p #{p.name}" }.join(" ") %>
10
+ <% else -%>
11
11
  # generate-setup
12
- <% end %>
12
+ <% end -%>
13
13
  #
14
14
 
15
15
  # --- SETUP --------------------------------------------------------------------
@@ -121,7 +121,7 @@ install() {
121
121
  sudo apt-get install -y "$package"
122
122
  fi
123
123
  elif has-executable yum; then
124
- package="${yum_package:-$default_package}"
124
+ package="${rpm_package:-$default_package}"
125
125
 
126
126
  if [[ -n $package ]]; then
127
127
  sudo yum install -y "$package"
@@ -135,28 +135,24 @@ install() {
135
135
  check-for-package-manager() {
136
136
  local platform=$(determine-platform)
137
137
 
138
- if [[ $platform == "linux" ]]; then
139
- if ! has-executable apt-get; then
140
- error "You don't seem to have a package manager installed."
141
- print-wrapped "\
142
- The setup script assumes you're using Debian or a Debian-derived flavor of
143
- Linux (i.e. something with Apt). If this is not the case, then we would
144
- gladly take a PR fixing this!"
145
- exit 1
146
- fi
147
- else
148
- if ! has-executable brew; then
149
- error "You don't seem to have Homebrew installed."
150
- print-wrapped "\
151
- Follow the instructions here to do this:
152
-
153
- http://brew.sh
154
-
155
- Then re-run this script."
156
- exit 1
157
- fi
138
+ if [[ $platform == "linux" ]] && ! has-executable apt-get && ! has-executable yum; then
139
+ # TODO: Check if build-essential is installed on Debian?
140
+ # TODO: Check if 'Development Tools' group is installed on RedHat?
158
141
 
142
+ error "You don't seem to have a package manager installed."
143
+ print-wrapped "\
144
+ This setup script assumes you're using a flavor of Linux derived from Debian or
145
+ RedHat (i.e. something with Apt or Yum). If this is not the case, then we would
146
+ gladly take a PR fixing this!"
147
+ exit 1
148
+ elif [[ $platform == "mac" ]] && ! has-executable brew; then
159
149
  # TODO: Check that OS X Command Line Tools are installed?
150
+
151
+ error "You don't seem to have Homebrew installed."
152
+ print-wrapped "\
153
+ Visit <https://brew.sh> and follow the instructions there, then re-run this
154
+ script."
155
+ exit 1
160
156
  fi
161
157
  }
162
158
 
@@ -172,8 +168,10 @@ setup() {
172
168
  <% if provisions.any? -%>
173
169
  run-provisions
174
170
  <% end -%>
175
- provision-project
176
- success "Done!"
171
+ if type provision-project &>/dev/null; then
172
+ provision-project
173
+ fi
174
+ success "Setup complete!"
177
175
  }
178
176
 
179
177
  <% provisions.each do |provision| -%>
@@ -1,23 +1,29 @@
1
1
  provision-node() {
2
- if [[ -f .node-version ]]; then
2
+ if [[ -f .tool-versions ]]; then
3
+ REQUIRED_NODE_VERSION=$(cat .tool-versions | grep '^nodejs ' | sed -Ee 's/^nodejs (.+)$/\1/')
4
+ elif [[ -f .node-version ]]; then
3
5
  REQUIRED_NODE_VERSION=$(cat .node-version)
4
6
  elif [[ -f .nvmrc ]]; then
5
7
  REQUIRED_NODE_VERSION=$(cat .nvmrc)
6
8
  else
7
9
  error "You don't seem to have a Node version set in your project."
8
10
  print-wrapped "\
9
- You'll need to create a .node-version or .nvmrc file in your project before you
10
- can run this script.
11
- "
11
+ You'll need to create either a .tool-versions file or .nvmrc file in your
12
+ project before you can run this script."
12
13
  exit 1
13
14
  fi
14
15
 
15
16
  ensure-node-installed
16
- install-node-dependencies
17
+ ensure-project-node-dependencies-installed
17
18
  }
18
19
 
19
20
  ensure-node-installed() {
20
- if has-executable nodenv; then
21
+ if has-executable asdf; then
22
+ if ! (asdf current nodejs | grep $REQUIRED_NODE_VERSION'\>' &>/dev/null); then
23
+ banner "Installing Node $REQUIRED_NODE_VERSION with asdf"
24
+ asdf install nodejs $REQUIRED_NODE_VERSION
25
+ fi
26
+ elif has-executable nodenv; then
21
27
  if ! (nodenv versions | grep $REQUIRED_NODE_VERSION'\>' &>/dev/null); then
22
28
  banner "Installing Node $REQUIRED_NODE_VERSION with nodenv"
23
29
  nodenv install --skip-existing "$REQUIRED_NODE_VERSION"
@@ -31,19 +37,16 @@ ensure-node-installed() {
31
37
  else
32
38
  error "You don't seem to have a Node manager installed."
33
39
  print-wrapped "\
34
- We recommend using nodenv. You can find instructions to install it here:
35
-
36
- https://github.com/nodenv/nodenv#installation
40
+ We recommend using asdf. You can find instructions to install it here:
37
41
 
38
- Make sure to follow the instructions to configure your shell so that nodenv is
39
- automatically loaded.
42
+ https://asdf-vm.com
40
43
 
41
- When you're done, open up a new terminal tab and re-run this script."
44
+ When you're done, close and re-open this terminal tab and re-run this script."
42
45
  exit 1
43
46
  fi
44
47
  }
45
48
 
46
- install-node-dependencies() {
49
+ ensure-project-node-dependencies-installed() {
47
50
  banner 'Installing Node dependencies'
48
51
 
49
52
  if [[ -f package-lock.json ]]; then
@@ -53,9 +56,8 @@ install-node-dependencies() {
53
56
  else
54
57
  error "Sorry, I'm not sure how to install your dependencies."
55
58
  print-wrapped "\
56
- You'll need to create a package-lock.json or yarn.lock file in your project
57
- before you can run this script.
58
- "
59
+ Are you missing a package.json? Have you run 'npm install' or 'yarn install'
60
+ yet?"
59
61
  exit 1
60
62
  fi
61
63
  }
@@ -1,26 +1,37 @@
1
1
  provision-ruby() {
2
- if [[ -f .ruby-version ]]; then
2
+ if [[ -f .tool-versions ]]; then
3
+ REQUIRED_RUBY_VERSION=$(cat .tool-versions | grep '^ruby ' | sed -Ee 's/^ruby (.+)$/\1/')
4
+ elif [[ -f .ruby-version ]]; then
3
5
  REQUIRED_RUBY_VERSION=$(cat .ruby-version)
4
6
  else
5
7
  error "You don't seem to have a Ruby version set in your project."
6
8
  print-wrapped "\
7
- You'll need to create a .ruby-version file in your project before you can run
8
- this script.
9
- "
9
+ You'll need to create either a .tool-versions file or .ruby-version file in your
10
+ project before you can run this script."
10
11
  exit 1
11
12
  fi
12
13
 
13
- install-ruby-development-library
14
+ ensure-ruby-development-libraries-installed
14
15
  ensure-ruby-installed
15
- install-ruby-dependencies
16
+ ensure-project-ruby-dependencies-installed
16
17
  }
17
18
 
18
- install-ruby-development-library() {
19
- install apt=ruby-dev rpm=ruby-devel
19
+ ensure-ruby-development-libraries-installed() {
20
+ local platform=$(determine-platform)
21
+
22
+ if [[ $platform == "linux" ]]; then
23
+ banner "Installing Ruby development libraries"
24
+ install apt=ruby-dev rpm=ruby-devel
25
+ fi
20
26
  }
21
27
 
22
28
  ensure-ruby-installed() {
23
- if has-executable rbenv; then
29
+ if has-executable asdf; then
30
+ if ! (asdf current ruby | grep $REQUIRED_RUBY_VERSION'\>' &>/dev/null); then
31
+ banner "Installing Ruby $REQUIRED_RUBY_VERSION with asdf"
32
+ asdf install ruby $REQUIRED_RUBY_VERSION
33
+ fi
34
+ elif has-executable rbenv; then
24
35
  if ! (rbenv versions | grep $REQUIRED_RUBY_VERSION'\>' &>/dev/null); then
25
36
  banner "Installing Ruby $REQUIRED_RUBY_VERSION with rbenv"
26
37
  rbenv install --skip-existing "$REQUIRED_RUBY_VERSION"
@@ -29,10 +40,10 @@ ensure-ruby-installed() {
29
40
  PREFIX='' source /usr/local/share/chruby/chruby.sh
30
41
  if ! (chruby '' | grep $REQUIRED_RUBY_VERSION'\>' &>/dev/null); then
31
42
  if has-executable install-ruby; then
32
- banner "Installing Ruby $REQUIRED_RUBY_VERSION with install-ruby"
43
+ banner "Installing Ruby $REQUIRED_RUBY_VERSION with install-ruby"
33
44
  install-ruby "$REQUIRED_RUBY_VERSION"
34
45
  else
35
- error "Please install Ruby $REQUIRED_RUBY_VERSION"
46
+ error "Please use chruby to install Ruby $REQUIRED_RUBY_VERSION!"
36
47
  fi
37
48
  fi
38
49
  elif has-executable rvm; then
@@ -44,20 +55,21 @@ ensure-ruby-installed() {
44
55
  else
45
56
  error "You don't seem to have a Ruby manager installed."
46
57
  print-wrapped "\
47
- We recommend using rbenv. You can find instructions to install it here:
48
-
49
- https://github.com/rbenv/rbenv#installation
58
+ We recommend using asdf. You can find instructions to install it here:
50
59
 
51
- Make sure to follow the instructions to configure your shell so that rbenv is
52
- automatically loaded.
60
+ https://asdf-vm.com
53
61
 
54
- When you're done, open up a new terminal tab and re-run this script."
62
+ When you're done, close and re-open this terminal tab and re-run this script."
55
63
  exit 1
56
64
  fi
57
65
  }
58
66
 
59
- install-ruby-dependencies() {
67
+ ensure-project-ruby-dependencies-installed() {
60
68
  banner 'Installing Ruby dependencies'
61
- gem install bundler -v '~> 1.0' --conservative
69
+
70
+ if [[ $USE_BUNDLER_1 ]]; then
71
+ gem install bundler -v '~> 1.0' --conservative
72
+ fi
73
+
62
74
  bundle check || bundle install
63
75
  }
@@ -1,3 +1,3 @@
1
1
  module SetupScriptGenerator
2
- VERSION = "0.2.1".freeze
2
+ VERSION = "0.2.2".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: setup_script_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elliot Winkler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-18 00:00:00.000000000 Z
11
+ date: 2020-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
- description:
41
+ description:
42
42
  email:
43
43
  - elliot.winkler@gmail.com
44
44
  executables:
@@ -76,7 +76,7 @@ metadata:
76
76
  homepage_uri: https://github.com/mcmire/setup_script_generator
77
77
  source_code_uri: https://github.com/mcmire/setup_script_generator
78
78
  changelog_uri: https://github.com/mcmire/setup_script_generator/tree/master/CHANGELOG.md
79
- post_install_message:
79
+ post_install_message:
80
80
  rdoc_options: []
81
81
  require_paths:
82
82
  - lib
@@ -91,8 +91,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0'
93
93
  requirements: []
94
- rubygems_version: 3.0.6
95
- signing_key:
94
+ rubygems_version: 3.1.2
95
+ signing_key:
96
96
  specification_version: 4
97
97
  summary: Generate setup scripts for your projects.
98
98
  test_files: []