yorobot 0.3.0 → 1.0.4

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: 2e9d56ead6d7473f8ad0d0677bf7008343b8b240
4
- data.tar.gz: edfb052a9634b6644439118e7866e259276ba4ec
3
+ metadata.gz: 0cf2d8d1b641b291bde126dfae38897f1bbb33a8
4
+ data.tar.gz: 53e74d9487c4a4154ce66cd970499b9f47cf0a57
5
5
  SHA512:
6
- metadata.gz: f2db7acdf2aa0c7630e02514fe407f952c946b155e48342774a76138a19c90617a2e9425a193da40f357388eb5929d62a4eaaf5c2765308d75b069ef3b8991eb
7
- data.tar.gz: b3964edb4092a54e3e4391fdc4c4e3a4e27a737681ada66bd214d6005d3968cee2cf8fb42978cc28b7f6abc40c4caa5c11706ac142b0716bb0457e1a9feb03b6
6
+ metadata.gz: 88e1961c9404bbf634504a13c4f84165cadce1a3165d96f0cafbbfc7379165348d78aae2200bf71f554cd9529c33d847df67798eaf1c9bf523103314fe120a0d
7
+ data.tar.gz: b1e849042a9e4aa012eca071c336ae0b956ec9f93aa320131ba62c4f7595238ae9011c38855189da7303806529bc36418a47162a077cebd83708938d904509ed
@@ -5,8 +5,4 @@ Rakefile
5
5
  bin/yo
6
6
  bin/yorobot
7
7
  lib/yorobot.rb
8
- lib/yorobot/echo.rb
9
- lib/yorobot/github/git.rb
10
- lib/yorobot/github/github.rb
11
- lib/yorobot/list.rb
12
8
  lib/yorobot/version.rb
data/Rakefile CHANGED
@@ -18,9 +18,11 @@ Hoe.spec 'yorobot' do
18
18
  self.history_file = 'CHANGELOG.md'
19
19
 
20
20
  self.extra_deps = [
21
- ['commands-lite', '>= 0.1.0'],
22
- ['gitti', '>= 0.5.0'],
21
+ ['flow-lite', '>= 1.0.1'],
22
+ ['gitti', '>= 0.6.1'],
23
23
  ['hubba', '>= 1.0.0'],
24
+ ['hubba-reports', '>= 1.0.1'],
25
+ ['monos', '>= 1.0.2'],
24
26
  ]
25
27
 
26
28
  self.licenses = ['Public Domain']
@@ -1,38 +1,122 @@
1
+ require 'flow-lite'
2
+
3
+
1
4
  ####
2
- # 3rd party gems / libs
5
+ # add more 3rd party gems / libs to flow "prologue / prelude"
3
6
  #
4
7
  # require 'computer' # add shell run/call etc. machinery
5
8
  # add via gitti & hubba
6
- require 'commands-lite'
7
9
  require 'gitti'
8
10
  require 'hubba'
11
+ require 'hubba/reports'
12
+ require 'mono'
9
13
 
10
14
 
11
15
  # our own code
12
16
  require 'yorobot/version' # note: let version always go first
13
- require 'yorobot/echo'
14
- require 'yorobot/list'
15
17
 
