fossgit 1.0.1 → 1.0.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 +4 -4
- data/bin/fossgit +3 -15
- data/lib/fossgit.rb +44 -13
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b587f5714e832075d9bfa3935c3814e242267712
|
4
|
+
data.tar.gz: 0e0dd8b1f92c433492dd35873f254494b727de1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd6d9a5534f350c48b55ed9c754e031e058ff7bdba4401417999f6cac2df4394e7f4bc09243c9eabd2b002b28d1e8e0cb690d323083dabe36740dac45f629e48
|
7
|
+
data.tar.gz: 9edbe6e60d9d38398e4c196cce02d191afe45e6ab8cbd665b297a1758fd7cec5837fc557ce753baefb6564253645871bd429db69c40579bdaabb864272748ff6
|
data/bin/fossgit
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'fossgit'
|
3
3
|
|
4
|
-
@
|
4
|
+
@fg = FossGit.new Dir.pwd
|
5
5
|
|
6
6
|
def mirror_command
|
7
7
|
[fossil_command, sed_command, git_command].join '|'
|
@@ -16,7 +16,7 @@ def fossil_command
|
|
16
16
|
|
17
17
|
cmd << "--import-marks #{fossil_marks}" if update_export?
|
18
18
|
cmd << "--export-marks #{fossil_marks}"
|
19
|
-
cmd << fossil_repository
|
19
|
+
cmd << @fg.fossil_repository
|
20
20
|
|
21
21
|
cmd.join ' '
|
22
22
|
end
|
@@ -64,22 +64,10 @@ def option_switch? long_name
|
|
64
64
|
ARGV.delete "-#{long_name[0]}" or ARGV.delete "--#{long_name}"
|
65
65
|
end
|
66
66
|
|
67
|
-
def fossil_repository
|
68
|
-
idregex = /^repository: +/
|
69
|
-
|
70
|
-
@fossil_repository ||= File.absolute_path(
|
71
|
-
`fossil status`.split(/\n/).select do |line|
|
72
|
-
line.match idregex
|
73
|
-
end.first.sub idregex, ''
|
74
|
-
)
|
75
|
-
end
|
76
|
-
|
77
67
|
name = File.basename $0
|
78
68
|
|
79
|
-
fg = FossGit.new
|
80
|
-
|
81
69
|
if option_switch? 'help'
|
82
|
-
puts
|
70
|
+
puts FossGit.help_text name
|
83
71
|
exit
|
84
72
|
elsif option_switch? 'version'
|
85
73
|
puts [name, FossGit.version].join ' '
|
data/lib/fossgit.rb
CHANGED
@@ -1,9 +1,19 @@
|
|
1
1
|
class FossGit
|
2
|
+
attr_reader :checkout_path
|
3
|
+
attr_reader :fossil_repository
|
4
|
+
|
5
|
+
def initialize checkout_path=''
|
6
|
+
@checkout_path = checkout_path
|
7
|
+
@checkout_path = get_element_matching :'local-root'
|
8
|
+
|
9
|
+
@fossil_repository = get_repository_path
|
10
|
+
end
|
11
|
+
|
2
12
|
def self.version
|
3
|
-
'1.0.
|
13
|
+
'1.0.2'
|
4
14
|
end
|
5
15
|
|
6
|
-
def help_text name='fossgit'
|
16
|
+
def self.help_text name='fossgit'
|
7
17
|
help = <<-EOF
|
8
18
|
|
9
19
|
FossGit provides a simple tool for creating Git mirrors of Fossil
|
@@ -19,8 +29,8 @@ class FossGit
|
|
19
29
|
|
20
30
|
By default, when exporting to local Git repository GITREPO, #{name}
|
21
31
|
attempts to push updates to a configured upstream Git repository. It
|
22
|
-
harmlessly fails to push if no upstream repository is configured for
|
23
|
-
local Git repository.
|
32
|
+
harmlessly fails to push if no upstream repository is configured for
|
33
|
+
the local Git repository.
|
24
34
|
|
25
35
|
OPTIONS/ARGUMENTS:
|
26
36
|
|
@@ -28,18 +38,18 @@ class FossGit
|
|
28
38
|
arguments.
|
29
39
|
|
30
40
|
-c CHECKOUT Specify the location of your Fossil repository's open
|
31
|
-
checkout, CHECKOUT. This is optional; you may simply
|
32
|
-
this tool from within an open checkout of your
|
33
|
-
repository instead.
|
41
|
+
checkout, CHECKOUT. This is optional; you may simply
|
42
|
+
use this tool from within an open checkout of your
|
43
|
+
Fossil repository instead.
|
34
44
|
|
35
|
-
-l Perform local-only mirror operations, without trying
|
36
|
-
push Git updates to a remote repository. By
|
37
|
-
#{name} tries to push to an upstream Git
|
38
|
-
whenever it exports from Fossil to Git.
|
45
|
+
-l Perform local-only mirror operations, without trying
|
46
|
+
to push Git updates to a remote repository. By
|
47
|
+
default, #{name} tries to push to an upstream Git
|
48
|
+
repository whenever it exports from Fossil to Git.
|
39
49
|
|
40
50
|
-t Dump export to STDOUT rather than sending it to Git.
|
41
|
-
This overrides the `-l` option and GITREPO argument,
|
42
|
-
present.
|
51
|
+
This overrides the `-l` option and GITREPO argument,
|
52
|
+
if present.
|
43
53
|
|
44
54
|
GITREPO Specify the location of your local Git repository.
|
45
55
|
|
@@ -53,4 +63,25 @@ class FossGit
|
|
53
63
|
|
54
64
|
EOF
|
55
65
|
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def get_repository_path
|
70
|
+
File.absolute_path get_element_matching :repository
|
71
|
+
end
|
72
|
+
|
73
|
+
def get_element_matching key
|
74
|
+
key_regex = /^#{key}: +/
|
75
|
+
fossil_status.select {|line| line.match key_regex }.first.sub key_regex, ''
|
76
|
+
end
|
77
|
+
|
78
|
+
def fossil_status
|
79
|
+
Dir.chdir checkout_path
|
80
|
+
|
81
|
+
if system 'fossil status'
|
82
|
+
`fossil status`.split(/\n/)
|
83
|
+
else
|
84
|
+
raise ArgumentError, "#{checkout_path} is not a valid checkout path"
|
85
|
+
end
|
86
|
+
end
|
56
87
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fossgit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Perrin
|
@@ -10,8 +10,7 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
14
|
-
Maintain a presence in Git hosting for Fossil projects.
|
13
|
+
description: " Maintain a presence in Git hosting for Fossil projects.\n"
|
15
14
|
email: code@apotheon.net
|
16
15
|
executables:
|
17
16
|
- fossgit
|