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_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