class XoltiCLI

Public Instance Methods

__print_license() click to toggle source
# File lib/xolti.rb, line 112
def __print_license()
        puts "Xolti version #{XoltiVersion.get}, Copyright (C) 2016 Rémi Even"
        puts "Xolti comes with ABSOLUTELY NO WARRANTY."
        puts "This is free software, and you are welcome to redistribute it"
        puts "under the terms of the GPLv3."
        puts "The complete license can be found at \"https://www.gnu.org/licenses/gpl.txt\"."
        puts "The source code of xolti can be found at \"https://github.com/RemiEven/xolti\"."
end
__print_version() click to toggle source
# File lib/xolti.rb, line 105
def __print_version()
        puts XoltiVersion.get
end
add(file) click to toggle source
# File lib/xolti.rb, line 38
def add(file)
        config = self.load_config {|e| puts e.message; exit 1 }
        if File.file?(file)
                PrintUtils.puts_single "Adding header to #{file}"
                Core.licensify(file, config) if !Core.has_header(file, config)
        else
                FileFinder.explore_folder(file)
                        .reject{|source_file| Core.has_header(source_file, config)}
                        .each do |source_file|
                                PrintUtils.puts_single "Adding header to #{source_file}"
                                Core.licensify(source_file, config)
                        end
        end
end
ask_for_author(config) click to toggle source
# File lib/xolti.rb, line 129
def ask_for_author(config)
        print "author: "
        typed_author = STDIN.gets.chomp
        config["project_info"]["author"] = typed_author
end
ask_for_license(config) click to toggle source
# File lib/xolti.rb, line 135
def ask_for_license(config)
        default_license = "GPL3.0"
        print "license (#{default_license}): "
        typed_license = STDIN.gets.chomp
        config["license"] = (typed_license == "") ? default_license : typed_license
end
ask_for_name(config) click to toggle source
# File lib/xolti.rb, line 122
def ask_for_name(config)
        default_name = Pathname.getwd.basename.to_s
        print "name (#{default_name}): "
        typed_name = STDIN.gets.chomp
        config["project_info"]["project_name"] = (typed_name == "") ? default_name : typed_name
end
check_file(file, config) click to toggle source
# File lib/xolti.rb, line 150
def check_file(file, config)
        diffs = Core.validate_header(file, config)
        if diffs.length > 0
                result = []
                diffs.each do |diff|
                        if diff[:type] && diff[:type] == :no_header_found
                                return ["No header found."]
                        else
                                result << "Line #{diff[:line]}: expected \"#{diff[:expected]}\" but got \"#{diff[:actual]}\"."
                        end
                end
                return result.join("\n")
        end
end
delete(file) click to toggle source
# File lib/xolti.rb, line 83
def delete(file)
        PrintUtils.puts_single "Deleting header in #{file}"
        config = self.load_config {|e| puts e.message; exit 1 }
        Core.delete_header(file, config)
end
generate_license() click to toggle source
# File lib/xolti.rb, line 90
def generate_license()
        config = self.load_config {|e| puts e.message; exit 1 }
        filename = "LICENSE"
        if File.exists?(File.join(Dir.pwd, filename)) then
                PrintUtils.puts_single "There is already a #{filename} file. Abort generation."
        else
                full_license = IO.binread(Resources.get_full_license_path(config.license))
                File.write(filename, full_license % config.project_info)
                PrintUtils.puts_single "Created the #{filename} file (#{config.license})"
        end
end
init() click to toggle source
# File lib/xolti.rb, line 167
def init()
        config = self.load_config
        return PrintUtils.puts_single "Xolti is already initialiazed" if config != nil
        PrintUtils.puts_single "Initializing xolti project"
        config = {"project_info" => {}}
        self.ask_for_name(config)
        self.ask_for_author(config)
        self.ask_for_license(config)
        File.write("xolti.yml", config.to_yaml)
end
list_missing() click to toggle source
# File lib/xolti.rb, line 72
def list_missing()
        dir = Dir.pwd
        config = self.load_config {|e| puts e.message; exit 1 }
        missing_headers = FileFinder.explore_folder(dir)
                .reject{|file| Core.has_header(file, config)}
        return PrintUtils.puts_single "All files OK" if missing_headers.empty?
        PrintUtils.puts_single "Files missing (proper) header:"
        PrintUtils.puts(missing_headers.map{|file| file.sub(dir + "/", "")}, 1)
end
load_config() { |e| ... } click to toggle source
# File lib/xolti.rb, line 142
def load_config()
        begin
                return XoltiConfig.load_config
        rescue Exception => e
                yield e if block_given?
        end
end
status(file = ".") click to toggle source
# File lib/xolti.rb, line 54
def status(file = ".")
        config = self.load_config {|e| puts e; exit 1 }
        if File.file?(file)
                PrintUtils.puts self.check_file(file, config) || "Correct header"
        else
                FileFinder.explore_folder(file)
                        .each do |source_file|
                                message = self.check_file(source_file, config)
                                if (message)
                                        PrintUtils.puts_single "#{source_file}"
                                        PrintUtils.puts(message, 1)
                                        PrintUtils.puts_single ""
                                end
                        end
        end
end