support nested dir in .homesick_subdir
This commit is contained in:
@@ -105,9 +105,18 @@ class Homesick < Thor
|
|||||||
subdirs.push(subdir.chomp)
|
subdirs.push(subdir.chomp)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
ignore_dirs = []
|
||||||
|
subdirs.each do |subdir|
|
||||||
|
splited_subdir = Pathname.new(subdir).split
|
||||||
|
ignore_dir = splited_subdir[0].to_s
|
||||||
|
if ignore_dir == "." then
|
||||||
|
ignore_dir = splited_subdir[1].to_s
|
||||||
|
end
|
||||||
|
ignore_dirs.push(ignore_dir)
|
||||||
|
end
|
||||||
|
|
||||||
# link files
|
# link files
|
||||||
files = Pathname.glob('{.*,*}').reject{|a| [".", "..", SUBDIR_FILENAME, subdirs].flatten.include?(a.to_s)}
|
files = Pathname.glob('{.*,*}').reject{|a| [".", "..", SUBDIR_FILENAME, ignore_dirs].flatten.include?(a.to_s)}
|
||||||
files.each do |path|
|
files.each do |path|
|
||||||
absolute_path = path.expand_path
|
absolute_path = path.expand_path
|
||||||
|
|
||||||
@@ -126,7 +135,7 @@ class Homesick < Thor
|
|||||||
absolute_path = path.expand_path
|
absolute_path = path.expand_path
|
||||||
|
|
||||||
inside home_dir.join(subdir) do
|
inside home_dir.join(subdir) do
|
||||||
adjusted_path = (home_dir + path).basename
|
adjusted_path = (home_dir + subdir + path).basename
|
||||||
|
|
||||||
ln_s absolute_path, adjusted_path
|
ln_s absolute_path, adjusted_path
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -121,9 +121,8 @@ describe "homesick" do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when .homesick_subdir exists" do
|
context "with '.config' in .homesick_subdir" do
|
||||||
let(:castle) { given_castle("glencairn", "glencairn", [".config"]) }
|
let(:castle) { given_castle("glencairn", "glencairn", [".config"]) }
|
||||||
|
|
||||||
it "can symlink in sub directory" do
|
it "can symlink in sub directory" do
|
||||||
dotdir = castle.directory(".config")
|
dotdir = castle.directory(".config")
|
||||||
dotfile = dotdir.file(".some_dotfile")
|
dotfile = dotdir.file(".some_dotfile")
|
||||||
@@ -135,6 +134,20 @@ describe "homesick" do
|
|||||||
home_dotdir.join(".some_dotfile").readlink.should == dotfile
|
home_dotdir.join(".some_dotfile").readlink.should == dotfile
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with '.config/appA' in .homesick_subdir" do
|
||||||
|
let(:castle) { given_castle("glencairn", "glencairn", [".config/appA"]) }
|
||||||
|
it "can symlink in nested sub directory" do
|
||||||
|
dotdir = castle.directory(".config").directory("appA")
|
||||||
|
dotfile = dotdir.file(".some_dotfile")
|
||||||
|
|
||||||
|
homesick.symlink("glencairn")
|
||||||
|
|
||||||
|
home_dotdir = home.join(".config").join("appA")
|
||||||
|
home_dotdir.symlink?.should == false
|
||||||
|
home_dotdir.join(".some_dotfile").readlink.should == dotfile
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "list" do
|
describe "list" do
|
||||||
|
|||||||
Reference in New Issue
Block a user