From 1a64deeb894dc95e2645a75771732c6cc53a79ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Wed, 4 Oct 2023 01:35:06 +0200 Subject: Squash changes containing private information There were a lot of changes since the previous commit, but a lot of them contained personnal information about users. All thos changes got stashed into a single commit (history is kept in a different place) and private information was moved in a separate private repository --- flakes/taskwarrior-web/Gemfile.lock | 139 +++++++++ flakes/taskwarrior-web/default.nix | 25 ++ flakes/taskwarrior-web/fixes.patch | 113 +++++++ flakes/taskwarrior-web/flake.lock | 62 ++++ flakes/taskwarrior-web/flake.nix | 33 +++ flakes/taskwarrior-web/gemset.nix | 567 ++++++++++++++++++++++++++++++++++++ flakes/taskwarrior-web/thin.patch | 23 ++ 7 files changed, 962 insertions(+) create mode 100644 flakes/taskwarrior-web/Gemfile.lock create mode 100644 flakes/taskwarrior-web/default.nix create mode 100644 flakes/taskwarrior-web/fixes.patch create mode 100644 flakes/taskwarrior-web/flake.lock create mode 100644 flakes/taskwarrior-web/flake.nix create mode 100644 flakes/taskwarrior-web/gemset.nix create mode 100644 flakes/taskwarrior-web/thin.patch (limited to 'flakes/taskwarrior-web') diff --git a/flakes/taskwarrior-web/Gemfile.lock b/flakes/taskwarrior-web/Gemfile.lock new file mode 100644 index 0000000..1b2f5ba --- /dev/null +++ b/flakes/taskwarrior-web/Gemfile.lock @@ -0,0 +1,139 @@ +PATH + remote: . + specs: + taskwarrior-web (1.1.12) + activesupport (~> 3) + json (~> 1.8) + parseconfig + rack-flash3 + rinku + sinatra + sinatra-simple-navigation + vegas + versionomy + +GEM + remote: http://rubygems.org/ + specs: + activesupport (3.2.22.5) + i18n (~> 0.6, >= 0.6.4) + multi_json (~> 1.0) + blockenspiel (0.5.0) + coderay (1.1.2) + concurrent-ruby (1.1.4) + daemons (1.3.1) + diff-lcs (1.3) + docile (1.3.1) + eventmachine (1.2.7) + ffi (1.10.0) + formatador (0.2.5) + growl (1.0.3) + guard (2.15.0) + formatador (>= 0.2.4) + listen (>= 2.7, < 4.0) + lumberjack (>= 1.0.12, < 2.0) + nenv (~> 0.1) + notiffany (~> 0.0) + pry (>= 0.9.12) + shellany (~> 0.0) + thor (>= 0.18.1) + guard-bundler (2.2.1) + bundler (>= 1.3.0, < 3) + guard (~> 2.2) + guard-compat (~> 1.1) + guard-compat (1.2.1) + guard-rspec (4.7.3) + guard (~> 2.1) + guard-compat (~> 1.1) + rspec (>= 2.99.0, < 4.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + json (1.8.6) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + lumberjack (1.0.13) + method_source (0.9.2) + mini_portile2 (2.4.0) + multi_json (1.13.1) + mustermann (1.0.3) + nenv (0.3.0) + nokogiri (1.10.1) + mini_portile2 (~> 2.4.0) + notiffany (0.1.1) + nenv (~> 0.1) + shellany (~> 0.0) + parseconfig (1.0.8) + pry (0.12.2) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + rack (2.0.6) + rack-flash3 (1.0.5) + rack + rack-protection (2.0.5) + rack + rack-test (1.1.0) + rack (>= 1.0, < 3) + rake (10.5.0) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) + rinku (2.0.5) + rspec (2.99.0) + rspec-core (~> 2.99.0) + rspec-expectations (~> 2.99.0) + rspec-mocks (~> 2.99.0) + rspec-core (2.99.2) + rspec-expectations (2.99.2) + diff-lcs (>= 1.1.3, < 2.0) + rspec-html-matchers (0.5.0) + nokogiri (~> 1) + rspec (~> 2, >= 2.11.0) + rspec-mocks (2.99.4) + ruby_dep (1.5.0) + shellany (0.0.1) + simple-navigation (4.0.5) + activesupport (>= 2.3.2) + simplecov (0.16.1) + docile (~> 1.1) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.2) + sinatra (2.0.5) + mustermann (~> 1.0) + rack (~> 2.0) + rack-protection (= 2.0.5) + tilt (~> 2.0) + sinatra-simple-navigation (4.1.0) + simple-navigation (~> 4.0) + sinatra (>= 1.0, < 3.0) + thin (1.7.2) + daemons (~> 1.0, >= 1.0.9) + eventmachine (~> 1.0, >= 1.0.4) + rack (>= 1, < 3) + thor (0.20.3) + tilt (2.0.9) + vegas (0.1.11) + rack (>= 1.0.0) + versionomy (0.5.0) + blockenspiel (~> 0.5) + +PLATFORMS + ruby + +DEPENDENCIES + growl + guard-bundler + guard-rspec + rack-test + rake (< 11) + rb-fsevent + rspec (~> 2) + rspec-html-matchers + simplecov + taskwarrior-web! + thin + +BUNDLED WITH + 1.16.2 diff --git a/flakes/taskwarrior-web/default.nix b/flakes/taskwarrior-web/default.nix new file mode 100644 index 0000000..7678b3c --- /dev/null +++ b/flakes/taskwarrior-web/default.nix @@ -0,0 +1,25 @@ +{ ruby_2_6, bundlerEnv, src, stdenv }: +let + gems = bundlerEnv { + name = "taskwarrior-web-env"; + ruby = ruby_2_6; + pname = "taskwarrior-web"; + gemset = ./gemset.nix; + gemdir = package.out; + groups = [ "default" "local" "development" ]; + }; + package = stdenv.mkDerivation { + pname = "taskwarrior-web"; + version = src.shortRev; + inherit src; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + patches = [ ./fixes.patch ./thin.patch ]; + installPhase = '' + cp -a . $out + cp ${./Gemfile.lock} $out/Gemfile.lock + ''; + passthru = { + inherit gems; + }; + }; +in package diff --git a/flakes/taskwarrior-web/fixes.patch b/flakes/taskwarrior-web/fixes.patch new file mode 100644 index 0000000..c4cea34 --- /dev/null +++ b/flakes/taskwarrior-web/fixes.patch @@ -0,0 +1,113 @@ +diff --git a/lib/taskwarrior-web/helpers.rb b/lib/taskwarrior-web/helpers.rb +index 212aed7..94c57df 100644 +--- a/lib/taskwarrior-web/helpers.rb ++++ b/lib/taskwarrior-web/helpers.rb +@@ -1,6 +1,8 @@ + require 'active_support/core_ext/date/calculations' + + module TaskwarriorWeb::App::Helpers ++ include ERB::Util ++ + def format_date(timestamp) + format = TaskwarriorWeb::Config.dateformat || '%-m/%-d/%Y' + Time.parse(timestamp).localtime.strftime(format) +diff --git a/lib/taskwarrior-web/model/task.rb b/lib/taskwarrior-web/model/task.rb +index 212aed7..94c57df 100644 +--- a/lib/taskwarrior-web/model/task.rb ++++ b/lib/taskwarrior-web/model/task.rb +@@ -15,8 +15,14 @@ + + def initialize(attributes = {}) + attributes.each do |attr, value| ++ if attr == "uuid" ++ next ++ end + send("#{attr}=", value) if respond_to?(attr.to_sym) + end ++ if attributes.has_key? "uuid" ++ send("uuid=", attributes["uuid"]) ++ end + + @_errors = [] + @tags = [] if @tags.nil? +diff --git a/lib/taskwarrior-web/services/builder/base.rb b/lib/taskwarrior-web/services/builder/base.rb +index 58d246e..8f716ac 100644 +--- a/lib/taskwarrior-web/services/builder/base.rb ++++ b/lib/taskwarrior-web/services/builder/base.rb +@@ -10,7 +10,7 @@ module TaskwarriorWeb::CommandBuilder::Base + :complete => ':id done', + :annotate => ':id annotate', + :denotate => ':id denotate', +- :projects => '_projects', ++ :projects => '_unique project', + :tags => '_tags', + :sync => 'sync' + } +@@ -21,7 +21,7 @@ + substitute_parts if @command_string =~ /:id/ + end + parse_params +- @built = "#{@command_string}#{@params}" ++ @built = "#{@params}#{@command_string}" + end + + def task_command +@@ -43,23 +43,23 @@ + + def parse_params + string = '' +- string << %( #{@params.delete(:description).shellescape}) if @params.has_key?(:description) ++ string << %(#{@params.delete(:description).shellescape} ) if @params.has_key?(:description) + + if tags = @params.delete(:tags) + tag_indicator = TaskwarriorWeb::Config.property('tag.indicator') || '+' +- tags.each { |tag| string << %( #{tag_indicator}#{tag.to_s.shellescape}) } ++ tags.each { |tag| string << %(#{tag_indicator}#{tag.to_s.shellescape} ) } + end + + if tags = @params.delete(:remove_tags) +- tags.each { |tag| string << %( -#{tag.to_s.shellescape}) } ++ tags.each { |tag| string << %(-#{tag.to_s.shellescape} ) } + end + + @params.each do |attr, value| + if @command != :update or attr != :uuid + if value.respond_to? :each +- value.each { |val| string << %( #{attr.to_s}:\\"#{val.to_s.shellescape}\\") } ++ value.each { |val| string << %(#{attr.to_s}:\\"#{val.to_s.shellescape}\\" ) } + else +- string << %( #{attr.to_s}:\\"#{value.to_s.shellescape}\\") ++ string << %(#{attr.to_s}:\\"#{value.to_s.shellescape}\\" ) + end + end + end +diff --git a/lib/taskwarrior-web/views/tasks/_form.erb b/lib/taskwarrior-web/views/tasks/_form.erb +index 789e7a1..fa08698 100644 +--- a/lib/taskwarrior-web/views/tasks/_form.erb ++++ b/lib/taskwarrior-web/views/tasks/_form.erb +@@ -1,14 +1,14 @@ +
+ +
+- ++ +
+
+ +
+ +
+- ++ +
+
+ +@@ -45,7 +45,7 @@ +
+ +
+- ++ + Enter tags separated by commas or spaces (e.g. each, word will,be a tag) +
+
diff --git a/flakes/taskwarrior-web/flake.lock b/flakes/taskwarrior-web/flake.lock new file mode 100644 index 0000000..ce87931 --- /dev/null +++ b/flakes/taskwarrior-web/flake.lock @@ -0,0 +1,62 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1648297722, + "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "flake": false, + "locked": { + "lastModified": 1596265691, + "narHash": "sha256-9ofCzFqttTsGrvTaS4RrDSTNQO9PFOz5uyn8V+2eA5M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "taskwarrior-web": "taskwarrior-web" + } + }, + "taskwarrior-web": { + "flake": false, + "locked": { + "lastModified": 1546434241, + "narHash": "sha256-BLPBglkV1HCJECSIdyMEergChiV+rwNOClYJnzlZGQk=", + "owner": "theunraveler", + "repo": "taskwarrior-web", + "rev": "a79cfe2b42791b62364118e58b21b892fff6ded8", + "type": "github" + }, + "original": { + "owner": "theunraveler", + "repo": "taskwarrior-web", + "rev": "a79cfe2b42791b62364118e58b21b892fff6ded8", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flakes/taskwarrior-web/flake.nix b/flakes/taskwarrior-web/flake.nix new file mode 100644 index 0000000..b08290a --- /dev/null +++ b/flakes/taskwarrior-web/flake.nix @@ -0,0 +1,33 @@ +{ + description = "A web interface for the Taskwarrior todo application. Because being a neckbeard is only fun sometimes."; + inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.nixpkgs = { + url = "github:NixOS/nixpkgs/840c782d507d60aaa49aa9e3f6d0b0e780912742"; + flake = false; + }; + inputs.taskwarrior-web = { + url = "github:theunraveler/taskwarrior-web/a79cfe2b42791b62364118e58b21b892fff6ded8"; + flake = false; + }; + + outputs = { self, nixpkgs, taskwarrior-web, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: + let + pkgs = import nixpkgs { inherit system; overlays = []; }; + inherit (pkgs) callPackage; + in rec { + packages.taskwarrior-web = callPackage ./. { src = taskwarrior-web; }; + defaultPackage = packages.taskwarrior-web; + legacyPackages.taskwarrior-web = packages.taskwarrior-web; + checks = { + build = defaultPackage; + }; + } + ) // rec { + overlays = { + taskwarrior-web = final: prev: { + taskwarrior-web = self.defaultPackage."${final.system}"; + }; + }; + overlay = overlays.taskwarrior-web; + }; +} diff --git a/flakes/taskwarrior-web/gemset.nix b/flakes/taskwarrior-web/gemset.nix new file mode 100644 index 0000000..35d13c6 --- /dev/null +++ b/flakes/taskwarrior-web/gemset.nix @@ -0,0 +1,567 @@ +{ + activesupport = { + dependencies = ["i18n" "multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0fyxqkkws4px4lzkbcqzp0bwai7nn7jk4p0bgfy0dny9cwm0qc9r"; + type = "gem"; + }; + version = "3.2.22.5"; + }; + blockenspiel = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1h701s45n5qprvcpc7fnr45n88p56x07pznkxqnhz1dbdbhb7xx8"; + type = "gem"; + }; + version = "0.5.0"; + }; + coderay = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1"; + type = "gem"; + }; + version = "1.1.4"; + }; + daemons = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w"; + type = "gem"; + }; + version = "1.3.1"; + }; + diff-lcs = { + groups = ["default" "development" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; + }; + version = "1.3"; + }; + docile = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17"; + type = "gem"; + }; + version = "1.3.1"; + }; + eventmachine = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + ffi = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; + type = "gem"; + }; + version = "1.10.0"; + }; + formatador = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; + type = "gem"; + }; + version = "0.2.5"; + }; + growl = { + groups = ["local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0s0y7maljnalpbv2q1j5j5hvb4wcc31y9af0n7x1q2l0fzxgc9n9"; + type = "gem"; + }; + version = "1.0.3"; + }; + guard = { + dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"]; + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0h84ja6qvii3hx86w9l4vjpbgl4m8ma8fbawwp7s8l791cgkdcmk"; + type = "gem"; + }; + version = "2.15.0"; + }; + guard-bundler = { + dependencies = ["guard" "guard-compat"]; + groups = ["local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0lji8f8w7y4prmpr2lqmlljvkqgkgnlsiwqgwvq7b1y3sxlsvy62"; + type = "gem"; + }; + version = "2.2.1"; + }; + guard-compat = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis"; + type = "gem"; + }; + version = "1.2.1"; + }; + guard-rspec = { + dependencies = ["guard" "guard-compat" "rspec"]; + groups = ["local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4"; + type = "gem"; + }; + version = "4.7.3"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; + type = "gem"; + }; + version = "0.9.5"; + }; + json = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; + type = "gem"; + }; + version = "1.8.6"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"]; + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx"; + type = "gem"; + }; + version = "3.1.5"; + }; + lumberjack = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n"; + type = "gem"; + }; + version = "1.0.13"; + }; + method_source = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; + type = "gem"; + }; + version = "0.9.2"; + }; + mini_portile2 = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; + type = "gem"; + }; + version = "2.4.0"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + mustermann = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1"; + type = "gem"; + }; + version = "1.0.3"; + }; + nenv = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr"; + type = "gem"; + }; + version = "0.3.0"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "09zll7c6j7xr6wyvh5mm5ncj6pkryp70ybcsxdbw1nyphx5dh184"; + type = "gem"; + }; + version = "1.10.1"; + }; + notiffany = { + dependencies = ["nenv" "shellany"]; + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0x838fa5il0dd9zbm3lxkpbfxcf5fxv9556mayc2mxsdl5ghv8nx"; + type = "gem"; + }; + version = "0.1.1"; + }; + parseconfig = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0br2g9k6zc4ygah52aa8cwvpnnkszia29bnvnr8bhpk3rdzi2vmq"; + type = "gem"; + }; + version = "1.0.8"; + }; + pry = { + dependencies = ["coderay" "method_source"]; + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69"; + type = "gem"; + }; + version = "0.12.2"; + }; + rack = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm"; + type = "gem"; + }; + version = "2.0.6"; + }; + rack-flash3 = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0rim9afrns6s8zc4apiymncysyvijpdg18k57kdpz66p55jf4mqz"; + type = "gem"; + }; + version = "1.0.5"; + }; + rack-protection = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk"; + type = "gem"; + }; + version = "2.0.5"; + }; + rack-test = { + dependencies = ["rack"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; + type = "gem"; + }; + version = "1.1.0"; + }; + rake = { + groups = ["development"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b"; + type = "gem"; + }; + version = "10.5.0"; + }; + rb-fsevent = { + groups = ["local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8"; + type = "gem"; + }; + version = "0.10.3"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4"; + type = "gem"; + }; + version = "0.10.0"; + }; + rinku = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1smkk299v18brk98gqbdnqrfwm3143kikl30scidqb5j3pzlbz91"; + type = "gem"; + }; + version = "2.0.5"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + groups = ["development" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "14q3hxvngk4ks8h41yw50d5fqbf2dhzwi9rz5ccxvh5a53ak2as3"; + type = "gem"; + }; + version = "2.99.0"; + }; + rspec-core = { + groups = ["default" "development" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1wwz21lcz2lwd2jcp2pvq7n1677v23acf7wxsyszp8msb47mw38i"; + type = "gem"; + }; + version = "2.99.2"; + }; + rspec-expectations = { + dependencies = ["diff-lcs"]; + groups = ["default" "development" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "11a5pph3anp4xr591dnlcy8xfkdf54qi2lvg4ykpqhxk37si1py3"; + type = "gem"; + }; + version = "2.99.2"; + }; + rspec-html-matchers = { + dependencies = ["nokogiri" "rspec"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "148grzvk0cvh24avhl0shjzz7ldhj138svf48pc5h1fdsb0pnqcv"; + type = "gem"; + }; + version = "0.5.0"; + }; + rspec-mocks = { + groups = ["default" "development" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0bzhqahbiswq41nqi6y2dka1k42n0hl14jb6bldb206zp4hikz8r"; + type = "gem"; + }; + version = "2.99.4"; + }; + ruby_dep = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5"; + type = "gem"; + }; + version = "1.5.0"; + }; + shellany = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"; + type = "gem"; + }; + version = "0.0.1"; + }; + simple-navigation = { + dependencies = ["activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "08a2s18an3br3xj5j86r33q0hrkai0y157xg67h1khdskb08yylk"; + type = "gem"; + }; + version = "4.0.5"; + }; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; + groups = ["local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947"; + type = "gem"; + }; + version = "0.16.1"; + }; + simplecov-html = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; + type = "gem"; + }; + version = "0.10.2"; + }; + sinatra = { + dependencies = ["mustermann" "rack" "rack-protection" "tilt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1gasgn5f15myv08k10i16p326pchxjsy37pgqfw0xm66kcc5d7ry"; + type = "gem"; + }; + version = "2.0.5"; + }; + sinatra-simple-navigation = { + dependencies = ["simple-navigation" "sinatra"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1gishxd23qw6bwsk7fkagkfc7ihqyvvvb98j9bmwc6wwpsfs4prs"; + type = "gem"; + }; + version = "4.1.0"; + }; + taskwarrior-web = { + dependencies = ["activesupport" "json" "parseconfig" "rack-flash3" "rinku" "sinatra" "sinatra-simple-navigation" "vegas" "versionomy"]; + groups = ["default"]; + platforms = []; + bundledByPath = true; + path = ./.; + source = { + path = ./.; + type = "path"; + }; + version = "1.1.12"; + }; + thin = { + dependencies = ["daemons" "eventmachine" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f"; + type = "gem"; + }; + version = "1.7.2"; + }; + thor = { + groups = ["default" "local"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; + type = "gem"; + }; + version = "0.20.3"; + }; + tilt = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz"; + type = "gem"; + }; + version = "2.0.9"; + }; + vegas = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0kzv0v1zb8vvm188q4pqwahb6468bmiamn6wpsbiq6r5i69s1bs5"; + type = "gem"; + }; + version = "0.1.11"; + }; + versionomy = { + dependencies = ["blockenspiel"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["http://rubygems.org"]; + sha256 = "0i0l4pzrl1vyp4lpg2cxhgkk56spki3lld943d6h7168fj8qyv33"; + type = "gem"; + }; + version = "0.5.0"; + }; +} diff --git a/flakes/taskwarrior-web/thin.patch b/flakes/taskwarrior-web/thin.patch new file mode 100644 index 0000000..a7df3e3 --- /dev/null +++ b/flakes/taskwarrior-web/thin.patch @@ -0,0 +1,23 @@ +diff --git a/Gemfile b/Gemfile +index 8544e15..9c4279c 100644 +--- a/Gemfile ++++ b/Gemfile +@@ -3,6 +3,8 @@ source "http://rubygems.org" + # Specify your gem's dependencies in taskwarrior-web.gemspec + gemspec + ++gem 'thin' ++ + group :local do + gem 'rb-fsevent', :require => false + gem 'growl', :require => false +diff --git a/config.ru b/config.ru +index c3050c6..52387d8 100644 +--- a/config.ru ++++ b/config.ru +@@ -1,5 +1,4 @@ + require File.join(File.dirname(__FILE__), 'lib', 'taskwarrior-web') + +-disable :run + TaskwarriorWeb::App.set({ :environment => :production }) + run TaskwarriorWeb::App -- cgit v1.2.3