scipio 0.7.0 → 0.8.0
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +7 -0
- data/README.md +3 -4
- data/lib/scipio/cli.rb +2 -34
- data/lib/scipio/config.rb +0 -15
- data/lib/scipio/gems.rb +5 -5
- data/lib/scipio/version.rb +1 -1
- data/lib/stdlib/string.rb +1 -1
- data/template/lib/%{gem_name_slash}/cli.rb.erb +9 -6
- data.tar.gz.sig +0 -0
- metadata +7 -10
- metadata.gz.sig +0 -0
- data/lib/scipio/rake.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 555d00709e761ef9a85713ffc2e2fb308265b818d2de11415186abd7d09386ca
|
4
|
+
data.tar.gz: 46bd65c8869b69d71c87ebd5b0bae64649db16ab59b7f3d415a12d4d6f58c140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f02466438546c1ba4fe520d9159f5bee9ce6981857341f63e69cef05ef3de2f8bc110ba134c772ea10a01bff4e7aa01147aaa4eab97668a15eaf918e589ee673
|
7
|
+
data.tar.gz: cbc8fecd12d0197708d929c12bce74fe786fc9b24c79970bef8c4abae98a7cb6a45954cfbe9a352f5293b54c712d5953f99989c423a34dbd420cd303122f679b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Scipio Changelog
|
2
2
|
|
3
|
+
## 0.8.0 - 28 August 2024
|
4
|
+
|
5
|
+
- Breaking changes
|
6
|
+
- split off Rake tasks to the new Reki gem, to focus on new gems & repos here
|
7
|
+
- minor template changes (named arguments in the cli methods)
|
8
|
+
- bug fix - attempt gem creation with no local template copy present
|
9
|
+
|
3
10
|
## 0.7.0 - 27 August 2024
|
4
11
|
|
5
12
|
- Breaking changes
|
data/README.md
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# Scipio
|
2
2
|
|
3
|
-
A
|
3
|
+
A CLI utility to:
|
4
4
|
- set up new Ruby Gems using a configurable template
|
5
5
|
- set up local & remote git repos
|
6
|
-
- launch Rake tasks from anywhere
|
7
6
|
|
8
7
|
Set up & run Ruby projects with less typing. Scipio. Skip IO. Geddit?
|
9
8
|
|
@@ -15,13 +14,13 @@ Early days. Development status "3 - Alpha" in Python terms.
|
|
15
14
|
|
16
15
|
## Why
|
17
16
|
|
18
|
-
I'm a big fan of Bundler & Gem as package management tools. But I'm not a fan of the assumptions about licensing (MIT or nothing), repos (just Github), & Rake that are baked into the Bundler gem command. So I built Scipio, to make gem setup a user choice.
|
17
|
+
I'm a big fan of Bundler & Gem as package management tools. But I'm not a fan of the assumptions about licensing (MIT or nothing), repos (just Github), & Rake that are baked into the Bundler gem command. So I built Scipio, to make gem setup a user choice.
|
19
18
|
|
20
19
|
## Installation
|
21
20
|
|
22
21
|
`gem install scipio`
|
23
22
|
|
24
|
-
You will need to have Git and Berg installed and configured
|
23
|
+
You will need to have Git and Berg installed and configured in order to use them via Scipio.
|
25
24
|
|
26
25
|
## Usage
|
27
26
|
|
data/lib/scipio/cli.rb
CHANGED
@@ -6,7 +6,6 @@ require "yaml"
|
|
6
6
|
require_relative "config"
|
7
7
|
require_relative "gems"
|
8
8
|
require_relative "git"
|
9
|
-
require_relative "rake"
|
10
9
|
|
11
10
|
module Scipio
|
12
11
|
# CLI handled by optparse
|
@@ -15,8 +14,7 @@ module Scipio
|
|
15
14
|
@options = {}
|
16
15
|
OptionParser.new do |opts|
|
17
16
|
opts.banner = <<~BANNER
|
18
|
-
Scipio
|
19
|
-
Expanded help here
|
17
|
+
Scipio is a CLI utility to set up Ruby Gems & git repos
|
20
18
|
|
21
19
|
Commands:
|
22
20
|
BANNER
|
@@ -25,14 +23,11 @@ module Scipio
|
|
25
23
|
init(opts:)
|
26
24
|
local(opts:)
|
27
25
|
naked_repo(opts:)
|
28
|
-
rake(opts:)
|
29
|
-
tasks(opts:)
|
30
26
|
version(opts:)
|
31
27
|
end.parse!
|
32
28
|
|
33
29
|
create_gem
|
34
30
|
create_repo
|
35
|
-
create_task
|
36
31
|
rescue OptionParser::InvalidOption
|
37
32
|
puts "Invalid option"
|
38
33
|
# don't have opts here to show help
|
@@ -72,18 +67,6 @@ module Scipio
|
|
72
67
|
end
|
73
68
|
end
|
74
69
|
|
75
|
-
def rake(opts:)
|
76
|
-
opts.on("-r RAKE", "--rake RAKE", "Run Rake in directory RAKE, or named RAKE in config") do |opt|
|
77
|
-
@options[:rake] = opt
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
def tasks(opts:)
|
82
|
-
opts.on("-t TASK", "--task TASK", "Rake task, use -t -T to list tasks, leave off for the default task") do |opt|
|
83
|
-
@options[:task] = opt
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
70
|
def version(opts:)
|
88
71
|
opts.on("-v", "--version", "The version") do
|
89
72
|
puts Scipio::VERSION
|
@@ -97,6 +80,7 @@ module Scipio
|
|
97
80
|
config = Scipio::Config.new
|
98
81
|
repo = Scipio::Git.new(config:, repo_name: @options[:gem])
|
99
82
|
gem = Scipio::Gems.new(config:, gem_name: @options[:gem])
|
83
|
+
gem.init
|
100
84
|
|
101
85
|
repo.create_dir
|
102
86
|
repo.init_before_write
|
@@ -124,21 +108,5 @@ module Scipio
|
|
124
108
|
exit
|
125
109
|
end
|
126
110
|
end
|
127
|
-
|
128
|
-
def create_task
|
129
|
-
if @options[:rake]
|
130
|
-
config = Scipio::Config.new
|
131
|
-
@options[:task] ||= ""
|
132
|
-
rake = Scipio::Rake.new(options: @options, config:)
|
133
|
-
rake.run
|
134
|
-
exit
|
135
|
-
end
|
136
|
-
|
137
|
-
# no rake dir or name, but a task
|
138
|
-
if @options[:task]
|
139
|
-
puts "--task requires --rake NAME, the directory or named Rake file you're calling this task on"
|
140
|
-
exit
|
141
|
-
end
|
142
|
-
end
|
143
111
|
end
|
144
112
|
end
|
data/lib/scipio/config.rb
CHANGED
@@ -8,7 +8,6 @@ module Scipio
|
|
8
8
|
attr_reader :git_dir,
|
9
9
|
:git_domain,
|
10
10
|
:git_site,
|
11
|
-
:rake_dirs,
|
12
11
|
:user_email,
|
13
12
|
:user_fullname,
|
14
13
|
:user_name
|
@@ -76,17 +75,7 @@ module Scipio
|
|
76
75
|
e-mail: #{@user_email}
|
77
76
|
name: \t#{@user_fullname}
|
78
77
|
user: \t#{@user_name}
|
79
|
-
|
80
|
-
Rake
|
81
78
|
INFO
|
82
|
-
if rake_dirs
|
83
|
-
rake_dirs.each do |name, dir|
|
84
|
-
puts "#{name} - #{dir}"
|
85
|
-
end
|
86
|
-
else
|
87
|
-
puts "No rake directories defined"
|
88
|
-
end
|
89
|
-
# exit
|
90
79
|
end
|
91
80
|
|
92
81
|
def ask_for_git_dir
|
@@ -109,7 +98,6 @@ module Scipio
|
|
109
98
|
@user_email = git["user_email"]
|
110
99
|
@user_fullname = git["user_fullname"]
|
111
100
|
@user_name = git["user_name"]
|
112
|
-
@rake_dirs = config["rake"]
|
113
101
|
end
|
114
102
|
|
115
103
|
def save_file
|
@@ -120,9 +108,6 @@ module Scipio
|
|
120
108
|
"user_email" => @user_email,
|
121
109
|
"user_fullname" => @user_fullname,
|
122
110
|
"user_name" => @user_name
|
123
|
-
},
|
124
|
-
"rake" => {
|
125
|
-
"name" => "path"
|
126
111
|
}}
|
127
112
|
yaml = config.to_yaml
|
128
113
|
File.write(Config.config_file, yaml)
|
data/lib/scipio/gems.rb
CHANGED
@@ -29,12 +29,12 @@ module Scipio
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def init
|
32
|
-
FileUtils.mkdir_p
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
FileUtils.mkdir_p(@template_dir)
|
33
|
+
if Dir.empty?(@template_dir)
|
34
|
+
FileUtils.cp_r(@gem_default_templates, @config_dir)
|
35
|
+
puts "Templates copied"
|
36
36
|
end
|
37
|
-
|
37
|
+
puts "Templates directory - #{@template_dir}"
|
38
38
|
end
|
39
39
|
|
40
40
|
def relative_out_path(path_from:)
|
data/lib/scipio/version.rb
CHANGED
data/lib/stdlib/string.rb
CHANGED
@@ -13,27 +13,30 @@ module <%= gem_name.colonize.camelize %>
|
|
13
13
|
|
14
14
|
Commands:
|
15
15
|
BANNER
|
16
|
-
help(opts)
|
17
|
-
options_other(opts)
|
18
|
-
version(opts)
|
16
|
+
help(opts:)
|
17
|
+
options_other(opts:)
|
18
|
+
version(opts:)
|
19
19
|
end.parse!
|
20
|
+
rescue OptionParser::InvalidOption
|
21
|
+
puts "Invalid option"
|
22
|
+
# don't have opts here to show help
|
20
23
|
end
|
21
24
|
|
22
|
-
def help(opts)
|
25
|
+
def help(opts:)
|
23
26
|
opts.on("-h", "--help", "This help message") do
|
24
27
|
puts opts
|
25
28
|
exit
|
26
29
|
end
|
27
30
|
end
|
28
31
|
|
29
|
-
def options_other(opts)
|
32
|
+
def options_other(opts:)
|
30
33
|
opts.on("-o", "--other", "Do... other") do |_o|
|
31
34
|
puts "OK"
|
32
35
|
exit
|
33
36
|
end
|
34
37
|
end
|
35
38
|
|
36
|
-
def version(opts)
|
39
|
+
def version(opts:)
|
37
40
|
opts.on("-v", "--version", "The version") do
|
38
41
|
puts <%= gem_name.colonize.camelize %>::VERSION
|
39
42
|
exit
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scipio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Kreuzer
|
@@ -35,13 +35,12 @@ cert_chain:
|
|
35
35
|
YgqTixCwts6cQYIdYNFtJbzKvRNqyviKKxPaum7UWAv6Uy80gxgJ8p+fG81FsxbZ
|
36
36
|
0ULnXrHlhf/CHs550TxRlXalgxBCImGdHzWjhdJeC1dZP3olgNtjO23ywtw=
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2024-08-
|
38
|
+
date: 2024-08-28 00:00:00.000000000 Z
|
39
39
|
dependencies: []
|
40
|
-
description:
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
- launch Rake tasks from anywhere
|
40
|
+
description: 'A CLI utility to set up new Ruby Gems using a configurable template,
|
41
|
+
& to set up local & remote git repositories.
|
42
|
+
|
43
|
+
'
|
45
44
|
email:
|
46
45
|
- mike@mikekreuzer.com
|
47
46
|
executables:
|
@@ -60,7 +59,6 @@ files:
|
|
60
59
|
- lib/scipio/config.rb
|
61
60
|
- lib/scipio/gems.rb
|
62
61
|
- lib/scipio/git.rb
|
63
|
-
- lib/scipio/rake.rb
|
64
62
|
- lib/scipio/version.rb
|
65
63
|
- lib/stdlib/string.rb
|
66
64
|
- template/%{gem_name}.gemspec.erb
|
@@ -111,6 +109,5 @@ requirements: []
|
|
111
109
|
rubygems_version: 3.5.17
|
112
110
|
signing_key:
|
113
111
|
specification_version: 4
|
114
|
-
summary: A
|
115
|
-
from anywhere
|
112
|
+
summary: A CLI utility to set up Ruby Gems & git repos
|
116
113
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|
data/lib/scipio/rake.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "bundler"
|
4
|
-
|
5
|
-
module Scipio
|
6
|
-
# To call Rake from anywhere
|
7
|
-
class Rake
|
8
|
-
def initialize(options:, config:)
|
9
|
-
@rake = options[:rake]
|
10
|
-
@task = options[:task] # may be an empty string
|
11
|
-
@dir = config.rake_dirs
|
12
|
-
end
|
13
|
-
|
14
|
-
# if running without bundler
|
15
|
-
# https://mattbrictson.com/blog/run-shell-commands-in-ruby
|
16
|
-
def self.with_original_bundler_env(&)
|
17
|
-
return yield unless defined?(Bundler)
|
18
|
-
Bundler.with_original_env(&)
|
19
|
-
end
|
20
|
-
|
21
|
-
def run
|
22
|
-
dir = try_dir(rake: @rake)
|
23
|
-
Dir.chdir(dir) do
|
24
|
-
# Bundler.with_original_env do
|
25
|
-
Rake.with_original_bundler_env do
|
26
|
-
system("bundle exec rake #{@task} --trace", exception: true)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# try for a directory, then an entry in the config
|
32
|
-
# TODO: note - watch out for directories in the directory you're calling scipio from,
|
33
|
-
# rake will search the tree upwards from any directory it uses
|
34
|
-
def try_dir
|
35
|
-
dir =
|
36
|
-
if File.directory?(File.expand_path(@rake))
|
37
|
-
@rake
|
38
|
-
elsif @dir.key?(@rake) && File.directory?(File.expand_path(@dir[@rake]))
|
39
|
-
@dir[@rake]
|
40
|
-
else
|
41
|
-
p "Don't know directory or config entry - #{@rake}"
|
42
|
-
exit
|
43
|
-
end
|
44
|
-
File.expand_path(dir)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|