Class: Akabei::CLI

Inherits:
Thor
  • Object
show all
Extended by:
CommonOptions
Includes:
BuildHelper
Defined in:
lib/akabei/cli.rb

Defined Under Namespace

Modules: CommonOptions

Constant Summary

Constants included from CommonOptions

CommonOptions::COMMON_OPTIONS

Instance Method Summary collapse

Methods included from CommonOptions

common_options

Methods included from BuildHelper

#build_in_chroot

Instance Method Details

#abs_add(package_dir, abs_path) ⇒ Object



110
111
112
113
114
115
# File 'lib/akabei/cli.rb', line 110

def abs_add(package_dir, abs_path)
  builder = Builder.new
  builder.srcdest = options[:srcdest]
  abs = Abs.new(abs_path, options[:repo_name])
  abs.add(package_dir, builder)
end

#abs_remove(package_name, abs_path) ⇒ Object



119
120
121
122
# File 'lib/akabei/cli.rb', line 119

def abs_remove(package_name, abs_path)
  abs = Abs.new(abs_path, options[:repo_name])
  abs.remove(package_name)
end

#build(package_dir) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/akabei/cli.rb', line 82

def build(package_dir)
  chroot = ChrootTree.new(options[:chroot_dir], options[:arch])
  chroot.makepkg_config = options[:makepkg_config]
  chroot.pacman_config = options[:pacman_config]

  repo_path = Pathname.new(options[:repo_dir])
  repo_name = options[:repo_name]
  builder = Builder.new(
    signer: Signer.get(options[:package_key]),
    srcdest: options[:srcdest],
    logdest: options[:logdest],
    pkgdest: repo_path,
  )

  db_path = repo_path.join("#{repo_name}.db")
  files_path = repo_path.join("#{repo_name}.files")
  repo_db = Repository.load(db_path, signer: Signer.get(options[:repo_key]))
  repo_files = Repository.load(files_path, include_files: true)

  abs = Abs.new(repo_path.join("#{repo_name}.abs.tar.gz"), repo_name)

  build_in_chroot(builder, chroot, repo_db, repo_files, abs, Pathname.new(package_dir))
  repo_db.save(db_path)
  repo_files.save(files_path)
end

#files_add(package_path, db_path) ⇒ Object



145
146
147
148
149
150
151
# File 'lib/akabei/cli.rb', line 145

def files_add(package_path, db_path)
  repo = Repository.new
  repo.include_files = true
  repo.load(db_path)
  repo.add(Package.new(package_path))
  repo.save(db_path)
end

#files_remove(package_name, db_path) ⇒ Object



154
155
156
157
158
159
160
# File 'lib/akabei/cli.rb', line 154

def files_remove(package_name, db_path)
  repo = Repository.new
  repo.include_files = true
  repo.load(db_path)
  repo.remove(package_name)
  repo.save(db_path)
end

#repo_add(package_path, db_path) ⇒ Object



126
127
128
129
130
131
132
# File 'lib/akabei/cli.rb', line 126

def repo_add(package_path, db_path)
  repo = Repository.new
  repo.signer = options[:repo_key] && Signer.new(options[:repo_key])
  repo.load(db_path)
  repo.add(Package.new(package_path))
  repo.save(db_path)
end

#repo_remove(package_name, db_path) ⇒ Object



136
137
138
139
140
141
142
# File 'lib/akabei/cli.rb', line 136

def repo_remove(package_name, db_path)
  repo = Repository.new
  repo.signer = options[:repo_key] && Signer.new(options[:repo_key])
  repo.load(db_path)
  repo.remove(package_name)
  repo.save(db_path)
end

#versionObject



166
167
168
169
170
171
172
# File 'lib/akabei/cli.rb', line 166

def version
  if options[:numeric]
    puts VERSION
  else
    puts "akabei #{VERSION} on #{RUBY_DESCRIPTION}"
  end
end