class Creator

Copyright (C) 2013 Cornelius Schumacher <schumacher@kde.org>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Public Class Methods

new(settings, name) click to toggle source
# File lib/creator.rb, line 19
def initialize settings, name
  @settings = settings
  @settings.offline = true
  @name = name
  @dir = File.join settings.manifest_path, name
end

Public Instance Methods

create(version, release_date) click to toggle source
# File lib/creator.rb, line 100
def create version, release_date
  create_dir
  m = create_manifest version, release_date
  write_manifest m
end
create_dir() click to toggle source
# File lib/creator.rb, line 52
def create_dir
  FileUtils.mkdir_p File.join(@settings.manifest_path,@name)
end
create_generic() click to toggle source
# File lib/creator.rb, line 94
def create_generic
  create_dir
  m = create_generic_manifest
  write_manifest m
end
create_generic_manifest() click to toggle source
# File lib/creator.rb, line 86
def create_generic_manifest
  m = ManifestGeneric.new
  m.name = @name
  m.display_name = @name.capitalize
  m.platforms = [ "Linux" ]
  m
end
create_kf5(version, release_date) click to toggle source
# File lib/creator.rb, line 106
def create_kf5 version, release_date
  create_dir

  m = create_manifest version, release_date

  m["authors"] = [ "The KDE Community" ]
  m["licenses"] = [ "LGPLv2.1+" ]

  vcs = "https://projects.kde.org/projects/kde/kdelibs/repository/revisions/frameworks/show/tier1/"
  vcs += @name
  m["urls"] = {
    "vcs" => vcs,
    "homepage" => "http://community.kde.org/Frameworks"
  }

  m["packages"] = {
    "source" => "http://anongit.kde.org/kdelibs/kdelibs-latest.tar.gz"
  }

  write_manifest m
end
create_manifest(version, release_date) click to toggle source
# File lib/creator.rb, line 56
def create_manifest version, release_date
  m = ManifestRelease.new
  m.name = @name
  m.version = version
  m.release_date = release_date
  if version == "edge"
    m.maturity = "edge"
  else
    m.maturity = "stable"
  end
  m.platforms = [ "Linux" ]
  m
end
is_new?() click to toggle source
# File lib/creator.rb, line 26
def is_new?
  return !File.exists?( @dir )
end
manifest_basename() click to toggle source
# File lib/creator.rb, line 82
def manifest_basename
  File.join @settings.manifest_path, @name, @name
end
update(version, release_date) click to toggle source
# File lib/creator.rb, line 36
def update version, release_date
  filename = File.join @settings.manifest_path, @name,
    "#{@name}.#{release_date}.manifest"

  mh = ManifestHandler.new @settings
  mh.read_remote

  m = mh.manifest @name
  m.version = version
  m.release_date = release_date

  File.open( filename, "w" ) do |file|
    file.puts m.to_json
  end
end
validate_directory() click to toggle source
# File lib/creator.rb, line 30
def validate_directory
  if !File.exists? @dir
    raise "Unable to find manifest directory '#{@dir}'"
  end
end
write_manifest(manifest) click to toggle source
# File lib/creator.rb, line 70
def write_manifest manifest
  filename = manifest_basename
  if manifest.release_date
    filename += ".#{manifest.release_date}"
  end
  filename += ".manifest"

  File.open( filename, "w" ) do |file|
    file.puts manifest.to_json
  end
end