my_help 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -2
- data/Gemfile.lock +1 -1
- data/README.org +3 -3
- data/lib/my_help/my_help_controll.rb +20 -15
- data/lib/my_help/version.rb +1 -1
- data/{before_gli/lib/templates/emacs_help.org → lib/templates/emacs.org} +0 -0
- data/{before_gli/lib/templates/template_help.org → lib/templates/help_template.org} +0 -0
- data/{before_gli/lib/templates/org_help.org → lib/templates/org.org} +0 -0
- data/{before_gli/lib/templates/my_todo.org → lib/templates/todo.org} +2 -2
- metadata +6 -38
- data/before_gli/Dockerfile.template +0 -13
- data/before_gli/Gemfile +0 -5
- data/before_gli/Gemfile.lock +0 -63
- data/before_gli/bin/console +0 -14
- data/before_gli/bin/setup +0 -8
- data/before_gli/exe/e_h +0 -4
- data/before_gli/exe/emacs_help +0 -4
- data/before_gli/exe/m_t +0 -4
- data/before_gli/exe/my_help +0 -6
- data/before_gli/exe/my_todo +0 -4
- data/before_gli/exe/o_h +0 -4
- data/before_gli/exe/org_help +0 -4
- data/before_gli/lib/emacs_help.rb +0 -137
- data/before_gli/lib/my_help/my_help_controll.rb +0 -134
- data/before_gli/lib/my_help/org2yml.rb +0 -47
- data/before_gli/lib/my_help/specific_help.rb +0 -2
- data/before_gli/lib/my_help/test.rb +0 -29
- data/before_gli/lib/my_help/version.rb +0 -3
- data/before_gli/lib/my_help/yml2org.rb +0 -34
- data/before_gli/lib/my_help.rb +0 -204
- data/before_gli/lib/my_help_new.rb +0 -54
- data/before_gli/lib/my_help_thor.rb +0 -170
- data/before_gli/lib/specific_help.rb +0 -172
- data/before_gli/lib/specific_help_bu.rb +0 -233
- data/before_gli/lib/specific_help_opt.rb +0 -71
- data/before_gli/lib/specific_help_thor.rb +0 -172
- data/before_gli/make_docker.sh +0 -5
- data/before_gli/my_help.gemspec +0 -34
- data/lib/templates/emacs_help.org +0 -50
- data/lib/templates/my_todo.org +0 -11
- data/lib/templates/org_help.org +0 -64
- data/lib/templates/template_help.org +0 -8
@@ -1,47 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require 'yaml'
|
3
|
-
require 'pp'
|
4
|
-
|
5
|
-
class OrgToYaml
|
6
|
-
attr_accessor :help_cont
|
7
|
-
|
8
|
-
def initialize(file)
|
9
|
-
@help_cont = {} #{ head: [File.basename(file, '.org')] }
|
10
|
-
@head_sym = nil
|
11
|
-
@conts = ''
|
12
|
-
org_to_yaml(File.readlines(file))
|
13
|
-
end
|
14
|
-
|
15
|
-
def make_options(line)
|
16
|
-
head, desc = line.split(':')
|
17
|
-
desc ||= head.to_s
|
18
|
-
short = "-#{head[0]}"
|
19
|
-
{ short: short, long: "--#{head}", desc: desc }
|
20
|
-
end
|
21
|
-
|
22
|
-
def next_cont(head)
|
23
|
-
@help_cont[@head_sym][:cont] = @conts if @head_sym
|
24
|
-
return if head == 'EOF'
|
25
|
-
@conts = ''
|
26
|
-
@head_sym = head.to_sym
|
27
|
-
@help_cont[@head_sym] = {
|
28
|
-
opts: make_options(head), title: head, cont: ''
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
def org_to_yaml(lines)
|
33
|
-
lines.each do |line|
|
34
|
-
if m = line.match(/^\* (.+)/)
|
35
|
-
next_cont m[1]
|
36
|
-
else
|
37
|
-
@conts << line
|
38
|
-
end
|
39
|
-
end
|
40
|
-
next_cont 'EOF'
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
if $PROGRAM_NAME == __FILE__
|
45
|
-
helps = OrgToYaml.new(ARGV[0])
|
46
|
-
pp helps.help_cont
|
47
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require 'yaml'
|
3
|
-
require 'coderay'
|
4
|
-
require 'pp'
|
5
|
-
yaml =<<EOF
|
6
|
-
:file:
|
7
|
-
:opts:
|
8
|
-
:short: "-f"
|
9
|
-
:long: "--ファイル"
|
10
|
-
:desc: File操作
|
11
|
-
:title: ファイル操作file
|
12
|
-
:cont:
|
13
|
-
- c-x c-f, Find file, ファイルを開く
|
14
|
-
- c-x c-s, Save file, ファイルを保存
|
15
|
-
- c-x c-w, Write file NAME, ファイルを別名で書き込む
|
16
|
-
EOF
|
17
|
-
pp data=YAML.load(yaml)
|
18
|
-
print YAML.dump(data)
|
19
|
-
|
20
|
-
|
21
|
-
data0={:new_item=>
|
22
|
-
{:opts=>{:short=>"-n", :long=>"--new_item", :desc=>"new item"},
|
23
|
-
:title=>"new_item",
|
24
|
-
:cont=>
|
25
|
-
["new cont"]}}
|
26
|
-
|
27
|
-
print YAML.dump(data0)
|
28
|
-
puts CodeRay.scan(YAML.dump(data0),:yaml).term
|
29
|
-
puts CodeRay.scan(yaml,:yaml).term
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require "yaml"
|
3
|
-
|
4
|
-
class YmlToOrg
|
5
|
-
attr_accessor :contents
|
6
|
-
|
7
|
-
def initialize(file)
|
8
|
-
@contents = ''
|
9
|
-
cont = ''
|
10
|
-
if file.kind_of?(String)
|
11
|
-
cont = YAML.load(File.read(file))
|
12
|
-
elsif file.kind_of?(Hash)
|
13
|
-
cont = file
|
14
|
-
end
|
15
|
-
yml_to_org(cont)
|
16
|
-
end
|
17
|
-
|
18
|
-
def plain_element(key, cont)
|
19
|
-
@contents << cont[:cont].join("\n")+"\n" if cont.include?(:cont)
|
20
|
-
end
|
21
|
-
|
22
|
-
def yml_to_org(help_cont)
|
23
|
-
pp help_cont
|
24
|
-
@contents << "#+STARTUP: indent nolineimages\n" # nofold
|
25
|
-
help_cont.each_pair do |key, cont|
|
26
|
-
@contents << "* #{key.to_s}\n"
|
27
|
-
plain_element(key, cont)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
if __FILE__ == $0
|
33
|
-
print YmlToOrg.new(ARGV[0]).contents
|
34
|
-
end
|
data/before_gli/lib/my_help.rb
DELETED
@@ -1,204 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require "optparse"
|
3
|
-
require "yaml"
|
4
|
-
require 'my_help/org2yml'
|
5
|
-
require 'my_help/yml2org'
|
6
|
-
require "fileutils"
|
7
|
-
require "my_help/version"
|
8
|
-
require "systemu"
|
9
|
-
require "colorize"
|
10
|
-
|
11
|
-
module MyHelp
|
12
|
-
class Command
|
13
|
-
|
14
|
-
def self.run(argv=[])
|
15
|
-
new(argv).execute
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize(argv=[])
|
19
|
-
@argv = argv
|
20
|
-
@template_dir = File.expand_path("../../lib/templates", __FILE__)
|
21
|
-
@exe_dir = File.expand_path("../../exe", __FILE__)
|
22
|
-
@local_help_dir = File.join(ENV['HOME'],'.my_help')
|
23
|
-
@system_inst_dir = RbConfig::CONFIG['bindir']
|
24
|
-
set_help_dir_if_not_exists
|
25
|
-
end
|
26
|
-
|
27
|
-
def set_help_dir_if_not_exists
|
28
|
-
return if File::exists?(@local_help_dir)
|
29
|
-
FileUtils.mkdir_p(@local_help_dir, :verbose=>true)
|
30
|
-
Dir.entries(@template_dir).each{|file|
|
31
|
-
next if file=='template_help.org'
|
32
|
-
file_path=File.join(@local_help_dir,file)
|
33
|
-
next if File::exists?(file_path)
|
34
|
-
FileUtils.cp((File.join(@template_dir,file)),@local_help_dir,:verbose=>true)
|
35
|
-
}
|
36
|
-
end
|
37
|
-
|
38
|
-
def execute
|
39
|
-
@argv << '--help' if @argv.size==0
|
40
|
-
command_parser = OptionParser.new do |opt|
|
41
|
-
opt.on('-v', '--version','show program Version.') { |v|
|
42
|
-
opt.version = MyHelp::VERSION
|
43
|
-
puts opt.ver
|
44
|
-
}
|
45
|
-
opt.on('-l', '--list', 'list specific helps'){list_helps}
|
46
|
-
opt.on('-e NAME', '--edit NAME', 'edit NAME help(eg test_help)'){|file| edit_help(file)}
|
47
|
-
opt.on('-i NAME', '--init NAME', 'initialize NAME help(eq test_help)'){|file| init_help(file)}
|
48
|
-
opt.on('-m', '--make', 'make executables for all helps'){make_help}
|
49
|
-
opt.on('-c', '--clean', 'clean up exe dir.'){clean_exe_dir}
|
50
|
-
opt.on('-y', '--yml2org [FILE]', 'convert FILE from yaml to org format'){|file| yml2org(file)}
|
51
|
-
opt.on('--install_local','install local after edit helps'){install_local}
|
52
|
-
opt.on('--delete NAME','delete NAME help'){|file| delete_help(file)}
|
53
|
-
end
|
54
|
-
begin
|
55
|
-
command_parser.parse!(@argv)
|
56
|
-
rescue=> eval
|
57
|
-
p eval
|
58
|
-
end
|
59
|
-
exit
|
60
|
-
end
|
61
|
-
|
62
|
-
def yml2org(file)
|
63
|
-
p target = File.join(@local_help_dir,file+'.yml')
|
64
|
-
cont = YmlToOrg.new(target).contents
|
65
|
-
dump = file+'.org'
|
66
|
-
File.open(dump, 'w'){|file| file.print cont }
|
67
|
-
delete_help(file)
|
68
|
-
end
|
69
|
-
|
70
|
-
def delete_help(file)
|
71
|
-
del_files=[]
|
72
|
-
del_files << File.join(@local_help_dir,file+'.org')
|
73
|
-
exe_dir=File.join(File.expand_path('../..',@template_dir),'exe')
|
74
|
-
exe_0_dir= @exe_dir
|
75
|
-
del_files << File.join(exe_dir,file)
|
76
|
-
del_files << File.join(exe_0_dir,file)
|
77
|
-
del_files << File.join(exe_dir,short_name(file))
|
78
|
-
del_files << File.join(exe_0_dir,short_name(file))
|
79
|
-
del_files.each do |file|
|
80
|
-
print "Are you sure to delete "+file.blue+"?[Ynq] ".red
|
81
|
-
case gets.chomp
|
82
|
-
when 'Y'
|
83
|
-
begin
|
84
|
-
FileUtils.rm(file,:verbose=>true)
|
85
|
-
rescue => error
|
86
|
-
puts error.to_s.red
|
87
|
-
end
|
88
|
-
when 'n' ; next
|
89
|
-
when 'q' ; exit
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def install_local
|
95
|
-
local_help_entries.each do |file|
|
96
|
-
title = file.split('.')[0]
|
97
|
-
[title, short_name(title)].each do |name|
|
98
|
-
source = File.join(@exe_dir, name)
|
99
|
-
target = File.join(@system_inst_dir, name)
|
100
|
-
FileUtils.cp(source, target, verbose: true)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
def short_name(file)
|
106
|
-
file_name=file.split('_')
|
107
|
-
return file_name[0][0]+"_"+file_name[1][0]
|
108
|
-
end
|
109
|
-
|
110
|
-
def make_help
|
111
|
-
local_help_entries.each{|file|
|
112
|
-
title = file.split('.')[0]
|
113
|
-
exe_cont=<<"EOS"
|
114
|
-
#!/usr/bin/env ruby
|
115
|
-
require 'specific_help'
|
116
|
-
help_file = File.join(ENV['HOME'],'.my_help','#{file}')
|
117
|
-
SpecificHelp::Command.run(help_file, ARGV)
|
118
|
-
EOS
|
119
|
-
[title, short_name(title)].each do |name|
|
120
|
-
p target=File.join(@exe_dir, name)
|
121
|
-
File.open(target,'w'){|file| file.print exe_cont}
|
122
|
-
FileUtils.chmod('a+x', target, :verbose => true)
|
123
|
-
end
|
124
|
-
}
|
125
|
-
install_local
|
126
|
-
end
|
127
|
-
|
128
|
-
def clean_exe_dir
|
129
|
-
local_help_entries.each{|file|
|
130
|
-
next if ['emacs_help.org', 'my_help.org',
|
131
|
-
'my_todo.org', 'org_help.org'].include?(file)
|
132
|
-
file = File.basename(file,'.org')
|
133
|
-
[file, short_name(file)].each{|name|
|
134
|
-
p target=File.join(@exe_dir, name)
|
135
|
-
begin
|
136
|
-
FileUtils::Verbose.rm(target)
|
137
|
-
rescue=> eval
|
138
|
-
puts eval.to_s.red
|
139
|
-
end
|
140
|
-
}
|
141
|
-
}
|
142
|
-
end
|
143
|
-
|
144
|
-
def init_help(file)
|
145
|
-
p target_help=File.join(@local_help_dir,file+'.org')
|
146
|
-
if File::exists?(target_help)
|
147
|
-
puts "File exists. --delete it first to initialize it."
|
148
|
-
exit
|
149
|
-
end
|
150
|
-
p template = File.join(@template_dir,'template_help.org')
|
151
|
-
FileUtils::Verbose.cp(template,target_help)
|
152
|
-
end
|
153
|
-
|
154
|
-
def edit_help(file)
|
155
|
-
target_help = File.join(@local_help_dir,file)
|
156
|
-
['.yml','.org'].each do |ext|
|
157
|
-
p target_help += ext if local_help_entries.member?(file+ext)
|
158
|
-
end
|
159
|
-
system "emacs #{target_help}"
|
160
|
-
end
|
161
|
-
|
162
|
-
def local_help_entries
|
163
|
-
entries= []
|
164
|
-
Dir.entries(@local_help_dir).each{|file|
|
165
|
-
next unless file.include?('_')
|
166
|
-
next if file[0]=='#' or file[-1]=='~' or file[0]=='.'
|
167
|
-
next if file.match(/(.+)_e\.org/) # OK?
|
168
|
-
entries << file
|
169
|
-
}
|
170
|
-
return entries
|
171
|
-
end
|
172
|
-
|
173
|
-
def auto_load(file_path)
|
174
|
-
case File.extname(file_path)
|
175
|
-
when '.yml'
|
176
|
-
cont = YAML.load(File.read(file_path))
|
177
|
-
when '.org'
|
178
|
-
cont = OrgToYaml.new(file_path).help_cont
|
179
|
-
else
|
180
|
-
puts "Not handling file types of #{file}"
|
181
|
-
end
|
182
|
-
cont
|
183
|
-
end
|
184
|
-
|
185
|
-
def list_helps
|
186
|
-
print "Specific help file:\n"
|
187
|
-
local_help_entries.each do |file|
|
188
|
-
file_path=File.join(@local_help_dir,file)
|
189
|
-
title = file.split('.')[0]
|
190
|
-
begin
|
191
|
-
help = auto_load(file_path)
|
192
|
-
rescue=> eval
|
193
|
-
p eval.to_s.red
|
194
|
-
print "\n YAML load error in #{file}.".red
|
195
|
-
print " Revise it by "+"my_help --edit #{title}\n".red
|
196
|
-
exit
|
197
|
-
end
|
198
|
-
desc = help[:head][:cont].split("\n")[0]
|
199
|
-
print " #{title}\t: #{desc}\n".blue
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
end
|
204
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require "optparse"
|
3
|
-
require "yaml"
|
4
|
-
require 'my_help/org2yml'
|
5
|
-
require 'my_help/yml2org'
|
6
|
-
require 'my_help/my_help_controll'
|
7
|
-
require "fileutils"
|
8
|
-
require "my_help/version"
|
9
|
-
require "systemu"
|
10
|
-
require "colorize"
|
11
|
-
|
12
|
-
module MyHelp
|
13
|
-
class Command
|
14
|
-
def self.run(argv=[])
|
15
|
-
new(argv).execute
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize(argv=[])
|
19
|
-
@argv = argv
|
20
|
-
@control = MyHelp::Control.new(argv)
|
21
|
-
end
|
22
|
-
|
23
|
-
def execute
|
24
|
-
@argv << '--help' if @argv.size==0
|
25
|
-
command_parser = OptionParser.new do |opt|
|
26
|
-
opt.on('-v', '--version','show program Version.') { |v|
|
27
|
-
opt.version = MyHelp::VERSION
|
28
|
-
puts opt.ver
|
29
|
-
}
|
30
|
-
opt.on('-l', '--list [FILE]', 'list all helps or FILE'){|file| @control.list_helps(file)}
|
31
|
-
opt.on('-i ITEM', '--item NAME', 'show NAME item'){|item| @item = item}
|
32
|
-
opt.on('-s FILE', '--show FILE', 'show FILE'){|file| @control.show(file, @item)}
|
33
|
-
opt.on('-e NAME', '--edit NAME', 'edit NAME help(eg test_help)'){|file| @control.edit_help(file) }
|
34
|
-
opt.on('-m NAME', '--make NAME', 'make NAME help(eq test_help)'){|file| @control.init_help(file)}
|
35
|
-
opt.on('-y', '--yml2org [FILE]', 'convert FILE from yaml to org format'){|file| yml2org(file)}
|
36
|
-
opt.on('--delete NAME','delete NAME help'){|file| @control.delete_help(file)}
|
37
|
-
end
|
38
|
-
begin
|
39
|
-
command_parser.parse!(@argv)
|
40
|
-
rescue=> eval
|
41
|
-
p eval
|
42
|
-
end
|
43
|
-
exit
|
44
|
-
end
|
45
|
-
|
46
|
-
def yml2org(file)
|
47
|
-
p target = File.join(@local_help_dir,file+'.yml')
|
48
|
-
cont = YmlToOrg.new(target).contents
|
49
|
-
dump = file+'.org'
|
50
|
-
File.open(dump, 'w'){|file| file.print cont }
|
51
|
-
delete_help(file)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,170 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require "optparse"
|
3
|
-
require "yaml"
|
4
|
-
require "fileutils"
|
5
|
-
require "my_help/version"
|
6
|
-
require "systemu"
|
7
|
-
require "thor"
|
8
|
-
|
9
|
-
module MyHelp
|
10
|
-
class Command < Thor
|
11
|
-
=begin
|
12
|
-
def self.run(argv=[])
|
13
|
-
new(argv).execute
|
14
|
-
end
|
15
|
-
=end
|
16
|
-
|
17
|
-
def initialize(*args)
|
18
|
-
super
|
19
|
-
# @argv = args
|
20
|
-
@default_help_dir = File.expand_path("../../lib/templates", __FILE__)
|
21
|
-
@local_help_dir = File.join(ENV['HOME'],'.my_help')
|
22
|
-
set_help_dir_if_not_exists
|
23
|
-
end
|
24
|
-
|
25
|
-
desc 'version, -v', 'show program version'
|
26
|
-
# map "--version" => "version"
|
27
|
-
map "--version" => "version"
|
28
|
-
def version
|
29
|
-
puts MyHelp::VERSION
|
30
|
-
end
|
31
|
-
|
32
|
-
desc 'delete NAME, --delete NAME','delete NAME help'
|
33
|
-
map "--delete" => "delete"
|
34
|
-
def delete_help(file)
|
35
|
-
del_files=[]
|
36
|
-
del_files << File.join(@local_help_dir,file)
|
37
|
-
exe_dir=File.join(File.expand_path('../..',@default_help_dir),'exe')
|
38
|
-
del_files << File.join(exe_dir,file)
|
39
|
-
p del_files << File.join(exe_dir,short_name(file))
|
40
|
-
print "Are you sure to delete these files?[yes]"
|
41
|
-
if gets.chomp=='yes' then
|
42
|
-
del_files.each{|file| FileUtils.rm(file,:verbose=>true)}
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
USER_INST_DIR="USER INSTALLATION DIRECTORY:"
|
47
|
-
INST_DIR="INSTALLATION DIRECTORY:"
|
48
|
-
desc 'install_local, --install_local','install local after edit helps'
|
49
|
-
map "--install_local" => "install_local"
|
50
|
-
def install_local
|
51
|
-
|
52
|
-
Dir.chdir(File.expand_path('../..',@default_help_dir))
|
53
|
-
p pwd_dir = Dir.pwd
|
54
|
-
# check that the working dir should not the gem installed dir,
|
55
|
-
# which destroys itself.
|
56
|
-
status, stdout, stderr = systemu "gem env|grep '#{USER_INST_DIR}'"
|
57
|
-
if stdout==""
|
58
|
-
status, stdout, stderr = systemu "gem env|grep '#{INST_DIR}'"
|
59
|
-
end
|
60
|
-
p system_inst_dir = stdout.split(': ')[1].chomp
|
61
|
-
if pwd_dir == system_inst_dir
|
62
|
-
puts "Download my_help from github, and using bundle for edit helps\n"
|
63
|
-
puts "Read README in detail.\n"
|
64
|
-
exit
|
65
|
-
end
|
66
|
-
system "git add -A"
|
67
|
-
system "git commit -m 'update exe dirs'"
|
68
|
-
system "Rake install:local"
|
69
|
-
end
|
70
|
-
|
71
|
-
desc 'clean, --clean', 'clean up exe dir.'
|
72
|
-
map "--clean" => "clean"
|
73
|
-
def clean
|
74
|
-
local_help_entries.each{|file|
|
75
|
-
next if file.include?('emacs_help') or file.include?('e_h')
|
76
|
-
next if file.include?('git_help') or file.include?('t_h')
|
77
|
-
[file, short_name(file)].each{|name|
|
78
|
-
p target=File.join('exe',name)
|
79
|
-
FileUtils::Verbose.rm(target)
|
80
|
-
}
|
81
|
-
}
|
82
|
-
end
|
83
|
-
|
84
|
-
desc 'init NAME, --init NAME', 'initialize NAME help(eg test_help).'
|
85
|
-
map "--init" => "init"
|
86
|
-
def init(file)
|
87
|
-
p target_help=File.join(@local_help_dir,file+'.yml')
|
88
|
-
if File::exists?(target_help)
|
89
|
-
puts "File exists. rm it first to initialize it."
|
90
|
-
exit
|
91
|
-
end
|
92
|
-
p template = File.join(@default_help_dir,'template_help.yml')
|
93
|
-
FileUtils::Verbose.cp(template,target_help)
|
94
|
-
command_template = <<EOS
|
95
|
-
EOS
|
96
|
-
end
|
97
|
-
|
98
|
-
desc 'edit NAME, --edit NAME', 'edit NAME help(eg test_help)'
|
99
|
-
map "--edit" => "edit"
|
100
|
-
def edit(file)
|
101
|
-
p target_help=File.join(@local_help_dir,file+'.yml')
|
102
|
-
system "emacs #{target_help}"
|
103
|
-
end
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
desc 'list, --list', 'list specific helps'
|
108
|
-
map "--list" => "list"
|
109
|
-
def list
|
110
|
-
print "Specific help file:\n"
|
111
|
-
local_help_entries.each{|file|
|
112
|
-
file_path=File.join(@local_help_dir,file)
|
113
|
-
help = YAML.load(File.read(file_path))
|
114
|
-
print " #{file}\t:#{help[:head][0]}\n"
|
115
|
-
}
|
116
|
-
end
|
117
|
-
|
118
|
-
desc 'make, --make', 'make executables for all helps.'
|
119
|
-
map "--make" => "make"
|
120
|
-
def make
|
121
|
-
local_help_entries.each{|file|
|
122
|
-
file_name=file
|
123
|
-
help_name=file
|
124
|
-
help_name=File.basename(help_name,".yml")
|
125
|
-
exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help_opt'\nrequire 'specific_help_thor'\n"
|
126
|
-
exe_cont << "ENV['HELP_NAME']='#{help_name}'\n"
|
127
|
-
exe_cont << "help_file = File.join(ENV['HOME'],'.my_help','#{file_name}')\n"
|
128
|
-
exe_cont << "SpecificHelp::Command.start(ARGV)\n"
|
129
|
-
exe_cont << "SpecificHelpOpt::Command.run(help_file, ARGV)\n"
|
130
|
-
[help_name, short_name(help_name)].each{|name|
|
131
|
-
p target=File.join('exe',name)
|
132
|
-
File.open(target,'w'){|file| file.print exe_cont}
|
133
|
-
FileUtils.chmod('a+x', target, :verbose => true)
|
134
|
-
}
|
135
|
-
}
|
136
|
-
install_local
|
137
|
-
end
|
138
|
-
|
139
|
-
no_commands do
|
140
|
-
def set_help_dir_if_not_exists
|
141
|
-
return if File::exists?(@local_help_dir)
|
142
|
-
FileUtils.mkdir_p(@local_help_dir, :verbose=>true)
|
143
|
-
Dir.entries(@default_help_dir).each{|file|
|
144
|
-
next if file=='template_help'
|
145
|
-
file_path=File.join(@local_help_dir,file)
|
146
|
-
next if File::exists?(file_path)
|
147
|
-
FileUtils.cp((File.join(@default_help_dir,file)),@local_help_dir,:verbose=>true)
|
148
|
-
}
|
149
|
-
end
|
150
|
-
|
151
|
-
# desc 'test2', 'test3'
|
152
|
-
def local_help_entries
|
153
|
-
entries= []
|
154
|
-
Dir.entries(@local_help_dir).each{|file|
|
155
|
-
next unless file.include?('_')
|
156
|
-
next if file[0]=='#' or file[-1]=='~' or file[0]=='.'
|
157
|
-
entries << file
|
158
|
-
}
|
159
|
-
return entries
|
160
|
-
end
|
161
|
-
|
162
|
-
# desc 'test4', 'test5'
|
163
|
-
def short_name(file)
|
164
|
-
file_name=file.split('_')
|
165
|
-
return file_name[0][0]+"_"+file_name[1][0]
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
end
|
170
|
-
end
|