Class: Buildizer::Packager

Inherits:
Object
  • Object
show all
Includes:
BuildizerConfMod, CiMod, DockerCacheMod, GitMod, MiscMod, OvercommitMod, PackageCloudMod, PackageVersionTagMod, ProjectSettingsMod, UserSettingsMod
Defined in:
lib/buildizer/packager.rb,
lib/buildizer/packager/ci_mod.rb,
lib/buildizer/packager/git_mod.rb,
lib/buildizer/packager/misc_mod.rb,
lib/buildizer/packager/overcommit_mod.rb,
lib/buildizer/packager/docker_cache_mod.rb,
lib/buildizer/packager/package_cloud_mod.rb,
lib/buildizer/packager/user_settings_mod.rb,
lib/buildizer/packager/buildizer_conf_mod.rb,
lib/buildizer/packager/project_settings_mod.rb,
lib/buildizer/packager/package_version_tag_mod.rb

Defined Under Namespace

Modules: BuildizerConfMod, CiMod, DockerCacheMod, GitMod, MiscMod, OvercommitMod, PackageCloudMod, PackageVersionTagMod, ProjectSettingsMod, UserSettingsMod

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DockerCacheMod

#docker_cache, #docker_cache_clear_settings?, #docker_cache_setup!, #docker_cache_update_settings?, #setup_docker_cache_email, #setup_docker_cache_org, #setup_docker_cache_password, #setup_docker_cache_repo, #setup_docker_cache_server, #setup_docker_cache_user, #user_settings_docker_cache, #user_settings_docker_cache_org, #user_settings_docker_cache_repo_list, #user_settings_docker_cache_user, #user_settings_docker_cache_user_list

Methods included from PackageCloudMod

#package_cloud, #package_cloud_clear_settings?, #package_cloud_org, #package_cloud_repo, #package_cloud_setup!, #package_cloud_update_settings?, #setup_package_cloud_org_desc_list, #setup_package_cloud_org_list, #setup_package_cloud_repo_desc_list, #setup_package_cloud_repo_list, #user_settings_package_cloud, #user_settings_package_cloud_token

Methods included from OvercommitMod

#_overcommit_add_precommit!, #overcommit_ci_setup!, #overcommit_conf, #overcommit_conf_dump!, #overcommit_conf_path, #overcommit_conf_raw, #overcommit_hooks_path, #overcommit_hooks_pre_commit_path, #overcommit_setup!, #overcommit_verify_setup!

Methods included from GitMod

#git_available?, #git_remote_url

Methods included from PackageVersionTagMod

#package_version_tag, #package_version_tag_required_for_deploy?

Methods included from BuildizerConfMod

#after_prepare, #before_build, #before_prepare, #build_dep, #buildizer_conf, #buildizer_conf_path, #buildizer_conf_setup!, #buildizer_conf_update, #maintainer, #package_name, #package_version, #prepare, #targets

Methods included from CiMod

#ci, #ci_name

Methods included from UserSettingsMod

#user_settings, #user_settings_path, #user_settings_save!, #user_settings_setup!

Methods included from ProjectSettingsMod

#project_settings, #project_settings_path, #project_settings_save!, #project_settings_setup!

Methods included from MiscMod

#command, #command!, #raw_command, #raw_command!, #with_log, #write_path

Constructor Details

#initialize(cli) ⇒ Packager

Returns a new instance of Packager.



32
33
34
35
36
37
# File 'lib/buildizer/packager.rb', line 32

def initialize(cli)
  @cli = cli
  @package_path = Pathname.new(ENV['BUILDIZER_PATH'] || '.').expand_path
  @work_path = Pathname.new(ENV['BUILDIZER_WORK_PATH'] || '~/.buildizer').expand_path
  @debug = ENV['BUILDIZER_DEBUG'].nil? ? cli.options['debug'] : ENV['BUILDIZER_DEBUG'].to_s.on?
end

Instance Attribute Details

#cliObject (readonly)

Returns the value of attribute cli.



27
28
29
# File 'lib/buildizer/packager.rb', line 27

def cli
  @cli
end

#debugObject (readonly)

Returns the value of attribute debug.



30
31
32
# File 'lib/buildizer/packager.rb', line 30

def debug
  @debug
end

#package_pathObject (readonly)

Returns the value of attribute package_path.



28
29
30
# File 'lib/buildizer/packager.rb', line 28

def package_path
  @package_path
end

#work_pathObject (readonly)

Returns the value of attribute work_path.



29
30
31
# File 'lib/buildizer/packager.rb', line 29

def work_path
  @work_path
end

Instance Method Details

#build!Object



43
44
45
# File 'lib/buildizer/packager.rb', line 43

def build!
  builder.build
end

#builderObject



71
72
73
74
75
76
77
78
79
80
81
# File 'lib/buildizer/packager.rb', line 71

def builder
  @builder ||= begin
    build_type = buildizer_conf['build_type']
    raise Error, error: :input_error, message: "Buildizer build_type is not defined" unless build_type
    klass = {fpm: Builder::Fpm,
             native: Builder::Native,
             patch: Builder::Patch}[build_type.to_s.to_sym]
    raise Error, error: :input_error, message: "unknown build_type '#{build_type}'" unless klass
    klass.new(self)
  end
end

#deploy!Object



47
48
49
# File 'lib/buildizer/packager.rb', line 47

def deploy!
  builder.deploy
end

#git_hooks_pathObject



55
56
57
# File 'lib/buildizer/packager.rb', line 55

def git_hooks_path
  package_path.join('.git').join('hooks')
end

#git_old_hooks_pathObject



59
60
61
# File 'lib/buildizer/packager.rb', line 59

def git_old_hooks_path
  git_hooks_path.join('old-hooks')
end

#git_old_precommit_pathObject



67
68
69
# File 'lib/buildizer/packager.rb', line 67

def git_old_precommit_path
  git_old_hooks_path.join('pre-commit')
end

#git_precommit_pathObject



63
64
65
# File 'lib/buildizer/packager.rb', line 63

def git_precommit_path
  git_hooks_path.join('pre-commit')
end

#prepare!Object



39
40
41
# File 'lib/buildizer/packager.rb', line 39

def prepare!
  builder.prepare
end

#verify!Object



51
52
53
# File 'lib/buildizer/packager.rb', line 51

def verify!
  builder.verify
end