pr2gpx 0.2.0 → 0.2.1
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.
- data/README.md +7 -0
- data/lib/pr2gpx.rb +15 -10
- data/lib/pr2gpx/options.rb +6 -4
- metadata +1 -1
data/README.md
CHANGED
@@ -18,6 +18,8 @@ The output is either one track for each station, a list of waypoints for every p
|
|
18
18
|
|
19
19
|
The results can either be saved into a single file containing everything, or it can be split into one file for each station.
|
20
20
|
|
21
|
+
If no input path is given, pr2gpx reads from STDIN. If no output path is given, pr2gpx writes to STDOUT.
|
22
|
+
|
21
23
|
|
22
24
|
Installing
|
23
25
|
----------
|
@@ -52,6 +54,11 @@ Writes the most recent position report of CALL1, CALL2 and CALL3 into positions.
|
|
52
54
|
Writes the 10 most recent position reports of CALL1, CALL2 and CALL3 into PR_CALL1.gpx, PR_CALL2.gpx and PR_CALL3.gpx in C:\ProgramData\opencpn\layers.
|
53
55
|
|
54
56
|
|
57
|
+
curl http://www.winlink.org/dotnet/maps/RSSPositionReports.aspx?callsign=CALL1 | pr2gpx --last 5 --output C:\ProgramData\opencpn\layers --split
|
58
|
+
|
59
|
+
Downloads the data for CALL1 from Winlink and writes the 5 most recent position reports into PR_CALL1.gpx in C:\ProgramData\opencpn\layers.
|
60
|
+
|
61
|
+
|
55
62
|
Developing
|
56
63
|
----------
|
57
64
|
|
data/lib/pr2gpx.rb
CHANGED
@@ -75,21 +75,26 @@ if errors
|
|
75
75
|
exit
|
76
76
|
end
|
77
77
|
|
78
|
-
# normalize path separators
|
79
|
-
options[:input].gsub!('\\', '/')
|
80
|
-
options[:output].gsub!('\\', '/') if options[:output]
|
81
|
-
|
82
78
|
filter = ReportFilter.new options[:callsign]
|
83
79
|
|
84
|
-
|
85
|
-
|
80
|
+
stations = if options[:input]
|
81
|
+
# normalize path separators
|
82
|
+
options[:input].gsub!('\\', '/')
|
83
|
+
options[:output].gsub!('\\', '/') if options[:output]
|
84
|
+
|
85
|
+
search_path = if File.directory?(options[:input])
|
86
|
+
"#{options[:input]}/#{options[:recurse] ? '**/' : ''}*.*"
|
87
|
+
else
|
88
|
+
options[:input]
|
89
|
+
end
|
90
|
+
|
91
|
+
$stderr.puts "Searching #{search_path}" if $verbose
|
92
|
+
|
93
|
+
load_data(enumerate_files(search_path), filter)
|
86
94
|
else
|
87
|
-
|
95
|
+
load_data([$stdin.read()], filter)
|
88
96
|
end
|
89
97
|
|
90
|
-
$stderr.puts "Searching #{search_path}" if $verbose
|
91
|
-
|
92
|
-
stations = load_data(enumerate_files(search_path), filter)
|
93
98
|
filter_data! stations, options[:last]
|
94
99
|
|
95
100
|
if options[:split] # create one document for each station
|
data/lib/pr2gpx/options.rb
CHANGED
@@ -3,7 +3,7 @@ require 'optparse'
|
|
3
3
|
# If options are valid, returns a hash of options, otherwise nil.
|
4
4
|
def parse_options argv
|
5
5
|
options = {}
|
6
|
-
mandatory = [
|
6
|
+
mandatory = []
|
7
7
|
|
8
8
|
def set_option options, name
|
9
9
|
->(options, name, value) { options[name] = value }.curry.(options, name)
|
@@ -11,7 +11,7 @@ def parse_options argv
|
|
11
11
|
|
12
12
|
OptionParser.new do |o|
|
13
13
|
options[:input] = nil
|
14
|
-
o.on '-i', '--input PATH',
|
14
|
+
o.on '-i', '--input [PATH]',
|
15
15
|
'Specifies the path to be searched for files containing position reports.',
|
16
16
|
set_option(options, :input)
|
17
17
|
|
@@ -102,8 +102,10 @@ end
|
|
102
102
|
def validate_options options
|
103
103
|
errors = []
|
104
104
|
|
105
|
-
if
|
106
|
-
|
105
|
+
if options[:input]
|
106
|
+
if not File.exists?(options[:input])
|
107
|
+
errors << 'Path specified in --input does not exist.'
|
108
|
+
end
|
107
109
|
end
|
108
110
|
|
109
111
|
if options[:split]
|