Commit Diff


commit - 77bc171b2bced0c205bfc538659ffa63675c06f7
commit + 08a3bef2c7456931b6790dc39e201921c621669a
blob - ae713d5a60955308932884059c11ebcd02017ede
blob + 6c7ed502dfa7df4856480decf61552578cf1c502
--- flake.lock
+++ flake.lock
@@ -180,11 +180,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1785168662,
-        "narHash": "sha256-kGJTc0oEUQuEwV66lSlMxYtOEtpk9N/HS43k+rFAvs8=",
+        "lastModified": 1785269816,
+        "narHash": "sha256-6JkNDlJ18NY1iAuoSYCPDO7O+yYN/vPwpFmHOHNpVvY=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "cbb77679b3d992c8b62f884cd3a84af534a28621",
+        "rev": "3d25fa94cf355cf7da64c77bb9c3c15806486329",
         "type": "github"
       },
       "original": {
blob - 8116a81cf81ca4eadadd8856ff665ff17bdf9b0f
blob + fa2347094aa00b6eaf670ca8e6f30c665e769958
Binary files hosts/nixaran/configuration.nix and hosts/nixaran/configuration.nix differ
blob - 0ec26662adfd2295bd67b1c594f3164ca8fcb4b3
blob + d95e7427ef7f93d3a4b2d8412b0109392631746c
--- hosts/void/default.nix
+++ hosts/void/default.nix
@@ -52,6 +52,7 @@
       jdupes
       plakar
       mdcat
+      sigtop
     ];
 
     vcs = [
@@ -193,6 +194,7 @@
     other = [
       go
       rustup
+      deno
     ];
   }));
 }
blob - 809df8ddb783c0fc1576a3ce2b3be3e03d5b0b8f
blob + 7c902d4266cc04338302f85490c4f1a07d2b6acb
--- modules/mixins/dotfiles/bin/backup
+++ modules/mixins/dotfiles/bin/backup
@@ -60,10 +60,6 @@ module Backup
     "releases" => "#{HOME}/src/mtmn.name/releases"
   }.freeze
 
-  RCLONE_DIRS = {
-    "books" => "#{HOME}/misc/books",
-    "www" => "#{HOME}/misc/www"
-  }.freeze
   RCLONE_REMOTE = "backup"
 
   def self.run_cmd(verbose, *args)
@@ -207,6 +203,7 @@ module Backup
   def self.plakar_stores_hash = plakar_stores
   def self.plakar_stores_list = plakar_stores.keys
   def self.plakar_sources_list = plakar_sources.keys
+  def self.plakar_source_dirs = plakar_sources.transform_values { |cfg| cfg["location"] }.freeze
 
   def self.plakar_ignore_file(store)
     path = File.join(PLAKAR_CONFIG_DIR, "#{store}.ignore")
@@ -249,6 +246,13 @@ module Backup
     end
   end
 
+  def self.list_rclone
+    puts("rclone")
+    puts("  sources")
+    plakar_source_dirs.keys.sort.each { |s| puts("    #{s}") }
+    puts("  #{RCLONE_REMOTE}")
+  end
+
   def self.git_run(verbose:, push:, fetch:, parts:)
     if parts.empty?
       GIT_DIRS.each { |n, d| sync_repo(verbose: verbose, push: push, fetch: fetch, name: n, dir: d) }
@@ -279,13 +283,13 @@ module Backup
 
   def self.rclone_run(verbose:, parts:)
     if parts.empty?
-      RCLONE_DIRS.each { |n, d| rclone_backup(verbose: verbose, name: n, dir: d) }
+      plakar_source_dirs.each { |n, d| rclone_backup(verbose: verbose, name: n, dir: d) }
     else
       name = parts.first
       rclone_backup(
         verbose: verbose,
         name: name,
-        dir: RCLONE_DIRS.fetch(name) { fatal("Unknown rclone target: #{name}") }
+        dir: plakar_source_dirs.fetch(name) { fatal("Unknown rclone target: #{name}") }
       )
     end
   end
@@ -296,7 +300,10 @@ module Backup
     elsif parts.size == 1
       plakar_store(verbose: verbose, store: parts.first)
     else
-      plakar_source(verbose: verbose, store: parts[0], source: parts[1])
+      store = parts[0]
+      parts[1].split(",").each do |source|
+        plakar_source(verbose: verbose, store: store, source: source)
+      end
     end
   end
 
@@ -314,7 +321,7 @@ module Backup
       run: ->(verbose:, push:, fetch:, parts:) { plakar_run(verbose: verbose, parts: parts) }
     ),
     "rclone" => Backend.new(
-      list: -> { list_flat("rclone", RCLONE_DIRS) },
+      list: -> { list_rclone },
       run: ->(verbose:, push:, fetch:, parts:) { rclone_run(verbose: verbose, parts: parts) }
     )
   }.freeze
@@ -355,7 +362,8 @@ module Backup
     options = {verbose: true, push: false, fetch: false, list: false}
     parser = OptionParser.new do |o|
       o.banner = "Usage: backup [options] [target]\n" \
-        "  target: git, plakar, tarsnap, rclone, <backend>:<name>"
+        "  target: git, plakar, tarsnap, rclone, <backend>:<name>\n" \
+        "  plakar sources may be comma-separated: plakar:<store>:<src1,src2,...>"
       o.on("-p", "--push", "Fetch and push changes after commit") { options[:push] = true }
       o.on("-f", "--fetch", "Run git pull for git targets before backup") { options[:fetch] = true }
       o.on("-q", "--quiet", "Suppress command output") { options[:verbose] = false }
blob - 592b9e7e46aba70ec738289f6b699af62c6293d6
blob + b62ba0a4f132ec5a1a0fb8d57706613216d7a6b0
--- modules/mixins/dotfiles/config/newsraft/feeds
+++ modules/mixins/dotfiles/config/newsraft/feeds
@@ -104,6 +104,7 @@ https://feeds.acast.com/public/shows/disseminate
 
 @ other < reload-period 120
 https://plan.cat/rss
+https://haravara.org/~m/humno.xml
 
 
 @ music < reload-period 120