16
- require 'yorobot/github/git'
17
- require 'yorobot/github/github'
18
+
19
+
20
+ #### add predefined steps
21
+ module Flow
22
+ class Base
23
+
24
+ =begin
25
+ # check ssh
26
+ if [ ! -d ~/.ssh ]; then mkdir ~/.ssh; fi
27
+ echo "$SSH_KEY" > ~/.ssh/id_rsa
28
+ chmod 600 ~/.ssh/id_rsa
29
+ echo "ssh directory - ~/.ssh:"
30
+ ls -la ~/.ssh
31
+ # ssh -vT git@github.com
32
+
33
+ # check git
34
+ git --version
35
+ git config --global user.name "Yo Robot"
36
+ git config --global user.email "gerald.bauer+yorobot@gmail.com"
37
+ git config -l --show-origin
38
+ =end
39
+ def step_setup
40
+ ##############
41
+ ## setup ssh
42
+
43
+ ssh_key = ENV['SSH_KEY']
44
+
45
+ if ssh_key.nil?
46
+ STDERR.puts "!! ERROR - required SSH_KEY env(ironment) variable missing"
47
+ exit 1
48
+ end
49
+
50
+ ssh_path = File.expand_path( '~/.ssh' )
51
+
52
+ if File.exist?( "#{ssh_path}/id_rsa" )
53
+ STDERR.puts "!! ERROR - ssh key >#{ssh_path}/id_rsa< already exists"
54
+ exit 1
55
+ end
56
+
57
+ ## make sure path exists
58
+ FileUtils.mkdir_p( ssh_path ) unless Dir.exist?( ssh_path )
59
+ puts "--> writing ssh key to >#{ssh_path}/id_rsa<..."
60
+ File.open( "#{ssh_path}/id_rsa", 'w:utf-8' ) do |f|
61
+ f.write( ssh_key )
62
+ end
63
+ ## note: ssh key must be "private" only access by owner (otherwise) WILL NOT work
64
+ ## res = File.chmod( 0600, "#{ssh_path}/id_rsa" )
65
+ ## puts res ## returns number of files processed; should be 1 - assert - why? why not?
66
+ Computer::Shell.run( %Q{chmod 600 #{ssh_path}/id_rsa} )
67
+
68
+ Computer::Shell.run( %Q{ls -la #{ssh_path}} )
69
+ # ssh -vT git@github.com
70
+
71
+
72
+ #####
73
+ ## setup git
74
+ ## git --version
75
+ Git.version
76
+
77
+ user_name = ENV['YOROBOT_NAME'] || ENV['YO_NAME'] || 'Yo Robot'
78
+ user_email = ENV['YOROBOT_EMAIL'] || ENV['YO_EMAIL'] || 'gerald.bauer+yorobot@gmail.com'
79
+
80
+ Computer::Shell.run( %Q{git config --global user.name "#{user_name}"} )
81
+ Computer::Shell.run( %Q{git config --global user.email "#{user_email}"} )
82
+
83
+ Computer::Shell.run( %Q{git config -l --show-origin} )
84
+ end
85
+
86
+ end # class Base
87
+ end # module Flow
18
88
 
19
89
 
20
90
 
21
91
  module Yorobot
22
- def self.run( args ) Commands.run( args ); end
23
- def self.list() List.run; end
24
-
25
-
26
- class Tool
27
- def self.main( args=ARGV )
28
- if args.size > 0
29
- Yorobot.run( args )
30
- else
31
- # list all known commands
32
- Yorobot.list
33
- end
92
+ def self.main( args=ARGV )
93
+
94
+ ## setup/check mono root
95
+ puts "[flow] pwd: #{Dir.pwd}"
96
+
97
+
98
+ ## quick hack:
99
+ ## if /sites does not exists
100
+ ## assume running with GitHub Actions or such
101
+ ## and use working dir as root? or change to home dir ~/ or ~/mono - why? why not?
102
+ ##
103
+ ## in the future use some -e/-env(ironemt) settings and scripts - why? why not?
104
+ if Dir.exist?( 'C:/Sites' )
105
+ Mono.root = 'C:/Sites' ## use local (dev) setup for testing flow steps
106
+
107
+ puts "[flow] assume local (dev) setup for testing"
108
+ else
109
+ Mono.root = Dir.pwd
110
+
111
+ ## for debugging print / walk mono (source) tree
112
+ Mono.walk
34
113
  end
35
- end # class Tool
114
+ puts "[flow] Mono.root: #{Mono.root}"
115
+
116
+
117
+ ## pass along to "standard" flow engine
118
+ ::Flow::Tool.main( args )
119
+ end
36
120
  end # module Yorobot
37
121
 
38
122
 
@@ -4,9 +4,9 @@
4
4
 
5
5
 
6
6
  module YorobotCore ## todo/check: rename GittiBase or GittiMeta or such - why? why not?
7
- MAJOR = 0 ## todo: namespace inside version or something - why? why not??
8
- MINOR = 3
9
- PATCH = 0
7
+ MAJOR = 1 ## todo: namespace inside version or something - why? why not??
8
+ MINOR = 0
9
+ PATCH = 4
10
10
  VERSION = [MAJOR,MINOR,PATCH].join('.')
11
11
 
12
12
  def self.version
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yorobot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-22 00:00:00.000000000 Z
11
+ date: 2020-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: commands-lite
14
+ name: flow-lite
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: 1.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.0
26
+ version: 1.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gitti
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.0
33
+ version: 0.6.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.5.0
40
+ version: 0.6.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hubba
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: hubba-reports
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: monos
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.0.2
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.0.2
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: rdoc
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -105,10 +133,6 @@ files:
105
133
  - bin/yo
106
134
  - bin/yorobot
107
135
  - lib/yorobot.rb
108
- - lib/yorobot/echo.rb
109
- - lib/yorobot/github/git.rb
110
- - lib/yorobot/github/github.rb
111
- - lib/yorobot/list.rb
112
136
  - lib/yorobot/version.rb
113
137
  homepage: https://github.com/rubycoco/git
114
138
  licenses:
@@ -1,10 +0,0 @@
1
- module Yorobot
2
-
3
- class Echo < Command
4
- def call( *args )
5
- puts args.join( ' ' )
6
- end
7
- end # class Echo
8
-
9
- end # module Yorobot
10
-
@@ -1,109 +0,0 @@
1
- module Yorobot
2
-
3
-
4
- class Setup < Command
5
-
6
- =begin
7
- # check ssh
8
- if [ ! -d ~/.ssh ]; then mkdir ~/.ssh; fi
9
- echo "$SSH_KEY" > ~/.ssh/id_rsa
10
- chmod 600 ~/.ssh/id_rsa
11
- echo "ssh directory - ~/.ssh:"
12
- ls -la ~/.ssh
13
- # ssh -vT git@github.com
14
-
15
- # check git
16
- git --version
17
- git config --global user.name "Yo Robot"
18
- git config --global user.email "gerald.bauer+yorobot@gmail.com"
19
- git config -l --show-origin
20
- =end
21
-
22
- def call
23
- ##############
24
- ## setup ssh
25
-
26
- ssh_key = ENV['SSH_KEY']
27
-
28
- if ssh_key.nil?
29
- STDERR.puts "!! ERROR - required SSH_KEY env(ironment) variable missing"
30
- exit 1
31
- end
32
-
33
- ssh_path = File.expand_path( '~/.ssh' )
34
-
35
- if File.exist?( "#{ssh_path}/id_rsa" )
36
- STDERR.puts "!! ERROR - ssh key >#{ssh_path}/id_rsa< already exists"
37
- exit 1
38
- end
39
-
40
- ## make sure path exists
41
- FileUtils.mkdir_p( ssh_path ) unless Dir.exist?( ssh_path )
42
- puts "--> writing ssh key to >#{ssh_path}/id_rsa<..."
43
- File.open( "#{ssh_path}/id_rsa", 'w:utf-8' ) do |f|
44
- f.write( ssh_key )
45
- end
46
- ## note: ssh key must be "private" only access by owner (otherwise) WILL NOT work
47
- ## res = File.chmod( 0600, "#{ssh_path}/id_rsa" )
48
- ## puts res ## returns number of files processed; should be 1 - assert - why? why not?
49
- Computer::Shell.run( %Q{chmod 600 #{ssh_path}/id_rsa} )
50
-
51
- Computer::Shell.run( %Q{ls -la #{ssh_path}} )
52
- # ssh -vT git@github.com
53
-
54
-
55
- #####
56
- ## setup git
57
- ## git --version
58
- Git.version
59
-
60
- user_name = ENV['YOROBOT_NAME'] || ENV['YO_NAME']
61
- user_email = ENV['YOROBOT_EMAIL'] || ENV['YO_EMAIL']
62
-
63
- Computer::Shell.run( %Q{git config --global user.name "#{user_name}"} )
64
- Computer::Shell.run( %Q{git config --global user.email "#{user_email}"} )
65
-
66
- Computer::Shell.run( %Q{git config -l --show-origin} )
67
- end
68
- end # class Setup
69
-
70
-
71
-
72
- class Clone < Command ## change to SshClone(r) or such - why? why not?
73
- option :depth, "--depth DEPTH", Integer, "shallow clone depth"
74
-
75
- def call( *repos )
76
- repos.each do |repo|
77
- if options[:depth]
78
- ### shallow "fast clone" - support libraries
79
- ### use https:// instead of ssh - why? why not?
80
- Git.clone( "git@github.com:#{repo}.git", depth: options[:depth] )
81
- else
82
- ### "deep" standard/ regular clone
83
- Git.clone( "git@github.com:#{repo}.git" )
84
- end
85
- end
86
- end
87
- end # class Clone
88
-
89
-
90
-
91
- class Push < Command ## change to SshPush(r) or such - why? why not?
92
-
93
- def call( *paths ) ## e.g. "./cache.github" etc.
94
- msg = "auto-update week #{Date.today.cweek}"
95
-
96
- paths.each do |path|
97
- GitProject.open( path ) do |proj|
98
- if proj.changes?
99
- proj.add( "." )
100
- proj.commit( msg )
101
- proj.push
102
- end
103
- end
104
- end
105
- end
106
- end # class Push
107
-
108
-
109
- end # module Yorobot
@@ -1,30 +0,0 @@
1
- module Yorobot
2
-
3
- class Github < Command ## change to GithubStats or such - why? why not?
4
-
5
- ## todo/check: use --data-dir/--datadir - why? why not?
6
- option :data_dir, "-d DIR", "--dir DIR",
7
- "data dir (defaults to #{Hubba.config.data_dir})"
8
-
9
- ## todo/check: add switch --[no]-traffic - why? why not?
10
-
11
-
12
- def call( username )
13
- ## username e.g. geraldb
14
-
15
- if options[:data_dir] ## e.g. "./cache.github"
16
- puts " setting data_dir to >#{options[:data_dir]}<"
17
- Hubba.config.data_dir = options[:data_dir]
18
- end
19
-
20
- h = Hubba.reposet( username ) ## note: do NOT include yorobot for now
21
- pp h
22
-
23
- Hubba.update_stats( h )
24
- Hubba.update_traffic( h )
25
- puts "Done."
26
- end
27
-
28
- end # class Github
29
- end # module Yorobot
30
-
@@ -1,19 +0,0 @@
1
- module Yorobot
2
-
3
- class List < Command
4
- def call
5
- ## list all known commands
6
- commands = Commands.commands
7
- puts "#{commands.size} command(s):"
8
- commands.each do |name, command|
9
- print " %-10s" % name
10
- print " | #{command.class.name} (#{command.name})"
11
- print "\n"
12
- end
13
- end
14
- end
15
-
16
- end # module Yorobot
17
-
18
-
19
-