9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/vnews.rb', line 9
def self.start
["tidy", "fmt"].each do |x|
if `which #{x}` == ''
puts "Before you can run Vnews, you need to install #{x}."
exit
end
end
if ! File.exists?(File.expand_path(Vnews::Config::CONFIGPATH))
puts "Missing #{Vnews::Config::CONFIGPATH}"
puts "Generating stub config file at #{Vnews::Config::CONFIGPATH}"
File.open(Vnews::Config::CONFIGPATH, 'w') {|f| f.write(Config.stub_config)}
puts "Please edit this file and then run `vnews --create-db` to create your Vnews MySQL database."
exit
end
if ['--version', '-v', "--help", "-h"].include?(ARGV.first)
puts "vnews #{Vnews::VERSION}"
puts "by Daniel Choi [email protected]"
puts
puts <<-END
---
Usage: vnews
When you run Vnews for the first time, a .vnewsrc configuration file will be
generated in your home directory. You must edit this file to match your MySQL
settings, and then run `vnews --create-db`.
After that you can run `vnews` to read your feeds.
Specific options:
-u, --update Update all feeds and folders before starting vnews
-U Update all feeds and folders without starting vnews session
--opml [opml file] Import feeds from an OPML file
--create-db Create MySQL database configured in .vnewrc
-v, --version Show version
-h, --help Show this message
Please visit http://danielchoi.com/software/vnews.html for more help.
---
END
exit
end
if ARGV.first == "--create-db"
c = File.read(Vnews::Config::CONFIGPATH)
top, bottom = c.split(/^\s*$/,2)
dbconfig = YAML::load(top)
puts "Creating database: #{dbconfig['database']}"
Vnews::Sql.create_db dbconfig
puts "OK if everything went ok, you can create your feeds and folders with `vnews -u`."
exit
end
if ARGV.first == "--opml"
require 'vnews/opml'
puts "Importing OPML file #{ARGV[1]}"
Vnews::Opml.import File.read(ARGV[1])
puts "Rewriting config file #{Vnews::Config::CONFIGPATH} to reflect changes."
Vnews::Config.rewrite_config
puts "Done."
end
if ['--update', '-u', '-U'].include?(ARGV.first)
Vnews::Config.update_folders
if ARGV.first == '-U'
exit
end
end
puts "Starting vnews #{Vnews::VERSION}"
Vnews.sql_client
vim = ENV['VNEWS_VIM'] || 'vim'
vimscript = File.join(File.dirname(__FILE__), "vnews.vim")
vim_command = "#{vim} -S #{vimscript} "
STDERR.puts vim_command
system(vim_command)
if vim == 'mvim'
DRb.thread.join
end
end
|