An Interest In:
Web News this Week
- April 20, 2024
- April 19, 2024
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
April 18, 2022 11:03 am GMT
Original Link: https://dev.to/taw/open-source-adventures-episode-38-update-script-for-russian-losses-app-52lk
Open Source Adventures: Episode 38: Update script for Russian Losses App
I linked to the Russian Losses App many times in various internet arguments. It doesn't currently have a permanent URL for the latest version, and various versions just reflect state of the code at given point.
It makes sense to keep the code as is, but I still want each version to have the latest data. So I wrote this script:
#!/usr/bin/env rubyrequire "pathname"class UpdateCSV def initialize(archive_path) @archive_path = Pathname(archive_path) end def updated_equipment @updated_equipment ||= (@archive_path + "russia_losses_equipment.csv").read end def updated_personnel @updated_personnel ||= (@archive_path + "russia_losses_personnel.csv").read end def csv_files @csv_files ||= `git ls`.lines.map(&:chomp).grep(/\.csv\z/) end def call csv_files.each do |path| case path when /russia_losses_equipment/ Pathname(path).write(updated_equipment) when /russia_losses_personnel/ Pathname(path).write(updated_personnel) else puts "Unknown CSV file: #{path}" end end endendunless ARGV[0] STDERR.puts "Usage: #{$0} path_to_updated_archive" exit 1endUpdateCSV.new(ARGV[0]).call
To run it, I grab updated version from Kaggle, unpack it, and then run the update script.
There's a lot of files it needs to update. The ones in docs
are GitHub Pages compiled app:
docs/episode-29/tanks/russia_losses_equipment.csvdocs/episode-29/tanks/russia_losses_personnel.csvdocs/episode-30/russia_losses_equipment.982e4e03.csvdocs/episode-31/russia_losses_equipment.csvdocs/episode-31/russia_losses_personnel.csvdocs/episode-32/russia_losses_equipment.csvdocs/episode-32/russia_losses_personnel.csvdocs/episode-33/russia_losses_equipment.csvdocs/episode-33/russia_losses_personnel.csvdocs/episode-34/russia_losses_equipment.csvdocs/episode-34/russia_losses_personnel.csvdocs/episode-35/russia_losses_equipment.csvdocs/episode-35/russia_losses_personnel.csvdocs/episode-36/russia_losses_equipment.csvdocs/episode-36/russia_losses_personnel.csvepisode-29/tanks/russia_losses_equipment.csvepisode-29/tanks/russia_losses_personnel.csvepisode-30/src/russia_losses_equipment.csvepisode-30/src/russia_losses_personnel.csvepisode-31/public/russia_losses_equipment.csvepisode-31/public/russia_losses_personnel.csvepisode-32/public/russia_losses_equipment.csvepisode-32/public/russia_losses_personnel.csvepisode-33/public/russia_losses_equipment.csvepisode-33/public/russia_losses_personnel.csvepisode-34/public/russia_losses_equipment.csvepisode-34/public/russia_losses_personnel.csvepisode-35/public/russia_losses_equipment.csvepisode-35/public/russia_losses_personnel.csvepisode-36/public/russia_losses_equipment.csvepisode-36/public/russia_losses_personnel.csv
Coming next
Over the next few episodes, I want to add a few new features to the Russian losses tracker.
Original Link: https://dev.to/taw/open-source-adventures-episode-38-update-script-for-russian-losses-app-52lk
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To