diff --git a/lib/homesick.rb b/lib/homesick.rb index 7646ff9..795e212 100644 --- a/lib/homesick.rb +++ b/lib/homesick.rb @@ -79,6 +79,13 @@ class Homesick < Thor end + desc "push NAME", "Push the specified castle" + method_option :all, :type => :boolean, :default => false, :required => false, :desc => "Update all cloned castles" + def push(name) + push_castle name + + end + desc "symlink NAME", "Symlinks all dotfiles from the specified castle" method_option :force, :default => false, :desc => "Overwrite existing conflicting symlinks without prompting." def symlink(name) @@ -207,4 +214,12 @@ class Homesick < Thor git_submodule_update end end + + def push_castle(castle) + check_castle_existance(castle, "push") + inside repos_dir.join(castle) do + git_commit_all + git_push + end + end end diff --git a/lib/homesick/actions.rb b/lib/homesick/actions.rb index 6ea6402..998c696 100644 --- a/lib/homesick/actions.rb +++ b/lib/homesick/actions.rb @@ -60,6 +60,16 @@ class Homesick system "git pull --quiet" unless options[:pretend] end + def git_push(config = {}) + say_status 'git push', '', :green unless options[:quiet] + system "git push" unless options[:pretend] + end + + def git_commit_all(config = {}) + say_status 'git commit all', '', :green unless options[:quiet] + system "git commit -v -a" unless options[:pretend] + end + def mv(source, destination, config = {}) source = Pathname.new(source) destination = Pathname.new(destination + source.basename)