sportdb-writers 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/Manifest.txt +0 -5
- data/README.md +0 -1
- data/Rakefile +0 -1
- data/config/leagues_america.csv +14 -1
- data/config/leagues_europe.csv +64 -8
- data/config/leagues_world.csv +16 -1
- data/lib/sportdb/writers/version.rb +2 -2
- data/lib/sportdb/writers.rb +0 -78
- metadata +2 -22
- data/bin/fbup +0 -13
- data/config/openfootball.csv +0 -67
- data/lib/sportdb/fbup/github.rb +0 -83
- data/lib/sportdb/fbup/github_config.rb +0 -97
- data/lib/sportdb/fbup/main.rb +0 -162
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10b19eac6f6a70a144de7201b0b72f60628e169e91ca51880cfde5bcc6b52690
|
4
|
+
data.tar.gz: 371f70efc9ffb6fd2ce77eb8087acfbdda68b2ced50019a3fd85ce9582331104
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69d5f4ce4d13bdb73c3b5a96fd92583f043c15fecaa2209ffa81c56c4204adfb3d042b25edfd28e19c8cf89461d01f5847d563819841d8fb810d1673de15784b
|
7
|
+
data.tar.gz: cfb92a600bafc109e13f12bf8d513be4ce3003b358aef32581a9880719a47644d9308d129c8e808c39a1678d065789cfc0ed2bd4a3f57f5f8f0c00691ddb11f5
|
data/CHANGELOG.md
CHANGED
data/Manifest.txt
CHANGED
@@ -4,16 +4,11 @@ README.md
|
|
4
4
|
Rakefile
|
5
5
|
bin/fbgen
|
6
6
|
bin/fbtxt
|
7
|
-
bin/fbup
|
8
7
|
config/leagues_america.csv
|
9
8
|
config/leagues_europe.csv
|
10
9
|
config/leagues_world.csv
|
11
|
-
config/openfootball.csv
|
12
10
|
lib/sportdb/fbgen/main.rb
|
13
11
|
lib/sportdb/fbtxt/main.rb
|
14
|
-
lib/sportdb/fbup/github.rb
|
15
|
-
lib/sportdb/fbup/github_config.rb
|
16
|
-
lib/sportdb/fbup/main.rb
|
17
12
|
lib/sportdb/writers.rb
|
18
13
|
lib/sportdb/writers/goals.rb
|
19
14
|
lib/sportdb/writers/league_config.rb
|
data/README.md
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
* bugs :: [github.com/sportdb/sport.db/issues](https://github.com/sportdb/sport.db/issues)
|
5
5
|
* gem :: [rubygems.org/gems/sportdb-writers](https://rubygems.org/gems/sportdb-writers)
|
6
6
|
* rdoc :: [rubydoc.info/gems/sportdb-writers](http://rubydoc.info/gems/sportdb-writers)
|
7
|
-
* forum :: [groups.google.com/group/opensport](https://groups.google.com/group/opensport)
|
8
7
|
|
9
8
|
|
10
9
|
|
data/Rakefile
CHANGED
data/config/leagues_america.csv
CHANGED
@@ -1,8 +1,21 @@
|
|
1
1
|
key, name, basename, start_season, end_season, comments
|
2
2
|
|
3
3
|
ar.1, Argentina Primera Division, 1-primeradivision,,,
|
4
|
+
|
4
5
|
br.1, Brasileiro Série A, 1-seriea,,,
|
5
|
-
br.2, Brasileiro Série B,
|
6
|
+
br.2, Brasileiro Série B, 2-serieb,,,
|
7
|
+
br.3, Brasileiro Série C, 3-seriec,,,
|
8
|
+
br.4, Brasileiro Série D, 4-seried,,,
|
9
|
+
br.cup, Copa do Brasil, cup,,,
|
10
|
+
|
11
|
+
br.carioca, Campeonato Carioca, carioca,,,
|
12
|
+
br.gauchao, Campeonato Gaúcho, gauchao,,,
|
13
|
+
br.mineiro, Campeonato Mineiro, mineiro,,,
|
14
|
+
br.paranaense, Campeonato Paranaense, paranaense,,,
|
15
|
+
br.paulistao, Campeonato Paulista, paulistao,,,
|
16
|
+
|
17
|
+
co.1, Colombia Primera A, 1-primeraa,,,
|
18
|
+
|
6
19
|
|
7
20
|
copa.l, Copa Libertadores, libertadores,,,
|
8
21
|
copa.s, Copa Sudamericana, sudamericana,,,
|
data/config/leagues_europe.csv
CHANGED
@@ -3,7 +3,8 @@ key, name, basename, start_season, end_season, co
|
|
3
3
|
at.1, Österr. Bundesliga, 1-bundesliga,,,
|
4
4
|
at.2, Österr. 2. Liga, 2-liga2, 2018/19,,
|
5
5
|
at.2, Österr. Erste Liga, 2-liga1, , 2017/18,
|
6
|
-
at.3.o, Österr. Regionalliga Ost,
|
6
|
+
at.3.o, Österr. Regionalliga Ost, 3-regionalliga-ost,,,
|
7
|
+
at.3.m, Österr. Regionalliga Mitte, 3-regionalliga-mitte,,,
|
7
8
|
at.cup, ÖFB Cup, cup,,,
|
8
9
|
|
9
10
|
|
@@ -21,27 +22,44 @@ de.cup, DFB Pokal, cup,,,
|
|
21
22
|
|
22
23
|
it.1, Italian Serie A, 1-seriea,,,
|
23
24
|
it.2, Italian Serie B, 2-serieb,,,
|
25
|
+
it.cup, Coppa Italia, cup,,,
|
26
|
+
|
24
27
|
|
25
28
|
es.1, Primera División de España, 1-liga,,,
|
26
29
|
es.2, Segunda División de España, 2-liga2,,,
|
30
|
+
es.cup, Copa del Rey de España, cup,,,
|
31
|
+
|
27
32
|
|
28
33
|
fr.1, French Ligue 1, 1-ligue1,,,
|
29
34
|
fr.2, French Ligue 2, 2-ligue2,,,
|
30
35
|
|
31
36
|
|
32
|
-
|
33
|
-
|
34
|
-
|
37
|
+
##
|
38
|
+
## note - starting with the 2004/05 season
|
39
|
+
# the Football League's Division 1, Division 2 and Division 3
|
40
|
+
## changed to Championship, League One and League Two.
|
35
41
|
|
36
42
|
eng.2, English Championship, 2-championship, 2004/05,, ## rebranding divsion 1 => championship
|
43
|
+
eng.3, English League One, 3-league1, 2004/05,,
|
44
|
+
eng.4, English League Two, 4-league2, 2004/05,,
|
45
|
+
|
46
|
+
eng.1, English Premier League, 1-premierleague, 1992/93,,
|
37
47
|
eng.2, English Division One, 2-division1, 1992/93, 2003/04, ## start of premier league
|
48
|
+
eng.3, English Division Two, 3-division2, 1992/93, 2003/04,
|
49
|
+
eng.4, English Division Three, 4-division3, 1992/93, 2003/04,
|
50
|
+
eng.5, English National League, 5-nationalleague, 1992/93,,
|
51
|
+
|
52
|
+
eng.1, English Division One, 1-division1, 1892/93, 1991/92, ## start of division 1 & 2
|
38
53
|
eng.2, English Division Two, 2-division2, 1892/93, 1991/92, ## or use English Football League Second Division ???
|
54
|
+
eng.3, English Division Three, 3-division3, , 1991/92,
|
55
|
+
|
56
|
+
eng.1, English Football League, 1-footballleague, 1888/89, 1891/92, ## single league (no divisions)
|
57
|
+
|
39
58
|
|
40
|
-
eng.3, English League One, 3-league1,,,
|
41
|
-
eng.4, English League Two, 4-league2,,,
|
42
|
-
eng.5, English National League, 5-nationalleague,,,
|
43
59
|
eng.cup, English FA Cup, facup,,,
|
44
60
|
|
61
|
+
wal.1, Welsh Premier League, 1-premierleague,,,
|
62
|
+
nir.1, Northern Irish Premiership, 1-premiership,,,
|
45
63
|
|
46
64
|
hu.1, Hungarian NB I, 1-nbi,,,
|
47
65
|
|
@@ -91,14 +109,52 @@ ua.1, Ukraine Premier League, 1-premierleague,,,
|
|
91
109
|
ru.1, Russian Premier League, 1-premierliga,,,
|
92
110
|
ru.2, Russian 1. Division, 2-division1,,,
|
93
111
|
|
112
|
+
by.1, Belarusian Premier League, 1-premierleague,,,
|
113
|
+
|
114
|
+
al.1, Albanian Super League, 1-superleague,,,
|
115
|
+
ad.1, Andorran Premier Division, 1-premierdisvision,,,
|
116
|
+
|
117
|
+
ba.1, Bosnian-Herzegovinian Premier League, 1-premierleague,,,
|
118
|
+
bg.1, Bulgarian A League, 1-aleague,,,
|
119
|
+
|
120
|
+
cy.1, Cypriot First Division, 1-firstdivision,,,
|
121
|
+
|
122
|
+
ee.1, Estonian First League, 1-firstleague,,,
|
123
|
+
lv.1, Latvian First Division, 1-firstdivision,,,
|
124
|
+
lt.1, Lithuanian First Division, 1-firstdivision,,,
|
125
|
+
|
126
|
+
li.cup, Liechtensteiner Cup, cup,,,
|
127
|
+
|
128
|
+
mk.1, Macedonian First League, 1-firstleague,,,
|
129
|
+
mt.1, Macedonian First League, 1-firstleague,,,
|
130
|
+
md.1, Moldovan First Division, 1-firstdivision,,,
|
131
|
+
me.1, Montenegrin First League, 1-firstleague,,,
|
132
|
+
|
133
|
+
sm.1, San Marinese Championship, 1-championship,,,
|
134
|
+
rs.1, Serbian Super League, 1-superleague,,,
|
135
|
+
si.1, Slovene First League, 1-firstleague,,,
|
136
|
+
|
137
|
+
kos.1, Kosovan Superliga, 1-superliga,,,
|
138
|
+
xk.1, Kosovan Superliga, 1-superliga,,,
|
139
|
+
|
140
|
+
am.1, Armenian Premier League, 1-premierleague,,,
|
141
|
+
az.1, Azerbaijani Premier League, 1-premierleague,,,
|
142
|
+
ge.1, Georgian Premier League, 1-premierleague,,,
|
143
|
+
|
144
|
+
fo.1, Faroese Premier Division, 1-premierdivision,,,
|
145
|
+
gi.1, Gibraltarian Premier League, 1-premierleague,,,
|
146
|
+
|
94
147
|
|
95
148
|
|
96
149
|
## use uefa.1 - why? why not?
|
97
150
|
## uefa.2,
|
98
151
|
## uefa.3
|
99
152
|
uefa.cl, UEFA Champions League, cl,,, ### use champs or such?
|
100
|
-
uefa.
|
153
|
+
uefa.champs, UEFA Champions League, champs,,,
|
154
|
+
uefa.el, UEFA Europa League, el,,, ### use europa?
|
155
|
+
uefa.europa, UEFA Europa League, europa,,,
|
101
156
|
uefa.conf, UEFA Conference League, conf,,, ### use con (conf - confusion with config files?)
|
157
|
+
uefa.con, UEFA Conference League, con,,,
|
102
158
|
|
103
159
|
uefa.nl, UEFA Nations League, nl,,,
|
104
160
|
euro, Euro, euro,,,
|
data/config/leagues_world.csv
CHANGED
@@ -5,4 +5,19 @@ jp.1, Japan J1 League, 1-j1league,,,
|
|
5
5
|
|
6
6
|
|
7
7
|
|
8
|
-
|
8
|
+
kz.1, Kazakh Premier League, 1-premierleague,,,
|
9
|
+
|
10
|
+
|
11
|
+
il.1, Israeli Premier League, 1-premierleague,,,
|
12
|
+
|
13
|
+
|
14
|
+
eg.1, Egypt Premiership, 1-premiership,,,
|
15
|
+
ma.1, Morocco Botola Pro 1, 1-botolapro1,,,
|
16
|
+
dz.1, Algeria Ligue 1, 1-ligue1,,,
|
17
|
+
|
18
|
+
afl, African Football League, afl,,,
|
19
|
+
caf.cl, CAF Champions League, cl,,,
|
20
|
+
caf.champs, CAF Champions League, champs,,, ## use alternate code - why? why not?
|
21
|
+
|
22
|
+
|
23
|
+
world, World Cup, cup,,,
|
data/lib/sportdb/writers.rb
CHANGED
@@ -56,83 +56,5 @@ require_relative 'fbgen/main'
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
########################
|
60
|
-
# push & pull github scripts
|
61
|
-
require 'gitti' ## note - requires git machinery
|
62
|
-
|
63
|
-
require_relative 'fbup/github_config'
|
64
|
-
require_relative 'fbup/github' ## github helpers/update machinery
|
65
|
-
|
66
|
-
|
67
|
-
module Fbup
|
68
|
-
class GitHubSync
|
69
|
-
REPOS = GitHubConfig.new
|
70
|
-
recs = read_csv( "#{SportDb::Module::Writers.root}/config/openfootball.csv" )
|
71
|
-
REPOS.add( recs )
|
72
|
-
|
73
|
-
## todo/check: find a better name for helper?
|
74
|
-
## note: datasets of format
|
75
|
-
##
|
76
|
-
## DATASETS = [
|
77
|
-
## ['it.1', %w[2020/21 2019/20]],
|
78
|
-
## ['it.2', %w[2019/20]],
|
79
|
-
## ['es.1', %w[2019/20]],
|
80
|
-
## ['es.2', %w[2019/20]],
|
81
|
-
## ]
|
82
|
-
|
83
|
-
def self.find_repos( datasets )
|
84
|
-
repos = []
|
85
|
-
datasets.each do |dataset|
|
86
|
-
league_key = dataset[0]
|
87
|
-
repo = REPOS[ league_key ]
|
88
|
-
## pp repo
|
89
|
-
if repo.nil?
|
90
|
-
puts "!! ERROR - no repo config/path found for league >#{league_key}<; sorry"
|
91
|
-
exit 1
|
92
|
-
end
|
93
|
-
|
94
|
-
repos << "#{repo['owner']}/#{repo['name']}"
|
95
|
-
end
|
96
|
-
|
97
|
-
pp repos
|
98
|
-
repos.uniq ## note: remove duplicates (e.g. europe or world or such)
|
99
|
-
end
|
100
|
-
end # class GitHubSync
|
101
|
-
end # module Fbup
|
102
|
-
|
103
|
-
|
104
|
-
require_relative 'fbup/main'
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
###
|
109
|
-
## todo/fix: move more code into tool class or such? - why? why not?
|
110
|
-
|
111
|
-
## todo/check: find a better name for helper?
|
112
|
-
## find_all_datasets, filter_datatsets - add alias(es???
|
113
|
-
## queries (lik ARGV) e.g. ['at'] or ['eng', 'de'] etc. list of strings
|
114
|
-
def filter_datasets( datasets, queries=[] )
|
115
|
-
## find all matching leagues (that is, league keys)
|
116
|
-
if queries.empty? ## no filter - get all league keys
|
117
|
-
datasets
|
118
|
-
else
|
119
|
-
datasets.find_all do |dataset|
|
120
|
-
found = false
|
121
|
-
## note: normalize league key (remove dot and downcase)
|
122
|
-
league_key = dataset[0].gsub( '.', '' )
|
123
|
-
queries.each do |query|
|
124
|
-
q = query.gsub( '.', '' ).downcase
|
125
|
-
if league_key.start_with?( q )
|
126
|
-
found = true
|
127
|
-
break
|
128
|
-
end
|
129
|
-
end
|
130
|
-
found
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
|
136
|
-
|
137
59
|
|
138
60
|
puts SportDb::Module::Writers.banner # say hello
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-writers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: football-timezones
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: gitti
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rdoc
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,7 +78,6 @@ email: gerald.bauer@gmail.com
|
|
92
78
|
executables:
|
93
79
|
- fbgen
|
94
80
|
- fbtxt
|
95
|
-
- fbup
|
96
81
|
extensions: []
|
97
82
|
extra_rdoc_files:
|
98
83
|
- CHANGELOG.md
|
@@ -105,16 +90,11 @@ files:
|
|
105
90
|
- Rakefile
|
106
91
|
- bin/fbgen
|
107
92
|
- bin/fbtxt
|
108
|
-
- bin/fbup
|
109
93
|
- config/leagues_america.csv
|
110
94
|
- config/leagues_europe.csv
|
111
95
|
- config/leagues_world.csv
|
112
|
-
- config/openfootball.csv
|
113
96
|
- lib/sportdb/fbgen/main.rb
|
114
97
|
- lib/sportdb/fbtxt/main.rb
|
115
|
-
- lib/sportdb/fbup/github.rb
|
116
|
-
- lib/sportdb/fbup/github_config.rb
|
117
|
-
- lib/sportdb/fbup/main.rb
|
118
98
|
- lib/sportdb/writers.rb
|
119
99
|
- lib/sportdb/writers/goals.rb
|
120
100
|
- lib/sportdb/writers/league_config.rb
|
data/bin/fbup
DELETED
data/config/openfootball.csv
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
key, path
|
2
|
-
|
3
|
-
at, austria
|
4
|
-
|
5
|
-
de, deutschland
|
6
|
-
eng, england
|
7
|
-
es, espana
|
8
|
-
it, italy
|
9
|
-
|
10
|
-
fr, europe/france
|
11
|
-
|
12
|
-
hu, europe/hungary
|
13
|
-
gr, europe/greece
|
14
|
-
pt, europe/portugal
|
15
|
-
|
16
|
-
ch, europe/switzerland
|
17
|
-
|
18
|
-
tr, europe/turkey
|
19
|
-
|
20
|
-
is, europe/iceland
|
21
|
-
sco, europe/scotland
|
22
|
-
ie, europe/ireland
|
23
|
-
|
24
|
-
fi, europe/finland
|
25
|
-
se, europe/sweden
|
26
|
-
no, europe/norway
|
27
|
-
dk, europe/denmark
|
28
|
-
|
29
|
-
lu, europe/luxembourg
|
30
|
-
be, europe/belgium
|
31
|
-
nl, europe/netherlands
|
32
|
-
cz, europe/czech-republic
|
33
|
-
|
34
|
-
sk, europe/slovakia
|
35
|
-
hr, europe/croatia
|
36
|
-
pl, europe/poland
|
37
|
-
|
38
|
-
ro, europe/romania
|
39
|
-
|
40
|
-
ua, europe/ukraine
|
41
|
-
|
42
|
-
ru, europe/russia
|
43
|
-
|
44
|
-
|
45
|
-
uefa.cl, europe-champions-league
|
46
|
-
uefa.el, europe-champions-league
|
47
|
-
uefa.conf, europe-champions-league
|
48
|
-
|
49
|
-
euro, euro
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
mx, mexico
|
54
|
-
|
55
|
-
|
56
|
-
ar, south-america/argentina
|
57
|
-
br, south-america/brazil
|
58
|
-
|
59
|
-
copa.l, south-america/copa-libertadores
|
60
|
-
copa.s, south-america/copa-libertadores
|
61
|
-
|
62
|
-
|
63
|
-
cn, world/asia/china
|
64
|
-
jp, world/asia/japan
|
65
|
-
|
66
|
-
|
67
|
-
world, worldcup
|
data/lib/sportdb/fbup/github.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
|
2
|
-
module Fbup
|
3
|
-
|
4
|
-
###
|
5
|
-
## todo/fix:
|
6
|
-
## add -i/--interactive flag
|
7
|
-
## will prompt yes/no before git operations (with consequences)!!!
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
class GitHubSync
|
12
|
-
|
13
|
-
########
|
14
|
-
## (auto)default to Writer.config.out_dir - why? why not?
|
15
|
-
##
|
16
|
-
## note - is monotree (that is, requires openfootball/england etc.
|
17
|
-
## for repo pathspecs)
|
18
|
-
def self.root() @root || "/sports"; end
|
19
|
-
def self.root=( dir ) @root = dir; end
|
20
|
-
## use root_dir (alias) - why? why not?
|
21
|
-
|
22
|
-
|
23
|
-
def initialize( repos )
|
24
|
-
@repos = repos
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
def git_push_if_changes
|
29
|
-
message = "auto-update week #{Date.today.cweek}" ## add /#{Date.today.cday - why? why not?
|
30
|
-
puts message
|
31
|
-
|
32
|
-
@repos.each do |pathspec|
|
33
|
-
_git_push_if_changes( pathspec, message: message )
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def git_fast_forward_if_clean
|
38
|
-
@repos.each do |pathspec|
|
39
|
-
_git_fast_forward_if_clean( pathspec )
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
## todo/fix: rename to something like
|
46
|
-
## git_(auto_)commit_and_push_if_changes/if_dirty()
|
47
|
-
|
48
|
-
def _git_push_if_changes( pathspec, message: )
|
49
|
-
path = "#{self.class.root}/#{pathspec}"
|
50
|
-
|
51
|
-
Gitti::GitProject.open( path ) do |proj|
|
52
|
-
puts ''
|
53
|
-
puts "###########################################"
|
54
|
-
puts "## trying to commit & push repo in path >#{path}<"
|
55
|
-
puts "Dir.getwd: #{Dir.getwd}"
|
56
|
-
output = proj.changes
|
57
|
-
if output.empty?
|
58
|
-
puts "no changes found; skipping commit & push"
|
59
|
-
else
|
60
|
-
proj.add( '.' )
|
61
|
-
proj.commit( message )
|
62
|
-
proj.push
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
|
68
|
-
def _git_fast_forward_if_clean( pathspec )
|
69
|
-
path = "#{self.class.root}/#{pathspec}"
|
70
|
-
|
71
|
-
Gitti::GitProject.open( path ) do |proj|
|
72
|
-
output = proj.changes
|
73
|
-
unless output.empty?
|
74
|
-
puts "FAIL - cannot git pull (fast-forward) - working tree has changes:"
|
75
|
-
puts output
|
76
|
-
exit 1
|
77
|
-
end
|
78
|
-
|
79
|
-
proj.fast_forward
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end # class GitHub
|
83
|
-
end # module Fbup
|
@@ -1,97 +0,0 @@
|
|
1
|
-
|
2
|
-
module Fbup
|
3
|
-
class GitHubConfig
|
4
|
-
|
5
|
-
## map leagues to repo+path
|
6
|
-
## e.g. fr.1 => europe/france
|
7
|
-
## eng..1 => england
|
8
|
-
##
|
9
|
-
## for other than openfootball (default)
|
10
|
-
## use @
|
11
|
-
## e.g. myorg@austria
|
12
|
-
## austria@myorg ??
|
13
|
-
##
|
14
|
-
## myorg@europe/france
|
15
|
-
## europe/france@myorg
|
16
|
-
|
17
|
-
|
18
|
-
def self.read( path )
|
19
|
-
recs = read_csv( path )
|
20
|
-
new( recs )
|
21
|
-
end
|
22
|
-
|
23
|
-
def initialize( recs=nil )
|
24
|
-
@table = {}
|
25
|
-
add( recs ) if recs
|
26
|
-
end
|
27
|
-
|
28
|
-
|
29
|
-
def add( recs )
|
30
|
-
recs.each do |rec|
|
31
|
-
path = rec['path'] ## use pathspec - why? why not?
|
32
|
-
## or repospec or such
|
33
|
-
|
34
|
-
## auto-expand to openfootball as default org if no @ specified
|
35
|
-
owner, path = if path.index( '@')
|
36
|
-
path.split( '@', 2 )
|
37
|
-
else
|
38
|
-
['openfootball', path ]
|
39
|
-
end
|
40
|
-
name, path = path.split( '/', 2 )
|
41
|
-
|
42
|
-
|
43
|
-
## openfootball@europe/france
|
44
|
-
## =>
|
45
|
-
## owner: openfootball
|
46
|
-
## name: europe
|
47
|
-
## path: france
|
48
|
-
##
|
49
|
-
## openfootball@austria
|
50
|
-
## =>
|
51
|
-
## owner: openfootball
|
52
|
-
## name: austria
|
53
|
-
## path: nil
|
54
|
-
@table[ rec['key'] ] = { 'owner' => owner, ## (required)
|
55
|
-
'name' => name, ## (required)
|
56
|
-
'path' => path ## extra/inner/inside/local path (optional)
|
57
|
-
}
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
##
|
63
|
-
## todo/fix:
|
64
|
-
## make key lookup more flexible
|
65
|
-
## auto-add more variants!!!
|
66
|
-
## e.g. at.1 AT1, AT or such
|
67
|
-
##
|
68
|
-
|
69
|
-
## find (full) record by key
|
70
|
-
def find( key )
|
71
|
-
key = key.to_s.downcase
|
72
|
-
|
73
|
-
## first check for 1:1 match
|
74
|
-
rec = @table[key]
|
75
|
-
if rec.nil?
|
76
|
-
## try match by (country / first) code
|
77
|
-
## split by .
|
78
|
-
key, _ = key.split( '.' )
|
79
|
-
rec = @table[key]
|
80
|
-
end
|
81
|
-
|
82
|
-
rec
|
83
|
-
end
|
84
|
-
alias_method :[], :find ## keep alias - why? why not?
|
85
|
-
|
86
|
-
|
87
|
-
def find_repo( key )
|
88
|
-
rec = _find( key )
|
89
|
-
|
90
|
-
rec ? "#{rec['owner']}/#{rec['name']}" : nil
|
91
|
-
end
|
92
|
-
|
93
|
-
end # class GitHubConfig
|
94
|
-
end # module Fbup
|
95
|
-
|
96
|
-
|
97
|
-
|
data/lib/sportdb/fbup/main.rb
DELETED
@@ -1,162 +0,0 @@
|
|
1
|
-
|
2
|
-
module Fbup
|
3
|
-
def self.main( args=ARGV )
|
4
|
-
|
5
|
-
opts = {
|
6
|
-
source_path: [],
|
7
|
-
push: false,
|
8
|
-
ffwd: false,
|
9
|
-
dry: false, ## dry run (no write)
|
10
|
-
test: true, ## sets push & ffwd to false
|
11
|
-
debug: true,
|
12
|
-
file: nil,
|
13
|
-
test_dir: './o',
|
14
|
-
}
|
15
|
-
|
16
|
-
|
17
|
-
parser = OptionParser.new do |parser|
|
18
|
-
parser.banner = "Usage: #{$PROGRAM_NAME} [options] [args]"
|
19
|
-
|
20
|
-
parser.on( "-p", "--[no-]push",
|
21
|
-
"fast forward sync and commit & push changes to git repo - default is (#{opts[:push]})" ) do |push|
|
22
|
-
opts[:push] = push
|
23
|
-
if opts[:push] ## note: autoset ffwd too if push == true
|
24
|
-
opts[:ffwd] = true
|
25
|
-
opts[:test] = false
|
26
|
-
end
|
27
|
-
end
|
28
|
-
## todo/check - add a --ffwd flag too - why? why not?
|
29
|
-
|
30
|
-
parser.on( "-t", "--test",
|
31
|
-
"test run; writing output to #{opts[:test_dir]} - default is #{opts[:test]}" ) do |test|
|
32
|
-
opts[:test] = true
|
33
|
-
opts[:push] = false
|
34
|
-
opts[:ffwd] = false
|
35
|
-
end
|
36
|
-
parser.on( "--dry",
|
37
|
-
"dry run; do NOT write - default is (#{opts[:dry]})" ) do |dry|
|
38
|
-
opts[:dry] = dry
|
39
|
-
opts[:push] = false ### autoset push & ffwd - why? why not?
|
40
|
-
opts[:ffwd] = false
|
41
|
-
end
|
42
|
-
|
43
|
-
parser.on( "-q", "--quiet",
|
44
|
-
"less debug output/messages - default is (#{!opts[:debug]})" ) do |debug|
|
45
|
-
opts[:debug] = false
|
46
|
-
end
|
47
|
-
|
48
|
-
parser.on( "-I DIR", "--include DIR",
|
49
|
-
"add directory to (source) search path - default is (#{opts[:source_path].join(',')})") do |dir|
|
50
|
-
opts[:source_path] += path
|
51
|
-
end
|
52
|
-
|
53
|
-
parser.on( "-f FILE", "--file FILE",
|
54
|
-
"read leagues (and seasons) via .csv file") do |file|
|
55
|
-
opts[:file] = file
|
56
|
-
end
|
57
|
-
end
|
58
|
-
parser.parse!( args )
|
59
|
-
|
60
|
-
|
61
|
-
if opts[:source_path].empty? &&
|
62
|
-
File.exist?( '/sports/cache.api.fbdat') &&
|
63
|
-
File.exist?( '/sports/cache.wfb' )
|
64
|
-
opts[:source_path] << '/sports/cache.api.fbdat'
|
65
|
-
opts[:source_path] << '/sports/cache.wfb'
|
66
|
-
end
|
67
|
-
|
68
|
-
if opts[:source_path].empty?
|
69
|
-
opts[:source_path] = ['.'] ## use ./ as default
|
70
|
-
end
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
puts "OPTS:"
|
75
|
-
p opts
|
76
|
-
puts "ARGV:"
|
77
|
-
p args
|
78
|
-
|
79
|
-
|
80
|
-
datasets = if opts[:file]
|
81
|
-
read_datasets( opts[:file] )
|
82
|
-
else
|
83
|
-
parse_datasets_args( args )
|
84
|
-
end
|
85
|
-
|
86
|
-
puts "datasets:"
|
87
|
-
pp datasets
|
88
|
-
|
89
|
-
|
90
|
-
source_path = opts[:source_path]
|
91
|
-
|
92
|
-
root_dir = if opts[:test]
|
93
|
-
opts[:test_dir]
|
94
|
-
else
|
95
|
-
GitHubSync.root # e.g. "/sports"
|
96
|
-
end
|
97
|
-
|
98
|
-
puts " (output) root_dir: >#{root_dir}<"
|
99
|
-
|
100
|
-
repos = GitHubSync.find_repos( datasets )
|
101
|
-
puts " #{repos.size} repo(s):"
|
102
|
-
pp repos
|
103
|
-
sync = GitHubSync.new( repos )
|
104
|
-
|
105
|
-
puts " sync:"
|
106
|
-
pp sync
|
107
|
-
|
108
|
-
|
109
|
-
sync.git_fast_forward_if_clean if opts[:ffwd]
|
110
|
-
|
111
|
-
### step 0 - validate and fill-in seasons etc.
|
112
|
-
## reuse from Fbgen tool
|
113
|
-
Fbgen.validate_datasets!( datasets, source_path: source_path )
|
114
|
-
|
115
|
-
|
116
|
-
datasets.each do |league_key, seasons|
|
117
|
-
puts "==> gen #{league_key} - #{seasons.size} seasons(s)..."
|
118
|
-
|
119
|
-
league_info = Writer::LEAGUES[ league_key ]
|
120
|
-
pp league_info
|
121
|
-
|
122
|
-
seasons.each do |season|
|
123
|
-
filename = "#{season.to_path}/#{league_key}.csv"
|
124
|
-
path = Fbgen.find_file( filename, path: source_path )
|
125
|
-
|
126
|
-
### get matches
|
127
|
-
puts " ---> reading matches in #{path} ..."
|
128
|
-
matches = SportDb::CsvMatchParser.read( path )
|
129
|
-
puts " #{matches.size} matches"
|
130
|
-
|
131
|
-
## build
|
132
|
-
txt = SportDb::TxtMatchWriter.build( matches )
|
133
|
-
puts txt if opts[:debug]
|
134
|
-
|
135
|
-
league_name = league_info[ :name ] # e.g. Brasileiro Série A
|
136
|
-
basename = league_info[ :basename] #.e.g 1-seriea
|
137
|
-
|
138
|
-
league_name = league_name.call( season ) if league_name.is_a?( Proc ) ## is proc/func - name depends on season
|
139
|
-
basename = basename.call( season ) if basename.is_a?( Proc ) ## is proc/func - name depends on season
|
140
|
-
|
141
|
-
buf = String.new
|
142
|
-
buf << "= #{league_name} #{season}\n\n"
|
143
|
-
buf << txt
|
144
|
-
|
145
|
-
repo = GitHubSync::REPOS[ league_key ]
|
146
|
-
repo_path = "#{repo['owner']}/#{repo['name']}"
|
147
|
-
repo_path << "/#{repo['path']}" if repo['path'] ## note: do NOT forget to add optional extra path!!!
|
148
|
-
|
149
|
-
outpath = "#{root_dir}/#{repo_path}/#{season.to_path}/#{basename}.txt"
|
150
|
-
|
151
|
-
if opts[:dry]
|
152
|
-
puts " (dry) writing to >#{outpath}<..."
|
153
|
-
else
|
154
|
-
write_text( outpath, buf )
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
sync.git_push_if_changes if opts[:push]
|
160
|
-
|
161
|
-
end # method self.main
|
162
|
-
end # module Fbgen
|