Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'sinatra'
- set :port, 8080
- get '/packages' do
- packages = parse_packages
- @package_list = packages.keys
- @package_list.sort!
- erb(:packages)
- end
- get '/packages/:name' do |n|
- "a specific package with name #{n}"
- end
- def parse_packages
- package_collection = {}
- current_package = {}
- current_key = nil
- current_value = nil
- File.open('/var/lib/dpkg/status', "r").each do |line|
- line.match(/^(?<key>[A-Za-z-]+): (?<value>.+)/) do |m|
- current_package[current_key] = current_value
- current_key = m[:key]
- current_value = m[:value]
- end
- line.match(/^(?<value> .+)/) do |m|
- current_value += m[:value]
- end
- line.match(/^\n/) do |m|
- package_collection[current_package['Package']] = current_package
- end
- end
- data = package_collection
- return data
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement