lib/tasks/setup.rb in dev-2.1.153 vs lib/tasks/setup.rb in dev-2.1.154

- old
+ new

@@ -1,191 +1,188 @@ -desc 'performs setup commands' -task :setup do Tasks.execute_task :setup;end +# frozen_string_literal: true +desc "performs setup commands" +task :setup do Tasks.execute_task :setup; end + # # use the SVN_EXPORTS hash to define svn exports destined for DEV_ROOT/dep # # SVN_EXPORT={ 'System.Data.SQLite/1.0.93.0' => 'https://third-party.googlecode.com/svn/trunk/System.Data.SQLite/1.0.93.0' } # class Setup < Array + def initialize(value = nil) + env = value if value.is_a? Environment + end - def initialize value=nil - env=value if value.kind_of? Environment - end + def update + env = Environment.new if env.nil? + add_quiet "bundle install" if File.exist? "Gemfile" - def update - env=Environment.new if env.nil? - add_quiet 'bundle install' if File.exists? 'Gemfile' - - Dir.glob('*.gemspec').each{|gemspec_file| - add_quiet "<%Gemspec.update('#{gemspec_file}')%>" - } + Dir.glob("*.gemspec").each do |gemspec_file| + add_quiet "<%Gemspec.update('#{gemspec_file}')%>" + end - if(Dir.glob('**/packages.config').length > 0) - Dir.glob('**/*.sln').each{|sln_file| - add_quiet "nuget restore \"#{sln_file}\"" if(!sln_file.include?('packages/')) - } - else - Dir.glob('**/*.sln').each{|sln_file| - add_quiet "dotnet restore \"#{sln_file}\"" - } - end + if Dir.glob("**/packages.config").length.positive? + Dir.glob("**/*.sln").each do |sln_file| + add_quiet "nuget restore \"#{sln_file}\"" unless sln_file.include?("packages/") + end + else + Dir.glob("**/*.sln").each do |sln_file| + add_quiet "dotnet restore \"#{sln_file}\"" + end + end - if(File.exists?('project.json')) - add_quiet "dotnet restore" - end + add_quiet "dotnet restore" if File.exist?("project.json") - #puts 'Setup checking SVN_EXPORTS...' if env.debug? - if(defined?(SVN_EXPORTS)) - SVN_EXPORTS.each{|k,v| - dest="#{Command.dev_root}/dep/#{k}" - if(!File.exists?(dest)) - puts "#{Command.dev_root}/dep/#{k} does not exists" if env.debug? - FileUtils.mkdir_p(File.dirname(dest)) if !File.exists?(File.dirname(dest)) - if(!dest.include?("@")) - puts "adding svn export #{v} #{dest}" if env.debug? - add_quiet "svn export #{v} #{dest}" - end - if(dest.include?("@")) - puts "adding svn export #{v} #{dest}@" if env.debug? - add_quiet "svn export #{v} #{dest}@" - end - #add "svn export #{v} #{dest}" if !dest.include?("@") - #add "svn export #{v} #{dest}@" if dest.include?("@") - else - puts "#{Command.dev_root}/dep/#{k} exists." if env.debug? - end - } - else - #puts 'SVN_EXPORTS is not defined' if env.debug? - end + # puts 'Setup checking SVN_EXPORTS...' if env.debug? + if defined?(SVN_EXPORTS) + SVN_EXPORTS.each do |k, v| + dest = "#{Command.dev_root}/dep/#{k}" + if !File.exist?(dest) + puts "#{Command.dev_root}/dep/#{k} does not exists" if env.debug? + FileUtils.mkdir_p(File.dirname(dest)) unless File.exist?(File.dirname(dest)) + unless dest.include?("@") + puts "adding svn export #{v} #{dest}" if env.debug? + add_quiet "svn export #{v} #{dest}" + end + if dest.include?("@") + puts "adding svn export #{v} #{dest}@" if env.debug? + add_quiet "svn export #{v} #{dest}@" + end + # add "svn export #{v} #{dest}" if !dest.include?("@") + # add "svn export #{v} #{dest}@" if dest.include?("@") + elsif env.debug? + puts "#{Command.dev_root}/dep/#{k} exists." + end + end + else + # puts 'SVN_EXPORTS is not defined' if env.debug? + end - if(defined?(GIT_EXPORTS)) - GIT_EXPORTS.each{|k,v| - directory = "#{Command.dev_root}/dep/#{k}" - if(!File.exists?(directory)) - if(v.include?('@')) - puts `git clone #{v.split('@')[0]} #{directory}` - Dir.chdir(directory) do - puts `git reset --hard #{v.split('@')[1]}` - end - else - add_quiet "git clone #{v} #{directory}" - end - end - } - end + if defined?(GIT_EXPORTS) + GIT_EXPORTS.each do |k, v| + directory = "#{Command.dev_root}/dep/#{k}" + unless File.exist?(directory) + if v.include?("@") + puts `git clone #{v.split("@")[0]} #{directory}` + Dir.chdir(directory) do + puts `git reset --hard #{v.split("@")[1]}` + end + else + add_quiet "git clone #{v} #{directory}" + end + end + end + end - if(defined?(ZIP_EXPORTS)) - ZIP_EXPORTS.each{|k,v| - #puts "Here: #{k} -> #{v}" - directory = "#{Command.dev_root}/dep/#{k}" - Zip.export(v, directory) unless(Dir.exists?(directory)) - } - end - - if(defined?(VERSION)) - #puts "updating nuspec files for VERSION #{VERSION}" if env.debug? - Dir.glob('*.nuspec').each{|nuspec| - #current_version=IO.read(nuspec).scan(/<version>[\d.\w]+<\/version>/)[0] - current_version=IO.read(nuspec).scan(/<version>[\d.\w-]+<\/version>/)[0] - if(!current_version.nil?) - tag='' - if(current_version.length > 1) - tag=IO.read(nuspec).scan(/<version>([\d.]+)([\w-]+)?<\/version>/)[0][1] - puts "pre-release tag #{tag}" - else - puts 'no pre-release tag' - end - - puts "#{nuspec} current version=#{current_version}" #if env.debug? - if(current_version.include?('<version>')) - target_version="<version>#{VERSION}#{tag}</version>" - if(current_version != target_version) - add_quiet "<%Text.replace_in_file('#{nuspec}','#{current_version}','#{target_version}')%>" - end - end - end - } - Dir.glob('**/AssemblyInfo.cs').each{|assemblyInfo| - current_version=IO.read(assemblyInfo).scan(/Version\(\"[\d.]+\"\)/)[0] - if(!current_version.nil?) - puts "#{assemblyInfo} current version=#{current_version}" if env.debug? - if(current_version.include?('Version(')) - target_version="Version(\"#{VERSION}\")" - if(current_version != target_version) - add_quiet "<%Text.replace_in_file('#{assemblyInfo}','#{current_version}','#{target_version}')%>" - end - end - end - } - Dir.glob('*.yml').each{|yml| - puts "scanning #{yml} for version..." if defined?(DEBUG) - current_version=IO.read(yml).scan(/v:\(\"[\d.]+\"\)/)[0] - puts "no version found in #{yml}" if current_version.nil? - if(!current_version.nil?) - puts "#{yml} current version=#{current_version}" if defined?(DEBUG) - if(current_version.include?('v:')) - target_version="v:\"#{VERSION}\"" - if(current_version != target_version) - add "<%Text.replace_in_file('#{yml}','#{current_version}','#{target_version}')%>" - end - end - end - } - Dir.glob('**/*.csproj').each{|csproj| - current_version=IO.read(csproj).scan(/<PackageVersion>[\d.]+<\/PackageVersion>/)[0] - if(!current_version.nil?) - puts "#{csproj} current version=#{current_version}" if env.debug? - if(current_version.include?('<PackageVersion>')) - target_version="<PackageVersion>#{VERSION}</PackageVersion>" - if(current_version != target_version) - add_quiet "<%Text.replace_in_file('#{csproj}','#{current_version}','#{target_version}')%>" - end - end - end - current_version=IO.read(csproj).scan(/<Version>[\d.]+<\/Version>/)[0] - if(!current_version.nil?) - puts "#{csproj} current version=#{current_version}" if env.debug? - if(current_version.include?('<Version>')) - target_version="<Version>#{VERSION}</Version>" - if(current_version != target_version) - add_quiet "<%Text.replace_in_file('#{csproj}','#{current_version}','#{target_version}')%>" - end - end - end - } - Dir.glob('**/*.{wxs,_wxs}').each{|wxs| - begin - current_version=IO.read(wxs).scan(/\sVersion=[\"']([\d.]+)[\"']/)[0][0] - puts "#{wxs} current version=#{current_version}" if env.debug? - if(!current_version.nil?)#nclude?('Version=')) - target_version=VERSION#{}"Version=\"#{VERSION}\")=" - if(current_version != target_version) - add_quiet "<%Text.replace_in_file('#{wxs}','#{current_version}','#{target_version}')%>" - end - end - rescue - end - } - end - log_debug_info("Setup") - end + if defined?(ZIP_EXPORTS) + ZIP_EXPORTS.each do |k, v| + # puts "Here: #{k} -> #{v}" + directory = "#{Command.dev_root}/dep/#{k}" + Zip.export(v, directory) unless Dir.exist?(directory) + end + end - def self.setupStandardClassLib(name,language) - projectExtension="csproj" - projectExtension="fsproj" if(language=="F#") - FileUtils.mkdir(name)if(!Dir.exists?(name)) - if(!File.exists?("#{name}/#{name}.#{projectExtension}")) - Dir.chdir(name) do - puts `dotnet new classlib -lang #{language}` - end - end - FileUtils.mkdir("#{name}.Test")if(!Dir.exists?("#{name}.Test")) - if(!File.exists?("#{name}.Test/#{name}.Test.#{projectExtension}")) - Dir.chdir("#{name}.Test") do - puts `dotnet new nunit -lang #{language}` - puts `dotnet add reference ../#{name}/#{name}.#{projectExtension}` - end - end - end -end \ No newline at end of file + if defined?(VERSION) + # puts "updating nuspec files for VERSION #{VERSION}" if env.debug? + Dir.glob("*.nuspec").each do |nuspec| + # current_version=IO.read(nuspec).scan(/<version>[\d.\w]+<\/version>/)[0] + current_version = IO.read(nuspec).scan(%r{<version>[\d.\w-]+</version>})[0] + next if current_version.nil? + + tag = "" + if current_version.length > 1 + tag = IO.read(nuspec).scan(%r{<version>([\d.]+)([\w-]+)?</version>})[0][1] + puts "pre-release tag #{tag}" + else + puts "no pre-release tag" + end + + puts "#{nuspec} current version=#{current_version}" # if env.debug? + next unless current_version.include?("<version>") + + target_version = "<version>#{VERSION}#{tag}</version>" + if current_version != target_version + add_quiet "<%Text.replace_in_file('#{nuspec}','#{current_version}','#{target_version}')%>" + end + end + Dir.glob("**/AssemblyInfo.cs").each do |assemblyInfo| + current_version = IO.read(assemblyInfo).scan(/Version\("[\d.]+"\)/)[0] + next if current_version.nil? + + puts "#{assemblyInfo} current version=#{current_version}" if env.debug? + next unless current_version.include?("Version(") + + target_version = "Version(\"#{VERSION}\")" + if current_version != target_version + add_quiet "<%Text.replace_in_file('#{assemblyInfo}','#{current_version}','#{target_version}')%>" + end + end + Dir.glob("*.yml").each do |yml| + puts "scanning #{yml} for version..." if defined?(DEBUG) + current_version = IO.read(yml).scan(/v:\("[\d.]+"\)/)[0] + puts "no version found in #{yml}" if current_version.nil? + next if current_version.nil? + + puts "#{yml} current version=#{current_version}" if defined?(DEBUG) + next unless current_version.include?("v:") + + target_version = "v:\"#{VERSION}\"" + if current_version != target_version + add "<%Text.replace_in_file('#{yml}','#{current_version}','#{target_version}')%>" + end + end + Dir.glob("**/*.csproj").each do |csproj| + current_version = IO.read(csproj).scan(%r{<PackageVersion>[\d.]+</PackageVersion>})[0] + unless current_version.nil? + puts "#{csproj} current version=#{current_version}" if env.debug? + if current_version.include?("<PackageVersion>") + target_version = "<PackageVersion>#{VERSION}</PackageVersion>" + if current_version != target_version + add_quiet "<%Text.replace_in_file('#{csproj}','#{current_version}','#{target_version}')%>" + end + end + end + current_version = IO.read(csproj).scan(%r{<Version>[\d.]+</Version>})[0] + next if current_version.nil? + + puts "#{csproj} current version=#{current_version}" if env.debug? + next unless current_version.include?("<Version>") + + target_version = "<Version>#{VERSION}</Version>" + if current_version != target_version + add_quiet "<%Text.replace_in_file('#{csproj}','#{current_version}','#{target_version}')%>" + end + end + Dir.glob("**/*.{wxs,_wxs}").each do |wxs| + current_version = IO.read(wxs).scan(/\sVersion=["']([\d.]+)["']/)[0][0] + puts "#{wxs} current version=#{current_version}" if env.debug? + unless current_version.nil? # nclude?('Version=')) + target_version = VERSION # {}"Version=\"#{VERSION}\")=" + if current_version != target_version + add_quiet "<%Text.replace_in_file('#{wxs}','#{current_version}','#{target_version}')%>" + end + end + rescue StandardError + end + end + log_debug_info("Setup") + end + + def self.setupStandardClassLib(name, language) + projectExtension = "csproj" + projectExtension = "fsproj" if language == "F#" + FileUtils.mkdir(name) unless Dir.exist?(name) + unless File.exist?("#{name}/#{name}.#{projectExtension}") + Dir.chdir(name) do + puts `dotnet new classlib -lang #{language}` + end + end + FileUtils.mkdir("#{name}.Test") unless Dir.exist?("#{name}.Test") + unless File.exist?("#{name}.Test/#{name}.Test.#{projectExtension}") + Dir.chdir("#{name}.Test") do + puts `dotnet new nunit -lang #{language}` + puts `dotnet add reference ../#{name}/#{name}.#{projectExtension}` + end + end + end +end