milkode 0.6.3 → 0.7.0
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/Gemfile +3 -4
- data/HISTORY.ja.rdoc +21 -0
- data/HISTORY.rdoc +14 -0
- data/Rakefile +1 -7
- data/VERSION +1 -1
- data/bin/gmilk +1 -1
- data/bin/milk +3 -3
- data/lib/milkode/cdstk/cdstk.rb +68 -23
- data/lib/milkode/cdweb/app.rb +1 -1
- data/lib/milkode/cdweb/lib/database.rb +8 -1
- data/lib/milkode/cdweb/views/layout.haml +1 -1
- data/lib/milkode/cli.rb +249 -0
- data/lib/milkode/grep/cli_grep.rb +2 -2
- data/milkode.gemspec +22 -16
- data/test/milkode_test_work.rb +1 -1
- data/test/test_cdstk.rb +1 -1
- data/test/{test_cli_cdstk.rb → test_cli.rb} +41 -28
- data/test/test_yaml_file_wrapper.rb +6 -4
- metadata +82 -45
- data/Gemfile.lock +0 -18
- data/lib/milkode/cdstk/cli_cdstk.rb +0 -149
- data/lib/milkode/cdstk/cli_cdstksub.rb +0 -184
- data/test/test_bin_exec.rb +0 -28
data/Gemfile
CHANGED
@@ -2,11 +2,10 @@ source "http://rubygems.org"
|
|
2
2
|
# Add dependencies required to use your gem here.
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
|
-
|
5
|
+
gemspec
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
|
-
gem "bundler"
|
10
|
-
gem "jeweler"
|
11
|
-
gem "rcov", ">= 0"
|
9
|
+
gem "bundler"
|
10
|
+
gem "jeweler"
|
12
11
|
end
|
data/HISTORY.ja.rdoc
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
=== 0.7.0 2012/05/05
|
2
|
+
|
3
|
+
* milk
|
4
|
+
* 'milk add git://..' に対応、update時に`git pull`するように
|
5
|
+
* Thor を利用するように (thanks tomykaira)
|
6
|
+
|
7
|
+
* gmilk
|
8
|
+
* gotolineモード(-g)で、複数のパスを渡せるように
|
9
|
+
* 例: gmilk -g VERSION:1 bin/milk:9 bin/gmilk:9 lib/milkode/cdweb/app.rb:23
|
10
|
+
* Windows環境(SJIS) + Ruby1.9 でエンコーディングエラーが起きる問題を修正
|
11
|
+
|
12
|
+
* milk web
|
13
|
+
* カスタマイズしても<title></title>部分がMilkodeのままになっていた問題を修正
|
14
|
+
* 現在位置検索が正しく動いてない問題を修正
|
15
|
+
|
16
|
+
* common
|
17
|
+
* Package#options[:update_with_git_pull] を追加
|
18
|
+
* Gemfile.lock を無視した (thanks tomykaira)
|
19
|
+
* Remove dependency on rcov (thanks tomykaira)
|
20
|
+
* 環境によってYAMLオブジェクトの構文が異なり、テストが落ちる可能性があるのを対策 (thanks tomykaira)
|
21
|
+
|
1
22
|
=== 0.6.0 2012/03/28
|
2
23
|
|
3
24
|
* milk web
|
data/HISTORY.rdoc
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
=== 0.7.0 2012/05/05
|
2
|
+
|
3
|
+
* milk
|
4
|
+
* `milk add git://..` to enabled. When you update `git pull` like you.
|
5
|
+
* Use Thor
|
6
|
+
* gmilk
|
7
|
+
* gotoline mode(-g) enabled multi args.
|
8
|
+
* Sample: gmilk -g VERSION:1 bin/milk:9 bin/gmilk:9 lib/milkode/cdweb/app.rb:23
|
9
|
+
* Windows(SJIS) + Ruby1.9 support
|
10
|
+
* milk web
|
11
|
+
* Bug fix
|
12
|
+
* common
|
13
|
+
* Bug fix
|
14
|
+
|
1
15
|
=== 0.6.0 2012/03/28
|
2
16
|
|
3
17
|
* milk web
|
data/Rakefile
CHANGED
@@ -32,6 +32,7 @@ Jeweler::Tasks.new do |gem|
|
|
32
32
|
gem.add_runtime_dependency 'archive-zip', '>=0.4.0'
|
33
33
|
gem.add_runtime_dependency 'haml', '>=3.1.2'
|
34
34
|
gem.add_runtime_dependency 'sass', '>=3.1.3'
|
35
|
+
gem.add_runtime_dependency 'thor', '~> 0.15.0'
|
35
36
|
|
36
37
|
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
37
38
|
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
@@ -67,13 +68,6 @@ task :test_all do
|
|
67
68
|
system('rake test')
|
68
69
|
end
|
69
70
|
|
70
|
-
# require 'rcov/rcovtask'
|
71
|
-
# Rcov::RcovTask.new do |test|
|
72
|
-
# test.libs << 'test'
|
73
|
-
# test.pattern = 'test/**/test_*.rb'
|
74
|
-
# test.verbose = true
|
75
|
-
# end
|
76
|
-
|
77
71
|
task :default => :test
|
78
72
|
|
79
73
|
require 'rdoc/task'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
data/bin/gmilk
CHANGED
data/bin/milk
CHANGED
data/lib/milkode/cdstk/cdstk.rb
CHANGED
@@ -9,6 +9,7 @@ require 'pathname'
|
|
9
9
|
require 'milkode/common/grenfiletest'
|
10
10
|
require 'milkode/common/util'
|
11
11
|
require 'milkode/common/dir'
|
12
|
+
require 'milkode/findgrep/findgrep'
|
12
13
|
include Milkode
|
13
14
|
require 'kconv'
|
14
15
|
begin
|
@@ -66,7 +67,7 @@ module Milkode
|
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
69
|
-
def
|
70
|
+
def assert_compatible
|
70
71
|
db_open(db_file)
|
71
72
|
end
|
72
73
|
|
@@ -75,7 +76,7 @@ module Milkode
|
|
75
76
|
db_open(db_file)
|
76
77
|
|
77
78
|
@yaml.contents.each do |package|
|
78
|
-
|
79
|
+
update_package_in(package)
|
79
80
|
end
|
80
81
|
end
|
81
82
|
end
|
@@ -93,7 +94,7 @@ module Milkode
|
|
93
94
|
if (package)
|
94
95
|
print_result do
|
95
96
|
db_open(db_file)
|
96
|
-
|
97
|
+
update_package_in(package)
|
97
98
|
end
|
98
99
|
else
|
99
100
|
@out.puts "Not registered. If you want to add, 'milk add #{path}'."
|
@@ -104,7 +105,7 @@ module Milkode
|
|
104
105
|
args.each do |name|
|
105
106
|
package = @yaml.find_name(name)
|
106
107
|
if (package)
|
107
|
-
|
108
|
+
update_package_in(package)
|
108
109
|
else
|
109
110
|
@out.puts "Not found package '#{name}'."
|
110
111
|
return
|
@@ -115,12 +116,8 @@ module Milkode
|
|
115
116
|
end
|
116
117
|
end
|
117
118
|
|
118
|
-
def
|
119
|
+
def update_for_grep(dir)
|
119
120
|
db_open(db_file)
|
120
|
-
update_dir(dir)
|
121
|
-
end
|
122
|
-
|
123
|
-
def update_dir(dir)
|
124
121
|
update_dir_in(dir)
|
125
122
|
end
|
126
123
|
|
@@ -140,10 +137,13 @@ module Milkode
|
|
140
137
|
# YAMLに追加
|
141
138
|
package = Package.create(dir, options[:ignore])
|
142
139
|
add_yaml(package)
|
143
|
-
|
140
|
+
|
141
|
+
# オプション設定
|
142
|
+
is_update_with_git_pull = git_url?(v)
|
143
|
+
set_yaml_options(package, options, is_update_with_git_pull)
|
144
144
|
|
145
145
|
# アップデート
|
146
|
-
|
146
|
+
update_dir_in(dir)
|
147
147
|
end
|
148
148
|
rescue ConvetError
|
149
149
|
return
|
@@ -151,23 +151,30 @@ module Milkode
|
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
154
|
-
def set_yaml_options(package,
|
154
|
+
def set_yaml_options(package, options, is_update_with_git_pull)
|
155
155
|
is_dirty = false
|
156
156
|
|
157
|
-
if
|
157
|
+
if options[:no_auto_ignore]
|
158
158
|
dst = package.options
|
159
159
|
dst[:no_auto_ignore] = true
|
160
160
|
package.set_options(dst)
|
161
161
|
is_dirty = true
|
162
162
|
end
|
163
163
|
|
164
|
-
if
|
164
|
+
if options[:name]
|
165
165
|
dst = package.options
|
166
166
|
dst[:name] = src[:name]
|
167
167
|
package.set_options(dst)
|
168
168
|
is_dirty = true
|
169
169
|
end
|
170
170
|
|
171
|
+
if is_update_with_git_pull
|
172
|
+
dst = package.options
|
173
|
+
dst[:update_with_git_pull] = is_update_with_git_pull
|
174
|
+
package.set_options(dst)
|
175
|
+
is_dirty = true
|
176
|
+
end
|
177
|
+
|
171
178
|
if is_dirty
|
172
179
|
@yaml.update(package)
|
173
180
|
@yaml.save
|
@@ -177,7 +184,7 @@ module Milkode
|
|
177
184
|
def add_dir(dir, no_yaml = false)
|
178
185
|
add_yaml(Package.create(dir)) unless no_yaml
|
179
186
|
db_open(db_file)
|
180
|
-
|
187
|
+
update_dir_in(dir)
|
181
188
|
end
|
182
189
|
|
183
190
|
# yamlにパッケージを追加
|
@@ -236,11 +243,18 @@ module Milkode
|
|
236
243
|
def download_file(src)
|
237
244
|
if (src =~ /^https?:/)
|
238
245
|
download_file_in(src)
|
246
|
+
elsif (git_url? src)
|
247
|
+
git_clone_in(src)
|
239
248
|
else
|
240
249
|
src
|
241
250
|
end
|
242
251
|
end
|
243
252
|
|
253
|
+
def git_url?(src)
|
254
|
+
(src =~ /^git:/) != nil
|
255
|
+
end
|
256
|
+
private :git_url?
|
257
|
+
|
244
258
|
def download_file_in(url)
|
245
259
|
alert("download", "#{url}")
|
246
260
|
|
@@ -258,6 +272,23 @@ module Milkode
|
|
258
272
|
filename
|
259
273
|
end
|
260
274
|
|
275
|
+
def git_clone_in(url)
|
276
|
+
alert("git", url)
|
277
|
+
|
278
|
+
dst_dir = File.join(@db_dir, "packages/git")
|
279
|
+
# FileUtils.mkdir_p dst_dir
|
280
|
+
|
281
|
+
filename = File.join(dst_dir, File.basename(url).sub(/\.git\Z/, ""))
|
282
|
+
|
283
|
+
# git output progress to stderr.
|
284
|
+
# `git clone #{url} #{filename} 2>&1`
|
285
|
+
|
286
|
+
# with output
|
287
|
+
system("git clone #{url} #{filename}")
|
288
|
+
|
289
|
+
filename
|
290
|
+
end
|
291
|
+
|
261
292
|
def remove_all
|
262
293
|
print_result do
|
263
294
|
list([], {:verbose => true})
|
@@ -481,14 +512,14 @@ module Milkode
|
|
481
512
|
end
|
482
513
|
end
|
483
514
|
|
484
|
-
def setdb(
|
515
|
+
def setdb(dbpath, options)
|
485
516
|
if (options[:reset])
|
486
517
|
CdstkCommand.setdb_reset
|
487
518
|
@out.puts "Reset default db\n remove: #{Dbdir.milkode_db_dir}\n default_db: #{Dbdir.default_dir}"
|
488
|
-
elsif (
|
519
|
+
elsif (dbpath.nil?)
|
489
520
|
@out.puts Dbdir.default_dir
|
490
521
|
else
|
491
|
-
path = File.expand_path(
|
522
|
+
path = File.expand_path(dbpath)
|
492
523
|
begin
|
493
524
|
CdstkCommand.setdb_set path
|
494
525
|
@out.puts "Set default db #{path}."
|
@@ -498,8 +529,9 @@ module Milkode
|
|
498
529
|
end
|
499
530
|
end
|
500
531
|
|
501
|
-
def mcd(
|
502
|
-
|
532
|
+
def mcd(options)
|
533
|
+
if options[:shell] != 'cygwin'
|
534
|
+
@out.print <<EOF
|
503
535
|
# Copy to '.bashrc'.
|
504
536
|
mcd() {
|
505
537
|
local args="$1 $2 $3 $4 $5 $6 $7 $8 $9"
|
@@ -514,7 +546,11 @@ mcd() {
|
|
514
546
|
pwd
|
515
547
|
fi
|
516
548
|
}
|
549
|
+
EOF
|
550
|
+
end
|
517
551
|
|
552
|
+
if options[:shell] != 'sh'
|
553
|
+
@out.print <<EOF
|
518
554
|
# For Cygwin.
|
519
555
|
mcd() {
|
520
556
|
local args="$1 $2 $3 $4 $5 $6 $7 $8 $9"
|
@@ -530,9 +566,10 @@ mcd() {
|
|
530
566
|
fi
|
531
567
|
}
|
532
568
|
EOF
|
569
|
+
end
|
533
570
|
end
|
534
571
|
|
535
|
-
def info
|
572
|
+
def info
|
536
573
|
milkode_info
|
537
574
|
end
|
538
575
|
|
@@ -547,12 +584,12 @@ EOF
|
|
547
584
|
raise IgnoreError, "Not a package dir: '#{current_dir}'" unless package
|
548
585
|
end
|
549
586
|
|
550
|
-
if options[:
|
587
|
+
if options[:dry_run]
|
551
588
|
# Test mode
|
552
589
|
db_open(db_file)
|
553
590
|
@is_display_info = true
|
554
591
|
@is_silent = true
|
555
|
-
|
592
|
+
update_dir_in(package.directory)
|
556
593
|
elsif options[:delete_all]
|
557
594
|
# Delete all
|
558
595
|
package.set_ignore([])
|
@@ -613,6 +650,14 @@ EOF
|
|
613
650
|
YamlFileWrapper.yaml_file @db_dir
|
614
651
|
end
|
615
652
|
|
653
|
+
def update_package_in(package)
|
654
|
+
if package.options[:update_with_git_pull]
|
655
|
+
Dir.chdir(package.directory) { system("git pull") }
|
656
|
+
end
|
657
|
+
|
658
|
+
update_dir_in(package.directory)
|
659
|
+
end
|
660
|
+
|
616
661
|
def update_dir_in(dir)
|
617
662
|
alert("package", File.basename(dir) )
|
618
663
|
@package_count += 1
|
data/lib/milkode/cdweb/app.rb
CHANGED
@@ -64,13 +64,20 @@ module Milkode
|
|
64
64
|
return [], 0 if packages.empty?
|
65
65
|
else
|
66
66
|
# パッケージ名未指定の時は現在位置もfpathsに含める
|
67
|
-
|
67
|
+
if current_path != ""
|
68
|
+
fpaths << path2fpath(current_path)
|
69
|
+
end
|
68
70
|
end
|
69
71
|
|
70
72
|
# @todo fpathを厳密に検索するには、検索結果からさらに先頭からのパスではないものを除外する
|
71
73
|
records, total_records = searchMain(patterns, packages, fpaths, suffixs, offset, limit)
|
72
74
|
end
|
73
75
|
|
76
|
+
def path2fpath(path)
|
77
|
+
pa = path.split("/")
|
78
|
+
File.join(convert_packages([pa[0]])[0], pa[1..-1].join('/'))
|
79
|
+
end
|
80
|
+
|
74
81
|
def selectAll(offset = 0, limit = -1)
|
75
82
|
table = @documents.select
|
76
83
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
%html(lang='ja')
|
4
4
|
%head
|
5
5
|
%meta(charset='utf-8')
|
6
|
-
%title= [@title,
|
6
|
+
%title= [@title, @setting.home_title].compact.join(' - ')
|
7
7
|
%link(rel="stylesheet" href="/css/milkode.css" type="text/css" media="all")
|
8
8
|
%link(rel="stylesheet" href="/css/coderay.css" type="text/css" media="all")
|
9
9
|
%link(rel="stylesheet" href="/css/coderay-patch.css" type="text/css" media="all")
|
data/lib/milkode/cli.rb
ADDED
@@ -0,0 +1,249 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'thor'
|
3
|
+
require 'milkode/cdstk/cdstk'
|
4
|
+
require 'milkode/common/dbdir.rb'
|
5
|
+
require 'milkode/cdweb/cli_cdweb'
|
6
|
+
require 'milkode/grep/cli_grep'
|
7
|
+
|
8
|
+
module Milkode
|
9
|
+
class CLI < Thor
|
10
|
+
desc "init [db_dir]", "Initialize database directory. If db_dir is omitted"
|
11
|
+
option :default, :type => :boolean, :desc => "Init default db, ENV['MILKODE_DEFAULT_DIR'] or ~/.milkode."
|
12
|
+
option :setdb, :type => :boolean, :aliases => '-s', :desc => 'Run setdb after initialization.'
|
13
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
14
|
+
def init(db_dir = nil)
|
15
|
+
if options[:help]
|
16
|
+
CLI.task_help(shell, "init")
|
17
|
+
else
|
18
|
+
db_dir = db_dir || Dbdir.default_dir
|
19
|
+
FileUtils.mkdir_p db_dir
|
20
|
+
cdstk(db_dir).init(options)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "add PATH", <<EOF
|
25
|
+
Add package(s) to milkode
|
26
|
+
|
27
|
+
Samples:
|
28
|
+
milk add /path/to/dir1
|
29
|
+
milk add /path/to/dir2 /path/to/dir3
|
30
|
+
milk add /path/is/*
|
31
|
+
milk add /path/to/zipfile.zip
|
32
|
+
milk add /path/to/addon.xpi
|
33
|
+
milk add http://example.com/urlfile.zip
|
34
|
+
milk add git://github.com/ongaeshi/milkode.git
|
35
|
+
EOF
|
36
|
+
option :ignore, :type => :array, :aliases => '-i', :desc => 'Ignore path.'
|
37
|
+
option :no_auto_ignore, :type => :boolean, :desc => 'Disable auto ignore (.gitignore).'
|
38
|
+
option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
|
39
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
40
|
+
def add(*args)
|
41
|
+
if options[:help] || args.empty?
|
42
|
+
CLI.task_help(shell, "add")
|
43
|
+
else
|
44
|
+
cdstk.add(args, options)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "update [keyword1 keyword2 ...]", "Update database"
|
49
|
+
option :all, :type => :boolean, :desc => "Update all."
|
50
|
+
option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
|
51
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
52
|
+
def update(*args)
|
53
|
+
if options[:help]
|
54
|
+
CLI.task_help(shell, "update")
|
55
|
+
else
|
56
|
+
cdstk.update(args, options)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
desc "remove keyword1 [keyword2 ...]", "Remove package"
|
61
|
+
option :all, :type => :boolean, :desc => 'Remove all.'
|
62
|
+
option :force, :type => :boolean, :aliases => '-f', :desc => 'Force remove.'
|
63
|
+
option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
|
64
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
65
|
+
def remove(*args)
|
66
|
+
if options[:help]
|
67
|
+
CLI.task_help(shell, "remove")
|
68
|
+
else
|
69
|
+
cdstk.remove(args, options)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
desc "list [package1 package2 ...]", "List package"
|
74
|
+
option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
|
75
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
76
|
+
def list(*args)
|
77
|
+
if options[:help]
|
78
|
+
CLI.task_help(shell, "list")
|
79
|
+
else
|
80
|
+
cdstk.list(args, options)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
desc "pwd", "Display the current database"
|
85
|
+
option :default, :type => :boolean, :desc => 'Show default db, ENV[\'MILKODE_DEFAULT_DIR\'] or ~/.milkode.'
|
86
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
87
|
+
def pwd()
|
88
|
+
if options[:help]
|
89
|
+
CLI.task_help(shell, "pwd")
|
90
|
+
else
|
91
|
+
cdstk.pwd(options)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
desc "cleanup", "Creanup garbage recoeds"
|
96
|
+
option :force, :type => :boolean, :aliases => '-f', :desc => 'Force cleanup.'
|
97
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
98
|
+
def cleanup
|
99
|
+
if options[:help]
|
100
|
+
CLI.task_help(shell, "cleanup")
|
101
|
+
else
|
102
|
+
cdstk.cleanup(options)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
desc "rebuild [keyword1 keyword2]", "Rebuild database"
|
107
|
+
option :all, :type => :boolean, :desc => 'Rebuild all.'
|
108
|
+
option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
|
109
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
110
|
+
def rebuild(*args)
|
111
|
+
if options[:help]
|
112
|
+
CLI.task_help(shell, "rebuild")
|
113
|
+
else
|
114
|
+
cdstk.rebuild(args, options)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
desc "dump", "Dump records"
|
119
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
120
|
+
def dump
|
121
|
+
if options[:help]
|
122
|
+
CLI.task_help(shell, "dump")
|
123
|
+
else
|
124
|
+
cdstk.dump
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
desc "dir [package1 package2]", "Print project root directory"
|
129
|
+
option :top, :type => :boolean
|
130
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
131
|
+
def dir(*args)
|
132
|
+
if options[:help]
|
133
|
+
CLI.task_help(shell, "dir")
|
134
|
+
else
|
135
|
+
cdstk.dir(args, options)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
desc "setdb [dbpath]", "Set default db to dbpath"
|
140
|
+
option :reset, :type => :boolean, :aliases => '--default', :desc => 'Reset to the system default database.'
|
141
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
142
|
+
def setdb(dbpath = nil)
|
143
|
+
if options[:help]
|
144
|
+
CLI.task_help(shell, "setdb")
|
145
|
+
else
|
146
|
+
cdstk.setdb(dbpath, options)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
desc "mcd", "Generate `mcd' command"
|
151
|
+
option :shell, :desc => 'Type of shell. bash or cygwin'
|
152
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
153
|
+
def mcd
|
154
|
+
if options[:help]
|
155
|
+
CLI.task_help(shell, "mcd")
|
156
|
+
else
|
157
|
+
cdstk.mcd(options)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
desc "info", "Information of milkode status"
|
162
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
163
|
+
def info
|
164
|
+
if options[:help]
|
165
|
+
CLI.task_help(shell, "info")
|
166
|
+
else
|
167
|
+
cdstk.info
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
desc "ignore [path ...]", "Ignore a file or directory"
|
172
|
+
option :package, :aliases => '-p', :desc => "Package to ignore."
|
173
|
+
option :delete, :type => :boolean, :aliases => '-d', :desc => "Delete ignore setting."
|
174
|
+
option :delete_all, :type => :boolean, :desc => "Delete all ignore setting."
|
175
|
+
option :dry_run, :type => :boolean, :aliases => '-n', :desc => "Ignore setting test."
|
176
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
177
|
+
def ignore(*paths)
|
178
|
+
if options[:help]
|
179
|
+
CLI.task_help(shell, "ignore")
|
180
|
+
else
|
181
|
+
begin
|
182
|
+
cdstk.ignore(paths, options)
|
183
|
+
rescue IgnoreError => e
|
184
|
+
$stdout.puts e.message
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
desc "web", "Startup web interface"
|
190
|
+
option :db, :default => Milkode::CLI_Cdweb::select_dbdir
|
191
|
+
option :host, :default => '127.0.0.1', :aliases => '-o'
|
192
|
+
option :port, :default => 9292, :aliases => '-p'
|
193
|
+
option :server, :default => 'thin', :aliases => '-s'
|
194
|
+
option :no_browser, :type => :boolean, :default => false, :aliases => '-n', :type => :boolean, :desc => 'Do not launch browser.'
|
195
|
+
option :customize, :type => :boolean, :desc => 'Create customize file.'
|
196
|
+
option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
|
197
|
+
def web
|
198
|
+
if options[:help]
|
199
|
+
CLI.task_help(shell, "web")
|
200
|
+
else
|
201
|
+
opts = {
|
202
|
+
:environment => ENV['RACK_ENV'] || "development",
|
203
|
+
:pid => nil,
|
204
|
+
:Port => options[:port],
|
205
|
+
:Host => options[:host],
|
206
|
+
:AccessLog => [],
|
207
|
+
:config => "config.ru",
|
208
|
+
# ----------------------------
|
209
|
+
:server => options[:server],
|
210
|
+
:LaunchBrowser => !options[:no_browser],
|
211
|
+
:DbDir => options[:db],
|
212
|
+
}
|
213
|
+
opts[:customize] = options[:customize]
|
214
|
+
cdstk(opts[:DbDir]).assert_compatible
|
215
|
+
Milkode::CLI_Cdweb.execute_with_options($stdout, opts)
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
desc "grep", "Search projects"
|
220
|
+
long_desc "Search projects. See `milk grep -h` for detail."
|
221
|
+
def grep(*args)
|
222
|
+
Milkode::CLI_Grep.execute($stdout, args)
|
223
|
+
end
|
224
|
+
|
225
|
+
# --------------------------------------------------------------------------
|
226
|
+
|
227
|
+
no_tasks do
|
228
|
+
def shell
|
229
|
+
@shell ||= Thor::Base.shell.new
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
private
|
234
|
+
|
235
|
+
def cdstk(dir = nil)
|
236
|
+
Cdstk.new($stdout, dir || db_dir)
|
237
|
+
end
|
238
|
+
|
239
|
+
# init からはアクセスしてはいけない
|
240
|
+
def db_dir
|
241
|
+
if (Dbdir.dbdir?('.') || !Dbdir.dbdir?(Dbdir.default_dir))
|
242
|
+
'.'
|
243
|
+
else
|
244
|
+
Dbdir.default_dir
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
end
|
249
|
+
end
|