From 6cd167eaac7b764bcaefe31a9144dd38992cc9ab Mon Sep 17 00:00:00 2001 From: David Martin Date: Wed, 17 Sep 2014 11:35:16 +0100 Subject: [PATCH] Added list-projects command & spec list-projects command usage Single quotes Use single quotes Use single quotes --- README.md | 4 ++++ bin/gitlab-projects | 2 ++ lib/gitlab_projects.rb | 10 +++++++++- spec/gitlab_projects_spec.rb | 16 ++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8616445409..5f3c988f3c 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,10 @@ Remove repo: ./bin/gitlab-projects rm-project gitlab/gitlab-ci.git +List repos: + + ./bin/gitlab-projects list-projects + Import repo: # Default timeout is 2 minutes diff --git a/bin/gitlab-projects b/bin/gitlab-projects index 01de20b9ef..c354fe5655 100755 --- a/bin/gitlab-projects +++ b/bin/gitlab-projects @@ -11,6 +11,8 @@ require_relative '../lib/gitlab_init' # # /bin/gitlab-projects rm-project gitlab/gitlab-ci.git # +# /bin/gitlab-projects list-projects +# # /bin/gitlab-projects mv-project gitlab/gitlab-ci.git randx/fork.git # # /bin/gitlab-projects fork-project gitlab/gitlab-ci.git randx diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb index 58bbd28cef..82ae519871 100644 --- a/lib/gitlab_projects.rb +++ b/lib/gitlab_projects.rb @@ -31,7 +31,7 @@ def initialize @command = ARGV.shift @project_name = ARGV.shift @repos_path = GitlabConfig.new.repos_path - @full_path = File.join(@repos_path, @project_name) + @full_path = File.join(@repos_path, @project_name) unless @project_name.nil? end def exec @@ -41,6 +41,7 @@ def exec when 'create-tag'; create_tag when 'rm-tag'; rm_tag when 'add-project'; add_project + when 'list-projects'; puts list_projects when 'rm-project'; rm_project when 'mv-project'; mv_project when 'import-project'; import_project @@ -93,6 +94,13 @@ def add_project system(*cmd) && self.class.create_hooks(full_path) end + def list_projects + $logger.info 'Listing projects' + Dir.chdir(repos_path) do + next Dir.glob('**/*.git') + end + end + def rm_project $logger.info "Removing project #{@project_name} from <#{full_path}>." FileUtils.rm_rf(full_path) diff --git a/spec/gitlab_projects_spec.rb b/spec/gitlab_projects_spec.rb index 0060fa9225..a592e62460 100644 --- a/spec/gitlab_projects_spec.rb +++ b/spec/gitlab_projects_spec.rb @@ -135,6 +135,22 @@ end end + describe :list_projects do + let(:gl_projects) do + build_gitlab_projects('add-project', "list_test/#{repo_name}") + end + + before do + FileUtils.mkdir_p(tmp_repos_path) + end + + it 'should create projects and list them' do + GitlabProjects.stub(create_hooks: true) + gl_projects.exec + gl_projects.send(:list_projects).should == ["list_test/#{repo_name}"] + end + end + describe :mv_project do let(:gl_projects) { build_gitlab_projects('mv-project', repo_name, 'repo.git') } let(:new_repo_path) { File.join(tmp_repos_path, 'repo.git') }