class Ki::BuildVersionMetadataFile

Builds and updates ki-metada.json file based on parameters and added files @see VersionMetadataFile

Public Instance Methods

execute(ctx, args) click to toggle source
# File lib/cmd/version_cmd.rb, line 29
def execute(ctx, args)
  # opts.parse parses input parameters and fills in configuration parameters
  files = opts.parse(args)
  if source_parameters.size > 0
    metadata_file.source(source_parameters)
  end
  # adds files to metadata and fills in parameters
  metadata_file.add_files(input_dir, files, default_parameters)
  metadata_file.save
end
help() click to toggle source
# File lib/cmd/version_cmd.rb, line 84
    def help
      <<EOF
"#{shell_command}" can be used to generate version metadata files. Version metadata files
contain information about files (size, permission bits, hash checksums), version origins
and dependencies.

After version metadata file is ready, it can be imported to repository using version-import.

### Usage

    #{shell_command} <parameters> file_pattern1*.* file_pattern2*.*

### Examples

    #{shell_command} test.sh
    #{shell_command} readme* -t doc
    #{shell_command} -d my/component/1,name=comp,path=doc,internal -O "mv doc/test.sh helloworld.sh"
    ki version-import

### Parameters
#{opts}
EOF
    end
opts() click to toggle source
# File lib/cmd/version_cmd.rb, line 40
def opts
  OptionParser.new do |opts|
    opts.banner = ""
    opts.on("-f", "--file FILE", "Version file target") do |v|
      if !defined? @input_dir
        input_dir(File.dirname(v))
      end
      metadata_file.init_from_path(v)
    end
    opts.on("-i", "--input-directory INPUT-DIR", "Input directory") do |v|
      input_dir(v)
    end
    opts.on("-v", "--version-id VERSION-ID", "Version's id") do |v|
      metadata_file.version_id=v
    end
    ["url", "tag-url", "author", "repotype"].each do |source_param|
      opts.on("--source-#{source_param} #{source_param.upcase}", "Build source parameter #{source_param}") do |v|
        source_parameters[source_param]=v
      end
    end
    opts.on("-t", "--tags TAGS", "Tag files with keywords") do |v|
      default_parameters["tags"]= v.split(",").sort
    end
    hash_prefix = "/hashing"
    hashes = KiCommand::KiExtensions.find(hash_prefix).map { |k, v| k[hash_prefix.size+1..-1] }
    opts.on("--hashes HASHES", "Calculate checksums using defined hash algos. Default: sha1. Available: #{hashes.join(", ")}") do |v|
      default_parameters["hashes"]= v.split(",").sort
    end
    opts.on("-d", "--dependency DEPENDENCY", "Dependency definition my/component/123[,name=AA][,path=aa][,internal]") do |v|
      previous_dep(metadata_file.add_dependency(v))
    end
    opts.on("-o", "--operation OP", "Add operation to previous dependency") do |v|
      previous_dep.add_operation(v.split(" "))
    end
    opts.on("-O", "--version-operation OP", "Add operation to version") do |v|
      metadata_file.add_operation(v.split(" "))
    end
  end
end
summary() click to toggle source
# File lib/cmd/version_cmd.rb, line 80
def summary
  "Create version metadata file"
end