falkorlib 0.3.14 → 0.4.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +8 -5
- data/Rakefile +2 -2
- data/bin/falkor +29 -0
- data/completion/falkor.bash +19 -0
- data/completion/falkor.zsh +25 -0
- data/falkorlib.gemspec +5 -1
- data/lib/falkorlib.rb +2 -1
- data/lib/falkorlib/bootstrap.rb +15 -0
- data/lib/falkorlib/bootstrap/base.rb +241 -0
- data/lib/falkorlib/cli.rb +230 -0
- data/lib/falkorlib/cli/new.rb +94 -0
- data/lib/falkorlib/common.rb +20 -1
- data/lib/falkorlib/config.rb +6 -3
- data/lib/falkorlib/git/base.rb +50 -16
- data/lib/falkorlib/git/flow.rb +64 -25
- data/lib/falkorlib/loader.rb +2 -2
- data/lib/falkorlib/puppet.rb +1 -3
- data/lib/falkorlib/puppet/base.rb +5 -5
- data/lib/falkorlib/puppet/modules.rb +2 -2
- data/lib/falkorlib/tasks/gem.rake +3 -6
- data/lib/falkorlib/tasks/rspec.rake +3 -1
- data/lib/falkorlib/version.rb +2 -1
- data/spec/falkorlib/bootstrap_spec.rb +118 -0
- data/spec/falkorlib/git_spec.rb +87 -43
- data/spec/falkorlib/gitflow_spec.rb +1 -1
- metadata +42 -3
    
        data/lib/falkorlib/git/flow.rb
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            ################################################################################
         | 
| 3 | 
            -
            # Time-stamp: < | 
| 3 | 
            +
            # Time-stamp: <Jeu 2015-01-22 22:51 svarrette>
         | 
| 4 4 | 
             
            ################################################################################
         | 
| 5 5 | 
             
            # Management of Git Flow operations
         | 
| 6 6 |  | 
| @@ -39,9 +39,35 @@ module FalkorLib | |
| 39 39 |  | 
| 40 40 | 
             
                    module_function
         | 
| 41 41 |  | 
| 42 | 
            +
                    ## OLD version
         | 
| 43 | 
            +
                    ## Check if git-flow is initialized
         | 
| 44 | 
            +
                    # def init?(path = Dir.pwd)
         | 
| 45 | 
            +
            	    #     res = FalkorLib::Git.init?(path)
         | 
| 46 | 
            +
            	    #     Dir.chdir(path) do 
         | 
| 47 | 
            +
            		#         gf_check = `git config --get-regexp 'gitflow*'`
         | 
| 48 | 
            +
            		#         res &= ! gf_check.empty? 
         | 
| 49 | 
            +
            	    #     end
         | 
| 50 | 
            +
            	    #     res
         | 
| 51 | 
            +
                    # end # init?(path = Dir.pwd)
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    ###### init? ######
         | 
| 54 | 
            +
                    # Check if gitflow has been initialized
         | 
| 55 | 
            +
                    ##
         | 
| 56 | 
            +
                    def init?(dir = Dir.pwd)
         | 
| 57 | 
            +
                      res = FalkorLib::Git.init?(dir)
         | 
| 58 | 
            +
                      if res
         | 
| 59 | 
            +
                        res &= !FalkorLib::Git.config('gitflow*', dir).empty?
         | 
| 60 | 
            +
                      end
         | 
| 61 | 
            +
                      res
         | 
| 62 | 
            +
                    end # init?
         | 
| 63 | 
            +
             | 
| 42 64 | 
             
                    ## Initialize a git-flow repository
         | 
| 43 | 
            -
                     | 
| 44 | 
            -
             | 
| 65 | 
            +
                    # Supported options:
         | 
| 66 | 
            +
                    # :interactive [boolean] confirm Gitflow branch names
         | 
| 67 | 
            +
                    # :master  [string] Branch name for production releases
         | 
| 68 | 
            +
                    # :develop [string] Branch name for development commits
         | 
| 69 | 
            +
                    def init(path = Dir.pwd, options = {})
         | 
| 70 | 
            +
                        exit_status = FalkorLib::Git.init(path, options)
         | 
| 45 71 | 
             
                        error "you shall install git-flow: see https://github.com/nvie/gitflow/wiki/Installation" unless command?('git-flow')
         | 
| 46 72 | 
             
                        remotes      = FalkorLib::Git.remotes(path)
         | 
| 47 73 | 
             
                        git_root_dir = FalkorLib::Git.rootdir( path )
         | 
| @@ -50,48 +76,62 @@ module FalkorLib | |
| 50 76 | 
             
            	                warn "Not yet any commit detected in this repository."
         | 
| 51 77 | 
             
            	                readme = 'README.md'
         | 
