Check the latest version from the LATEST text file
This commit is contained in:
		
							
								
								
									
										5
									
								
								Rakefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Rakefile
									
									
									
									
									
								
							@@ -147,11 +147,12 @@ AUTO_UPDATABLE = {
 | 
				
			|||||||
  'php82' => SlackBuilder::GitHub.new('php', 'php-src', php_transform),
 | 
					  'php82' => SlackBuilder::GitHub.new('php', 'php-src', php_transform),
 | 
				
			||||||
  'rdiff-backup' => SlackBuilder::GitHub.new('rdiff-backup', 'rdiff-backup'),
 | 
					  'rdiff-backup' => SlackBuilder::GitHub.new('rdiff-backup', 'rdiff-backup'),
 | 
				
			||||||
  'librsync' => SlackBuilder::GitHub.new('librsync', 'librsync'),
 | 
					  'librsync' => SlackBuilder::GitHub.new('librsync', 'librsync'),
 | 
				
			||||||
  'jitsi-meet-desktop' => SlackBuilder::GitHub.new('jitsi', 'jitsi-meet-electron')
 | 
					  'jitsi-meet-desktop' => SlackBuilder::GitHub.new('jitsi', 'jitsi-meet-electron'),
 | 
				
			||||||
 | 
					  'dmd' => SlackBuilder::LatestText.new('https://downloads.dlang.org/releases/LATEST')
 | 
				
			||||||
}.freeze
 | 
					}.freeze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
task :up2date do
 | 
					task :up2date do
 | 
				
			||||||
  AUTO_UPDATABLE.each do |key, value|
 | 
					  AUTO_UPDATABLE.each do |key, value|
 | 
				
			||||||
    latest_version = SlackBuilder.check_for_latest key, value
 | 
					    SlackBuilder.check_for_latest key, value
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ module SlackBuilder
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Reads the list fo tags from the GitHub API.
 | 
				
			||||||
  class GitHub < Repository
 | 
					  class GitHub < Repository
 | 
				
			||||||
    GITHUB_QUERY = <<~GQL
 | 
					    GITHUB_QUERY = <<~GQL
 | 
				
			||||||
      query ($name: String!, $owner: String!) {
 | 
					      query ($name: String!, $owner: String!) {
 | 
				
			||||||
@@ -66,6 +67,7 @@ module SlackBuilder
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Request the latest version from the packagist API.
 | 
				
			||||||
  class Packagist < Repository
 | 
					  class Packagist < Repository
 | 
				
			||||||
    def initialize(vendor, name)
 | 
					    def initialize(vendor, name)
 | 
				
			||||||
      super()
 | 
					      super()
 | 
				
			||||||
@@ -74,7 +76,6 @@ module SlackBuilder
 | 
				
			|||||||
      @name = name
 | 
					      @name = name
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Request the latest version from the packagist API.
 | 
					 | 
				
			||||||
    def latest
 | 
					    def latest
 | 
				
			||||||
      full_name = [@vendor, @name].join '/'
 | 
					      full_name = [@vendor, @name].join '/'
 | 
				
			||||||
      uri = URI "https://repo.packagist.org/p2/#{full_name}.json"
 | 
					      uri = URI "https://repo.packagist.org/p2/#{full_name}.json"
 | 
				
			||||||
@@ -85,6 +86,22 @@ module SlackBuilder
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Reads a remote LATEST file.
 | 
				
			||||||
 | 
					  class LatestText < Repository
 | 
				
			||||||
 | 
					    def initialize(latest_url)
 | 
				
			||||||
 | 
					      super()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      @latest_url = URI latest_url
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def latest
 | 
				
			||||||
 | 
					      response = Net::HTTP.get @latest_url, {
 | 
				
			||||||
 | 
					        'content-type' => 'text/plain'
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      response.strip
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  module_function
 | 
					  module_function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Checks if there is a new version for the package and returns the latest
 | 
					  # Checks if there is a new version for the package and returns the latest
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user