diff --git a/add_admin.rake b/add_admin.rake deleted file mode 100644 index 5e27580..0000000 --- a/add_admin.rake +++ /dev/null @@ -1,31 +0,0 @@ -namespace :debshots do - desc "Remove duplicate images" - - task :remove_duplicate_images => :environment do - Rails.logger = Logger.new(STDOUT) - Rails.logger.level = Logger::INFO - #Rails.logger.level = Logger::DEBUG - - Rails.logger.info "Removing packages with 'nil' screenshots" - - Screenshot.where(image_fingerprint: nil).each do |ss| - Rails.logger.info "Destroying screenshot #{ss.id} of package #{ss.package.name} that has nil data" - ss.destroy - end - - Rails.logger.info "Removing packages with duplicate screenshot checksums" - - loop do - destroyed = 0 - Screenshot.select(:package_id, :image_fingerprint).group(:package_id, :image_fingerprint, :created_at).having("count(*) > 1").each do |ss| - # Look again for screenshots of this fingerprint. - # This extra step may seem stupid but the above query lead to package_id=NULL results sometimes. - del = Screenshot.find_by(image_fingerprint: ss.image_fingerprint) - Rails.logger.info "Destroying duplicate screenshot #{del.id} of package #{del.package.name}" - del.destroy - destroyed += 1 - end - break if destroyed == 0 - end - end -end diff --git a/lib/tasks/add_admin.rake b/lib/tasks/add_admin.rake new file mode 100644 index 0000000..82c9b07 --- /dev/null +++ b/lib/tasks/add_admin.rake @@ -0,0 +1,12 @@ +namespace :debshots do + desc 'Create an administrative local user' + + task :create_admin, %i[email password] => :environment do |t, args| + Rails.logger = Logger.new($stdout) + Rails.logger.level = Logger::INFO + # Rails.logger.level = Logger::DEBUG + + admin = User.create(email: args.email, password: args.password, provider: 'local') + admin.save! + end +end