Class: Packaging::Configuration

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/packaging/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



28
29
30
31
32
33
34
35
36
# File 'lib/packaging/configuration.rb', line 28

def initialize
  @exclude_files = []
  @include_files = []
  @obs_api = "https://api.opensuse.org/"
  @obs_target = "openSUSE_Factory"
  @skip_license_check = []
  @maintenance_mode = false
  @documentation_minimal = 0
end

Instance Attribute Details

#documentation_minimalObject

Minimal documentation coverage to pass check:doc Default value is 0.



66
67
68
# File 'lib/packaging/configuration.rb', line 66

def documentation_minimal
  @documentation_minimal
end

#exclude_filesObject

array of files excluded for packaging



45
46
47
# File 'lib/packaging/configuration.rb', line 45

def exclude_files
  @exclude_files
end

#include_filesObject

Note:

recommended way is to generate in spec and not before package

array of files included for packaging (useful for e.g. for generated file not in git

Examples:

generate css from sass (where sass:update is task to generate it)

Packaging::Configuration.instance.include_files './**/*.css'
Rake::Task(:'package-local').prerequisites << "sass:update"


51
52
53
# File 'lib/packaging/configuration.rb', line 51

def include_files
  @include_files
end

#maintenance_modeObject

Specify if project is in maintenance mode. If so, then it create maintenance request instead of pull request



63
64
65
# File 'lib/packaging/configuration.rb', line 63

def maintenance_mode
  @maintenance_mode
end

#obs_apiObject

path to OBS api, useful if package is build in own instance of build service. By default api.opensuse.org



57
58
59
# File 'lib/packaging/configuration.rb', line 57

def obs_api
  @obs_api
end

#obs_projectObject

project name in OBS



53
54
55
# File 'lib/packaging/configuration.rb', line 53

def obs_project
  @obs_project
end

#obs_sr_projectObject

Project name in BS where submit request should go



55
56
57
# File 'lib/packaging/configuration.rb', line 55

def obs_sr_project
  @obs_sr_project
end

#obs_targetObject

obs build target, by default opensuse factory



59
60
61
# File 'lib/packaging/configuration.rb', line 59

def obs_target
  @obs_target
end

#package_dirObject



72
73
74
# File 'lib/packaging/configuration.rb', line 72

def package_dir
  @package_dir ||= "package"
end

#package_nameObject



68
69
70
# File 'lib/packaging/configuration.rb', line 68

def package_name
  @package_name ||= Dir.pwd.split("/").last
end

#skip_license_checkObject

additional list of regex to skip license check



61
62
63
# File 'lib/packaging/configuration.rb', line 61

def skip_license_check
  @skip_license_check
end

#versionObject



76
77
78
79
80
81
82
# File 'lib/packaging/configuration.rb', line 76

def version
  return @version if @version
  # try find version file
  versions = Dir.glob("version", File::FNM_CASEFOLD)
  return @version = File.read(versions.first).strip unless versions.empty?
  raise "cannot find version" #TODO more heuristic
end

Instance Method Details

#summaryArray<String>

configuration summary

Returns:

  • (Array<String>)

    human readable summary



86
87
88
89
90
91
92
93
94
95
# File 'lib/packaging/configuration.rb', line 86

def summary
  [
    "Package directory: #{package_dir}",
    "OBS instance:      #{obs_api}",
    "OBS project:       #{obs_project}",
    "OBS package name:  #{package_name}",
    "OBS build target:  #{build_dist}",
    "OBS submit target: #{obs_sr_project}"
  ]
end