From 107f99192e218daeb97c00df06698b69cb55c8d1 Mon Sep 17 00:00:00 2001 From: David Eisinger Date: Mon, 3 Apr 2023 23:52:09 -0400 Subject: [PATCH] Add URL backup script --- bin/backup | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 bin/backup diff --git a/bin/backup b/bin/backup new file mode 100755 index 0000000..6d81328 --- /dev/null +++ b/bin/backup @@ -0,0 +1,40 @@ +#!/usr/bin/env ruby + +require "uri" +require "digest" + +filename, url = ARGV + +unless filename && url + warn "Please supply a filename and url" + exit 1 +end + +path = filename.sub(File.basename(filename), "") +content = File.read(filename) + +link_id = content.scan(/\[(\d+)\]: #{url}/).first.first + +unless link_id + warn "Link not found" + exit 1 +end + +uri = URI.parse(url) + +link_content = `w3m #{url}` + +hash = Digest::MD5.base64digest(url + link_content) + .scan(/[a-z0-9]/i) + .first(6) + .join + .downcase + +link_filename = "#{uri.host.gsub(".", "-")}-#{hash}.txt" + +File.write("#{path}/#{link_filename}", link_content) + +content.gsub!(/\[#{link_id}\]([^:])/, "[#{link_id}][^#{link_id}-backup]\\1") + +File.write(filename, content) +File.write(filename, "\n[^#{link_id}-backup]: Backed up #{Time.now}", mode: "a+")