| 52 78 | 
             
            	                unless File.exists?( readme )
         | 
| 53 | 
            -
            		                answer = ask(cyan("=> initialize a commit with  | 
| 79 | 
            +
            		                answer = ask(cyan("=> initialize a commit with an [empty] #{readme} file (Y|n)?"), 'Yes')
         | 
| 54 80 | 
             
            		                exit 0 if answer =~ /n.*/i
         | 
| 55 81 | 
             
            		                FileUtils.touch(readme)
         | 
| 56 | 
            -
            	                end | 
| 82 | 
            +
            	                end
         | 
| 57 83 | 
             
            	                FalkorLib::Git.add(readme, "Initiate the repository with a '#{readme}' file")
         | 
| 58 84 | 
             
                            end
         | 
| 59 85 | 
             
            		        branches     = FalkorLib::Git.list_branch(path)
         | 
| 86 | 
            +
                            gitflow_branches = FalkorLib.config.gitflow[:branches].clone
         | 
| 87 | 
            +
                            # correct eventually the considered branch from the options
         | 
| 88 | 
            +
                            gitflow_branches.each do |t,b|
         | 
| 89 | 
            +
                              gitflow_branches[t] = options[t.to_sym] if options[t.to_sym]
         | 
| 90 | 
            +
                              confs = FalkorLib::Git.config('gitflow*', path, :hash => true)
         | 
| 91 | 
            +
                              unless confs.empty?
         | 
| 92 | 
            +
                                gitflow_branches[t] = confs["gitflow.branch.#{t}"]
         | 
| 93 | 
            +
                              end
         | 
| 94 | 
            +
                            end
         | 
| 95 | 
            +
                            if options[:interactive]
         | 
| 96 | 
            +
                              gitflow_branches[:master]  = ask("=> branch name for production releases", gitflow_branches[:master])
         | 
| 97 | 
            +
                              gitflow_branches[:develop] = ask("=> branch name for development commits", gitflow_branches[:develop])
         | 
| 98 | 
            +
                            end
         | 
| 99 | 
            +
                            ap gitflow_branches if options[:debug]
         | 
| 60 100 | 
             
                            if remotes.include?( 'origin' )
         | 
| 61 101 | 
             
                                info "=> configure remote (tracked) branches"
         | 
| 62 102 | 
             
                                exit_status = FalkorLib::Git.fetch(path)
         | 
| 63 | 
            -
                                 | 
| 103 | 
            +
                                gitflow_branches.each do |type,branch|
         | 
| 64 104 | 
             
                                    if branches.include? "remotes/origin/#{branch}"
         | 
| 65 105 | 
             
                                        exit_status = FalkorLib::Git.grab(branch, path)
         | 
| 66 106 | 
             
                                    else
         | 
| 67 107 | 
             
                                        unless branches.include? branch
         | 
| 68 | 
            -
                                            info " | 
| 108 | 
            +
                                            info "=> creating the branch '#{branch}'"
         | 
| 69 109 | 
             
                                            FalkorLib::Git.create_branch( branch, path )
         | 
| 70 110 | 
             
                                        end
         | 
| 71 111 | 
             
                                        exit_status = FalkorLib::Git.publish(branch, path )
         | 
| 72 112 | 
             
                                    end
         | 
| 73 113 | 
             
                                end
         | 
| 74 114 | 
             
                            else
         | 
| 75 | 
            -
                                 | 
| 115 | 
            +
                                gitflow_branches.each do |type, branch|
         | 
| 76 116 | 
             
                                    unless branches.include? branch
         | 
| 77 | 
            -
                                        info "creating the branch '#{branch}'"
         | 
| 117 | 
            +
                                        info " => creating the branch '#{branch}'"
         | 
| 78 118 | 
             
                                        exit_status = FalkorLib::Git.create_branch( branch, path )
         | 
| 79 119 | 
             
                                    end
         | 
| 80 120 | 
             
                                end
         | 
| 81 121 | 
             
                            end
         | 
| 82 | 
            -
                            info " | 
| 83 | 
            -
                             | 
| 122 | 
            +
                            #info "initialize git flow configs"
         | 
| 123 | 
            +
                            gitflow_branches.each do |t,branch|
         | 
| 84 124 | 
             
                                exit_status = execute "git config gitflow.branch.#{t} #{branch}"
         | 
| 85 125 | 
             
                            end
         | 
| 86 126 | 
             
                            FalkorLib.config.gitflow[:prefix].each do |t,prefix|
         | 
| 87 127 | 
             
                                exit_status = execute "git config gitflow.prefix.#{t} #{prefix}"
         | 
| 88 128 | 
             
                            end
         | 
| 89 | 
            -
            		        devel_branch =  | 
| 90 | 
            -
            		        info " | 
| 129 | 
            +
            		        devel_branch = gitflow_branches[:develop]
         | 
| 130 | 
            +
            		        #info "checkout to the main development branch '#{devel_branch}'"
         | 
| 91 131 | 
             
            		        exit_status = run %{ 
         | 
| 92 132 | 
             
                               git checkout #{devel_branch}
         | 
| 93 133 | 
             
                            }
         | 
| 94 | 
            -
            		        if branches.include?('master') && !  | 
| 134 | 
            +
            		        if branches.include?('master') && ! gitflow_branches.values.include?( 'master' )
         | 
| 95 135 | 
             
            			        warn "Your git-flow confuguration does not hold the 'master' branch any more"
         | 
| 96 136 | 
             
            			        warn "You probably want to get rid of it asap by running 'git branch -d master'"
         | 
| 97 137 | 
             
            		        end 
         | 
| @@ -106,17 +146,6 @@ module FalkorLib | |
| 106 146 | 
             
            	        exit_status
         | 
| 107 147 | 
             
                    end
         | 
| 108 148 |  | 
| 109 | 
            -
                    ## Check if git-flow is initialized
         | 
| 110 | 
            -
                    def init?(path = Dir.pwd)
         | 
| 111 | 
            -
            	        res = FalkorLib::Git.init?(path)
         | 
| 112 | 
            -
            	        Dir.chdir(path) do 
         | 
| 113 | 
            -
            		        gf_check = `git config --get-regexp 'gitflow*'`
         | 
| 114 | 
            -
            		        res &= ! gf_check.empty? 
         | 
| 115 | 
            -
            	        end
         | 
| 116 | 
            -
            	        res
         | 
| 117 | 
            -
                    end # init?(path = Dir.pwd)
         | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 120 149 | 
             
                    ## generic function to run any of the gitflow commands
         | 
| 121 150 | 
             
                    def command(name, type = 'feature', action = 'start', path = Dir.pwd, optional_args = '')
         | 
| 122 151 | 
             
                        error "Invalid git-flow type '#{type}'" unless ['feature', 'release', 'hotfix', 'support'].include?(type)
         | 
| @@ -142,6 +171,16 @@ module FalkorLib | |
| 142 171 | 
             
                        command(name, type, 'finish', path, optional_args)
         | 
| 143 172 | 
             
                    end
         | 
| 144 173 |  | 
| 174 | 
            +
                    ###
         | 
| 175 | 
            +
                    # Return the Gitflow branch 
         | 
| 176 | 
            +
                    # :master:   Master Branch name for production releases
         | 
| 177 | 
            +
                    # :develop: 
         | 
| 178 | 
            +
                    ##
         | 
| 179 | 
            +
                    def branches(type = :master, dir = Dir.pwd, options = {})
         | 
| 180 | 
            +
                      FalkorLib::Git.config("gitflow.branch.#{type}", dir)
         | 
| 181 | 
            +
                      #confs[type.to_sym]
         | 
| 182 | 
            +
                    end # master_branch
         | 
| 183 | 
            +
             | 
| 145 184 |  | 
| 146 185 | 
             
                end # module FalkorLib::GitFlow
         | 
| 147 186 |  | 
    
        data/lib/falkorlib/loader.rb
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            ################################################################################
         | 
| 3 | 
            -
            # Time-stamp: < | 
| 3 | 
            +
            # Time-stamp: <Jeu 2015-01-15 17:26 svarrette>
         | 
| 4 4 | 
             
            ################################################################################
         | 
| 5 5 | 
             
            # Place the component you wish to see loaded  
         | 
| 6 6 |  | 
| @@ -9,4 +9,4 @@ require "falkorlib/common" | |
| 9 9 | 
             
            require "falkorlib/git"
         | 
| 10 10 | 
             
            require "falkorlib/versioning"
         | 
| 11 11 | 
             
            require "falkorlib/puppet"
         | 
| 12 | 
            -
             | 
| 12 | 
            +
            require "falkorlib/cli"
         | 
    
        data/lib/falkorlib/puppet.rb
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            ################################################################################
         | 
| 3 | 
            -
            # Time-stamp: <Lun  | 
| 3 | 
            +
            # Time-stamp: <Lun 2015-01-19 17:57 svarrette>
         | 
| 4 4 | 
             
            ################################################################################
         | 
| 5 5 | 
             
            # Management of [Puppet](http://puppetlabs.com/) operations
         | 
| 6 6 |  | 
| @@ -12,6 +12,4 @@ end # module FalkorLib | |
| 12 12 |  | 
| 13 13 | 
             
            require "falkorlib/puppet/base"
         | 
| 14 14 | 
             
            require "falkorlib/puppet/modules"
         | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 15 |  | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            ################################################################################
         | 
| 3 | 
            -
            # Time-stamp: <Lun  | 
| 3 | 
            +
            # Time-stamp: <Lun 2015-01-19 17:56 svarrette>
         | 
| 4 4 | 
             
            ################################################################################
         | 
| 5 5 | 
             
            # Interface for the main Puppet operations
         | 
| 6 6 | 
             
            #
         | 
| @@ -17,9 +17,9 @@ module FalkorLib  #:nodoc: | |
| 17 17 | 
             
            		    # Puppet defaults for FalkorLib
         | 
| 18 18 | 
             
            		    DEFAULTS = {
         | 
| 19 19 | 
             
            			    :modulesdir => File.join(Dir.pwd, 'modules')
         | 
| 20 | 
            -
            		    } | 
| 21 | 
            -
            	    end | 
| 22 | 
            -
                end | 
| 20 | 
            +
            		    }
         | 
| 21 | 
            +
            	    end
         | 
| 22 | 
            +
                end
         | 
| 23 23 |  | 
| 24 24 | 
             
                module Puppet  #:nodoc
         | 
| 25 25 |  | 
| @@ -27,4 +27,4 @@ module FalkorLib  #:nodoc: | |
| 27 27 |  | 
| 28 28 |  | 
| 29 29 |  | 
| 30 | 
            -
            end | 
| 30 | 
            +
            end
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            ################################################################################
         | 
| 3 | 
            -
            # Time-stamp: <Lun  | 
| 3 | 
            +
            # Time-stamp: <Lun 2015-01-12 22:09 svarrette>
         | 
| 4 4 | 
             
            ################################################################################
         | 
| 5 5 | 
             
            # Interface for the main Puppet Module operations
         | 
| 6 6 | 
             
            #
         | 
| @@ -88,7 +88,7 @@ module FalkorLib  #:nodoc: | |
| 88 88 | 
             
                        ##
         | 
| 89 89 | 
             
                        def init(rootdir = Dir.pwd, name = '', options = {})
         | 
| 90 90 | 
             
                            config = {}
         | 
| 91 | 
            -
                            login = `whoami`.chomp
         | 
| 91 | 
            +
                            #login = `whoami`.chomp
         | 
| 92 92 | 
             
                            config[:name] = name unless name.empty?
         | 
| 93 93 | 
             
                            moduledir = name.empty? ? rootdir : File.join(rootdir, name)
         | 
| 94 94 | 
             
                            FalkorLib::Config::Puppet::Modules::DEFAULTS[:metadata].each do |k,v|
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            ################################################################################
         | 
| 3 3 | 
             
            # gem.rake - Special tasks for the management of Gem operations
         | 
| 4 | 
            -
            # Time-stamp: < | 
| 4 | 
            +
            # Time-stamp: <Lun 2015-01-12 21:14 svarrette>
         | 
| 5 5 | 
             
            #
         | 
| 6 6 | 
             
            # Copyright (c) 2014 Sebastien Varrette <Sebastien.Varrette@uni.lu>
         | 
| 7 7 | 
             
            #               http://varrette.gforge.uni.lu
         | 
| @@ -54,13 +54,8 @@ namespace :gem do | |
| 54 54 | 
             
            - Description: #{spec.description}
         | 
| 55 55 | 
             
            eos
         | 
| 56 56 | 
             
                    end
         | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 57 | 
             
                end # task info
         | 
| 61 58 |  | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 59 | 
             
            end # namespace gem
         | 
| 65 60 |  | 
| 66 61 | 
             
            # Until [Issue#13](https://github.com/postmodern/rubygems-tasks/issues/13) it solved,
         | 
| @@ -72,7 +67,9 @@ Gem::Tasks::Sign::PGP.new | |
| 72 67 |  | 
| 73 68 | 
             
            # Enhance the build to sign the built gem
         | 
| 74 69 | 
             
            Rake::Task['build'].enhance do
         | 
| 70 | 
            +
              unless ENV['GIT_AUTHOR_NAME'].nil?
         | 
| 75 71 | 
             
                Rake::Task["sign"].invoke if File.directory?(File.join(ENV['HOME'], '.gnupg') )
         | 
| 72 | 
            +
              end
         | 
| 76 73 | 
             
            end
         | 
| 77 74 |  | 
| 78 75 | 
             
            [ 'major', 'minor', 'patch' ].each do |level|
         | 
| @@ -33,7 +33,9 @@ begin | |
| 33 33 | 
             
                    #t.pattern = "spec/**/common_*.rb"
         | 
| 34 34 | 
             
                    #t.pattern = "spec/**/versioning_*spec.rb"
         | 
| 35 35 | 
             
                    #t.pattern = "spec/**/puppet*spec.rb"
         | 
| 36 | 
            -
             | 
| 36 | 
            +
                    #t.pattern = "spec/**/bootstrap*spec.rb"
         | 
| 37 | 
            +
                    #t.pattern = "spec/**/gitf*spec.rb"
         | 
| 38 | 
            +
                    
         | 
| 37 39 | 
             
                    # Whether or not to fail Rake when an error occurs (typically when
         | 
| 38 40 | 
             
                    # examples fail).
         | 
| 39 41 | 
             
                    t.fail_on_error = true
         | 
    
        data/lib/falkorlib/version.rb
    CHANGED
    
    | @@ -19,7 +19,7 @@ module FalkorLib #:nodoc: | |
| 19 19 | 
             
                    # MAJOR: Defines the major version
         | 
| 20 20 | 
             
                    # MINOR: Defines the minor version
         | 
| 21 21 | 
             
                    # PATCH: Defines the patch version
         | 
| 22 | 
            -
            	    MAJOR, MINOR, PATCH = 0,  | 
| 22 | 
            +
            	    MAJOR, MINOR, PATCH = 0, 4, 0  
         | 
| 23 23 |  | 
| 24 24 | 
             
            	    module_function
         | 
| 25 25 |  | 
| @@ -72,3 +72,4 @@ module FalkorLib #:nodoc: | |
| 72 72 | 
             
                VERSION = Version.to_s
         | 
| 73 73 | 
             
            end
         | 
| 74 74 |  | 
| 75 | 
            +
             | 
| @@ -0,0 +1,118 @@ | |
| 1 | 
            +
            #!/usr/bin/ruby
         | 
| 2 | 
            +
            #########################################
         | 
| 3 | 
            +
            # bootstrap_spec.rb
         | 
| 4 | 
            +
            # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
         | 
| 5 | 
            +
            # Time-stamp: <Jeu 2015-01-22 10:47 svarrette>
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            # @description Check the Bootstrapping operations
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            # Copyright (c) 2013 Sebastien Varrette <Sebastien.Varrette@uni.lu>
         | 
| 10 | 
            +
            # .             http://varrette.gforge.uni.lu
         | 
| 11 | 
            +
            ##############################################################################
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            require 'spec_helper'
         | 
| 14 | 
            +
            require 'tmpdir'
         | 
| 15 | 
            +
            require 'FileUtils'
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            describe FalkorLib::Bootstrap do
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                include FalkorLib::Common
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                dirs = {
         | 
| 22 | 
            +
                    :without_git => Dir.mktmpdir,
         | 
| 23 | 
            +
                    :with_git    => Dir.mktmpdir
         | 
| 24 | 
            +
                }
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                before :all do
         | 
| 27 | 
            +
                    $stdout.sync = true
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                after :all do
         | 
| 31 | 
            +
                    dirs.each do |t,d|
         | 
| 32 | 
            +
                        FileUtils.remove_entry_secure d
         | 
| 33 | 
            +
                    end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                [ :without_git, :with_git ].each do |ctx|
         | 
| 37 | 
            +
                    dir = dirs[ctx]
         | 
| 38 | 
            +
                    #############################################################
         | 
| 39 | 
            +
                    context "Test bootstrapping operations within (#{ctx}) temporary directory #{dir} " do
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                        if ctx == :with_git
         | 
| 42 | 
            +
                            it "initialize Git in the temporary directory #{dir}" do
         | 
| 43 | 
            +
                                c = FalkorLib::Git.init(dir)
         | 
| 44 | 
            +
            			        c.should == 0
         | 
| 45 | 
            +
                                t = FalkorLib::Git.init?(dir)
         | 
| 46 | 
            +
                                t.should be_true
         | 
| 47 | 
            +
                            end
         | 
| 48 | 
            +
                        end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                        ######### Trash creation  #########
         | 
| 51 | 
            +
                        it "#trash" do
         | 
| 52 | 
            +
                            c = FalkorLib::Bootstrap.trash(dir)
         | 
| 53 | 
            +
                            t = File.exists?( File.join(dir, FalkorLib.config[:templates][:trashdir], '.gitignore'))
         | 
| 54 | 
            +
                            t.should be_true
         | 
| 55 | 
            +
                            c.should == 0
         | 
| 56 | 
            +
                        end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                        it "#trash - repeat on an existing trash dir" do
         | 
| 59 | 
            +
                            c = FalkorLib::Bootstrap.trash(dir)
         | 
| 60 | 
            +
                            c.should == 1
         | 
| 61 | 
            +
                        end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                        it "#trash - change target trash dir" do
         | 
| 64 | 
            +
                            newtrashname = 'tmp/mytrash'
         | 
| 65 | 
            +
                            c = FalkorLib::Bootstrap.trash(dir,newtrashname)
         | 
| 66 | 
            +
                            t = File.exists?( File.join(dir, newtrashname, '.gitignore'))
         | 
| 67 | 
            +
                            t.should be_true
         | 
| 68 | 
            +
                            c.should == 0
         | 
| 69 | 
            +
                        end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                        ######### RVM #########
         | 
| 72 | 
            +
                        it "#rvm" do
         | 
| 73 | 
            +
                            gemset = 'mygemset'
         | 
| 74 | 
            +
                            STDIN.should_receive(:gets).and_return('1')
         | 
| 75 | 
            +
                            STDIN.should_receive(:gets).and_return(gemset)
         | 
| 76 | 
            +
                            c = FalkorLib::Bootstrap.rvm(dir)
         | 
| 77 | 
            +
                            c.should == 0
         | 
| 78 | 
            +
                            content = {}
         | 
| 79 | 
            +
                            [:versionfile, :gemsetfile].each do |type|
         | 
| 80 | 
            +
                                f = File.join(dir, FalkorLib.config[:rvm][type.to_sym])
         | 
| 81 | 
            +
                                t = File.exists?(f)
         | 
| 82 | 
            +
                                t.should be_true
         | 
| 83 | 
            +
                                content[type.to_sym] = `cat #{f}`.chomp
         | 
| 84 | 
            +
                            end
         | 
| 85 | 
            +
                            content[:versionfile].should == FalkorLib.config[:rvm][:rubies][0]
         | 
| 86 | 
            +
                            content[:gemsetfile].should  == gemset
         | 
| 87 | 
            +
                        end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                        it "#rvm -- repeat" do
         | 
| 90 | 
            +
                            c = FalkorLib::Bootstrap.rvm(dir)
         | 
| 91 | 
            +
                            c.should == 1
         | 
| 92 | 
            +
                        end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                        it "#rvm -- change targets" do
         | 
| 95 | 
            +
                            opts = {
         | 
| 96 | 
            +
                                :ruby        => '1.2.3',
         | 
| 97 | 
            +
                                :versionfile => '.myversion',
         | 
| 98 | 
            +
                                :gemset      => 'newgemset',
         | 
| 99 | 
            +
                                :gemsetfile  => '.mygemset'
         | 
| 100 | 
            +
                            }
         | 
| 101 | 
            +
                            c = FalkorLib::Bootstrap.rvm(dir, opts)
         | 
| 102 | 
            +
                            c.should == 0
         | 
| 103 | 
            +
                            content = {}
         | 
| 104 | 
            +
                            [:versionfile, :gemsetfile].each do |type|
         | 
| 105 | 
            +
                                f = File.join(dir, opts[type.to_sym])
         | 
| 106 | 
            +
                                t = File.exists?(f)
         | 
| 107 | 
            +
                                t.should be_true
         | 
| 108 | 
            +
                                content[type.to_sym] = `cat #{f}`.chomp
         | 
| 109 | 
            +
                            end
         | 
| 110 | 
            +
                            content[:versionfile].should == opts[:ruby]
         | 
| 111 | 
            +
                            content[:gemsetfile].should  == opts[:gemset]
         | 
| 112 | 
            +
                        end
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                    end # context
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                end # each
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            end
         | 
    
        data/spec/falkorlib/git_spec.rb
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            #########################################
         | 
| 3 3 | 
             
            # git_spec.rb
         | 
| 4 4 | 
             
            # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
         | 
| 5 | 
            -
            # Time-stamp: < | 
| 5 | 
            +
            # Time-stamp: <Jeu 2015-01-22 15:38 svarrette>
         | 
| 6 6 | 
             
            #
         | 
| 7 7 | 
             
            # @description Check the Git operations
         | 
| 8 8 | 
             
            #
         | 
| @@ -39,15 +39,15 @@ describe FalkorLib::Git do | |
| 39 39 |  | 
| 40 40 | 
             
                    it "#init - initialize a git repository" do
         | 
| 41 41 | 
             
                        c = FalkorLib::Git.init(dir)
         | 
| 42 | 
            -
             | 
| 42 | 
            +
                        c.should == 0
         | 
| 43 43 | 
             
                        t = FalkorLib::Git.init?(dir)
         | 
| 44 44 | 
             
                        t.should be_true
         | 
| 45 45 | 
             
                    end
         | 
| 46 46 |  | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 47 | 
            +
                    it "#remotes? -- should be false" do
         | 
| 48 | 
            +
                        t = FalkorLib::Git.remotes?(dir)
         | 
| 49 | 
            +
                        t.should be_false
         | 
| 50 | 
            +
                    end
         | 
| 51 51 |  | 
| 52 52 | 
             
                    it "#rootdir #gitdir - checks git dir and working tree" do
         | 
| 53 53 | 
             
                        subdir = File.join(dir, 'some_dir')
         | 
| @@ -60,37 +60,37 @@ describe FalkorLib::Git do | |
| 60 60 | 
             
                        end
         | 
| 61 61 | 
             
                    end
         | 
| 62 62 |  | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 63 | 
            +
                    it "#has_commits? - not yet any commits" do
         | 
| 64 | 
            +
                        b = FalkorLib::Git.has_commits?( dir )
         | 
| 65 | 
            +
                        b.should be_false
         | 
| 66 | 
            +
                    end
         | 
| 67 67 |  | 
| 68 68 | 
             
                    it "#branch? - check non-existing branch" do
         | 
| 69 69 | 
             
                        br = FalkorLib::Git.branch?( dir )
         | 
| 70 70 | 
             
                        br.should be_nil
         | 
| 71 71 | 
             
                    end
         | 
| 72 72 |  | 
| 73 | 
            -
             | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 73 | 
            +
                    it "#list_files -- should not list any files" do
         | 
| 74 | 
            +
                        l = FalkorLib::Git.list_files( dir )
         | 
| 75 | 
            +
                        l.should be_empty
         | 
| 76 | 
            +
                    end
         | 
| 77 77 |  | 
| 78 78 | 
             
                    it "#add - makes a first commit" do
         | 
| 79 79 | 
             
                        FileUtils.touch( afile )
         | 
| 80 80 | 
             
                        t = FalkorLib::Git.add(afile)
         | 
| 81 | 
            -
             | 
| 81 | 
            +
                        t.should == 0
         | 
| 82 82 | 
             
                    end
         | 
| 83 83 |  | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 84 | 
            +
                    it "#list_files -- should list a single files" do
         | 
| 85 | 
            +
                        l = FalkorLib::Git.list_files( dir )
         | 
| 86 | 
            +
                        l.should include 'a_file'
         | 
| 87 | 
            +
                    end
         | 
| 88 88 |  | 
| 89 89 |  | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 90 | 
            +
                    it "#has_commits? - no some commits have been done" do
         | 
| 91 | 
            +
                        b = FalkorLib::Git.has_commits?( dir )
         | 
| 92 | 
            +
                        b.should be_true
         | 
| 93 | 
            +
                    end
         | 
| 94 94 |  | 
| 95 95 |  | 
| 96 96 | 
             
                    it "#branch? - check existing branch" do
         | 
| @@ -113,7 +113,7 @@ describe FalkorLib::Git do | |
| 113 113 |  | 
| 114 114 | 
             
                    default_branches.each do |br|
         | 
| 115 115 | 
             
                        it "#delete_branch #list_branch - deletes branch #{br}" do
         | 
| 116 | 
            -
             | 
| 116 | 
            +
                            FalkorLib::Git.delete_branch( br, dir) #, :force => true )
         | 
| 117 117 | 
             
                            l = FalkorLib::Git.list_branch( dir )
         | 
| 118 118 | 
             
                            l.should_not include "#{br}"
         | 
| 119 119 | 
             
                        end
         | 
| @@ -129,6 +129,50 @@ describe FalkorLib::Git do | |
| 129 129 | 
             
                        c.should be_true
         | 
| 130 130 | 
             
                    end
         | 
| 131 131 |  | 
| 132 | 
            +
                    it "#config -- check existing key" do
         | 
| 133 | 
            +
                        c = FalkorLib::Git.config('user.name', dir)
         | 
| 134 | 
            +
                        c.should_not be_empty
         | 
| 135 | 
            +
                        t = c.is_a? String
         | 
| 136 | 
            +
                        t.should be_true
         | 
| 137 | 
            +
                    end
         | 
| 138 | 
            +
             | 
| 139 | 
            +
                    it "#config -- check non-existing key" do
         | 
| 140 | 
            +
                        c = FalkorLib::Git.config('user.nam', dir)
         | 
| 141 | 
            +
                        c.should be_nil
         | 
| 142 | 
            +
                    end
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                    it "#config -- check all keys" do
         | 
| 145 | 
            +
                        c = FalkorLib::Git.config('*', dir)
         | 
| 146 | 
            +
                        c.should_not be_empty
         | 
| 147 | 
            +
                        t = c.is_a? Array
         | 
| 148 | 
            +
                        t.should be_true
         | 
| 149 | 
            +
                    end
         | 
| 150 | 
            +
             | 
| 151 | 
            +
                    it "#config -- check pattern" do
         | 
| 152 | 
            +
                        c = FalkorLib::Git.config('user*', dir)
         | 
| 153 | 
            +
                        c.should_not be_empty
         | 
| 154 | 
            +
                        t = c.is_a? Array
         | 
| 155 | 
            +
                        t.should be_true
         | 
| 156 | 
            +
                        c.length.should == 2
         | 
| 157 | 
            +
                    end
         | 
| 158 | 
            +
             | 
| 159 | 
            +
                    it "#config -- check pattern 2" do
         | 
| 160 | 
            +
                        c = FalkorLib::Git.config(/.*name=/, dir)
         | 
| 161 | 
            +
                        c.should_not be_empty
         | 
| 162 | 
            +
                        t = c.is_a? Array
         | 
| 163 | 
            +
                        t.should be_true
         | 
| 164 | 
            +
                        c.length.should == 1
         | 
| 165 | 
            +
                    end
         | 
| 166 | 
            +
             | 
| 167 | 
            +
                    it "#config -- return hash" do
         | 
| 168 | 
            +
                        c = FalkorLib::Git.config('user*', dir, :hash => true)
         | 
| 169 | 
            +
                        c.should_not be_empty
         | 
| 170 | 
            +
                        t = c.is_a? Hash
         | 
| 171 | 
            +
                        t.should be_true
         | 
| 172 | 
            +
                        c.keys.length.should == 2
         | 
| 173 | 
            +
                    end
         | 
| 174 | 
            +
             | 
| 175 | 
            +
             | 
| 132 176 | 
             
                    # ---------- Submodules ---------------
         | 
| 133 177 | 
             
                    it "#submodules_init" do
         | 
| 134 178 | 
             
                        FalkorLib.config.git do |c|
         | 
| @@ -153,32 +197,32 @@ describe FalkorLib::Git do | |
| 153 197 | 
             
                        b.should == 0
         | 
| 154 198 | 
             
                    end
         | 
| 155 199 |  | 
| 156 | 
            -
             | 
| 200 | 
            +
                    # ---------- Subtrees ---------------
         | 
| 157 201 | 
             
                    if FalkorLib::Git.command? 'subtree'
         | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 164 | 
            -
             | 
| 165 | 
            -
             | 
| 166 | 
            -
             | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 202 | 
            +
                        FalkorLib.config.git do |c|
         | 
| 203 | 
            +
                            c[:subtrees] = {
         | 
| 204 | 
            +
                                'falkor/lib' => {
         | 
| 205 | 
            +
                                    :url    => 'https://github.com/Falkor/falkorlib.git',
         | 
| 206 | 
            +
                                    :branch => 'devel'
         | 
| 207 | 
            +
                                },
         | 
| 208 | 
            +
                            }
         | 
| 209 | 
            +
                        end
         | 
| 210 | 
            +
             | 
| 211 | 
            +
                        it "#subtree_init? -- should check that the subtree(s) have not been initialized" do
         | 
| 212 | 
            +
                            b = FalkorLib::Git.subtree_init?( dir )
         | 
| 169 213 | 
             
                            b.should be_false
         | 
| 170 | 
            -
             | 
| 214 | 
            +
                        end
         | 
| 171 215 |  | 
| 172 216 | 
             
                        it "#subtree_init - initialize some Git Subtrees" do
         | 
| 173 | 
            -
             | 
| 217 | 
            +
             | 
| 174 218 | 
             
                            b = FalkorLib::Git.subtree_init( dir )
         | 
| 175 219 | 
             
                            b.should == 0
         | 
| 176 220 | 
             
                        end
         | 
| 177 221 |  | 
| 178 | 
            -
             | 
| 179 | 
            -
             | 
| 180 | 
            -
             | 
| 181 | 
            -
             | 
| 222 | 
            +
                        it "#subtree_init? -- should check that the subtree(s) have been initialized" do
         | 
| 223 | 
            +
                            b = FalkorLib::Git.subtree_init?( dir )
         | 
| 224 | 
            +
                            b.should be_true
         | 
| 225 | 
            +
                        end
         | 
| 182 226 |  | 
| 183 227 | 
             
                        it "#subtree_up" do
         | 
| 184 228 | 
             
                            b = FalkorLib::Git.subtree_up( dir )
         | 
| @@ -197,7 +241,7 @@ describe FalkorLib::Git do | |
| 197 241 |  | 
| 198 242 | 
             
                    # shall be the last check
         | 
| 199 243 | 
             
                    it "#dirty? - check dirty git directory" do
         | 
| 200 | 
            -
             | 
| 244 | 
            +
                        execute "echo 'toto' > #{afile}"
         | 
| 201 245 | 
             
                        b = FalkorLib::Git.dirty?( dir )
         | 
| 202 246 | 
             
                        b.should be_true
         | 
| 203 247 | 
             
                    end
         |