diff options
Diffstat (limited to 'flakes/taskwarrior-web')
-rw-r--r-- | flakes/taskwarrior-web/Gemfile.lock | 139 | ||||
-rw-r--r-- | flakes/taskwarrior-web/default.nix | 25 | ||||
-rw-r--r-- | flakes/taskwarrior-web/fixes.patch | 113 | ||||
-rw-r--r-- | flakes/taskwarrior-web/flake.lock | 62 | ||||
-rw-r--r-- | flakes/taskwarrior-web/flake.nix | 33 | ||||
-rw-r--r-- | flakes/taskwarrior-web/gemset.nix | 567 | ||||
-rw-r--r-- | flakes/taskwarrior-web/thin.patch | 23 |
7 files changed, 962 insertions, 0 deletions
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 @@ | |||
1 | PATH | ||
2 | remote: . | ||
3 | specs: | ||
4 | taskwarrior-web (1.1.12) | ||
5 | activesupport (~> 3) | ||
6 | json (~> 1.8) | ||
7 | parseconfig | ||
8 | rack-flash3 | ||
9 | rinku | ||
10 | sinatra | ||
11 | sinatra-simple-navigation | ||
12 | vegas | ||
13 | versionomy | ||
14 | |||
15 | GEM | ||
16 | remote: http://rubygems.org/ | ||
17 | specs: | ||
18 | activesupport (3.2.22.5) | ||
19 | i18n (~> 0.6, >= 0.6.4) | ||
20 | multi_json (~> 1.0) | ||
21 | blockenspiel (0.5.0) | ||
22 | coderay (1.1.2) | ||
23 | concurrent-ruby (1.1.4) | ||
24 | daemons (1.3.1) | ||
25 | diff-lcs (1.3) | ||
26 | docile (1.3.1) | ||
27 | eventmachine (1.2.7) | ||
28 | ffi (1.10.0) | ||
29 | formatador (0.2.5) | ||
30 | growl (1.0.3) | ||
31 | guard (2.15.0) | ||
32 | formatador (>= 0.2.4) | ||
33 | listen (>= 2.7, < 4.0) | ||
34 | lumberjack (>= 1.0.12, < 2.0) | ||
35 | nenv (~> 0.1) | ||
36 | notiffany (~> 0.0) | ||
37 | pry (>= 0.9.12) | ||
38 | shellany (~> 0.0) | ||
39 | thor (>= 0.18.1) | ||
40 | guard-bundler (2.2.1) | ||
41 | bundler (>= 1.3.0, < 3) | ||
42 | guard (~> 2.2) | ||
43 | guard-compat (~> 1.1) | ||
44 | guard-compat (1.2.1) | ||
45 | guard-rspec (4.7.3) | ||
46 | guard (~> 2.1) | ||
47 | guard-compat (~> 1.1) | ||
48 | rspec (>= 2.99.0, < 4.0) | ||
49 | i18n (0.9.5) | ||
50 | concurrent-ruby (~> 1.0) | ||
51 | json (1.8.6) | ||
52 | listen (3.1.5) | ||
53 | rb-fsevent (~> 0.9, >= 0.9.4) | ||
54 | rb-inotify (~> 0.9, >= 0.9.7) | ||
55 | ruby_dep (~> 1.2) | ||
56 | lumberjack (1.0.13) | ||
57 | method_source (0.9.2) | ||
58 | mini_portile2 (2.4.0) | ||
59 | multi_json (1.13.1) | ||
60 | mustermann (1.0.3) | ||
61 | nenv (0.3.0) | ||
62 | nokogiri (1.10.1) | ||
63 | mini_portile2 (~> 2.4.0) | ||
64 | notiffany (0.1.1) | ||
65 | nenv (~> 0.1) | ||
66 | shellany (~> 0.0) | ||
67 | parseconfig (1.0.8) | ||
68 | pry (0.12.2) | ||
69 | coderay (~> 1.1.0) | ||
70 | method_source (~> 0.9.0) | ||
71 | rack (2.0.6) | ||
72 | rack-flash3 (1.0.5) | ||
73 | rack | ||
74 | rack-protection (2.0.5) | ||
75 | rack | ||
76 | rack-test (1.1.0) | ||
77 | rack (>= 1.0, < 3) | ||
78 | rake (10.5.0) | ||
79 | rb-fsevent (0.10.3) | ||
80 | rb-inotify (0.10.0) | ||
81 | ffi (~> 1.0) | ||
82 | rinku (2.0.5) | ||
83 | rspec (2.99.0) | ||
84 | rspec-core (~> 2.99.0) | ||
85 | rspec-expectations (~> 2.99.0) | ||
86 | rspec-mocks (~> 2.99.0) | ||
87 | rspec-core (2.99.2) | ||
88 | rspec-expectations (2.99.2) | ||
89 | diff-lcs (>= 1.1.3, < 2.0) | ||
90 | rspec-html-matchers (0.5.0) | ||
91 | nokogiri (~> 1) | ||
92 | rspec (~> 2, >= 2.11.0) | ||
93 | rspec-mocks (2.99.4) | ||
94 | ruby_dep (1.5.0) | ||
95 | shellany (0.0.1) | ||
96 | simple-navigation (4.0.5) | ||
97 | activesupport (>= 2.3.2) | ||
98 | simplecov (0.16.1) | ||
99 | docile (~> 1.1) | ||
100 | json (>= 1.8, < 3) | ||
101 | simplecov-html (~> 0.10.0) | ||
102 | simplecov-html (0.10.2) | ||
103 | sinatra (2.0.5) | ||
104 | mustermann (~> 1.0) | ||
105 | rack (~> 2.0) | ||
106 | rack-protection (= 2.0.5) | ||
107 | tilt (~> 2.0) | ||
108 | sinatra-simple-navigation (4.1.0) | ||
109 | simple-navigation (~> 4.0) | ||
110 | sinatra (>= 1.0, < 3.0) | ||
111 | thin (1.7.2) | ||
112 | daemons (~> 1.0, >= 1.0.9) | ||
113 | eventmachine (~> 1.0, >= 1.0.4) | ||
114 | rack (>= 1, < 3) | ||
115 | thor (0.20.3) | ||
116 | tilt (2.0.9) | ||
117 | vegas (0.1.11) | ||
118 | rack (>= 1.0.0) | ||
119 | versionomy (0.5.0) | ||
120 | blockenspiel (~> 0.5) | ||
121 | |||
122 | PLATFORMS | ||
123 | ruby | ||
124 | |||
125 | DEPENDENCIES | ||
126 | growl | ||
127 | guard-bundler | ||
128 | guard-rspec | ||
129 | rack-test | ||
130 | rake (< 11) | ||
131 | rb-fsevent | ||
132 | rspec (~> 2) | ||
133 | rspec-html-matchers | ||
134 | simplecov | ||
135 | taskwarrior-web! | ||
136 | thin | ||
137 | |||
138 | BUNDLED WITH | ||
139 | 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 @@ | |||
1 | { ruby_2_6, bundlerEnv, src, stdenv }: | ||
2 | let | ||
3 | gems = bundlerEnv { | ||
4 | name = "taskwarrior-web-env"; | ||
5 | ruby = ruby_2_6; | ||
6 | pname = "taskwarrior-web"; | ||
7 | gemset = ./gemset.nix; | ||
8 | gemdir = package.out; | ||
9 | groups = [ "default" "local" "development" ]; | ||
10 | }; | ||
11 | package = stdenv.mkDerivation { | ||
12 | pname = "taskwarrior-web"; | ||
13 | version = src.shortRev; | ||
14 | inherit src; | ||
15 | phases = [ "unpackPhase" "patchPhase" "installPhase" ]; | ||
16 | patches = [ ./fixes.patch ./thin.patch ]; | ||
17 | installPhase = '' | ||
18 | cp -a . $out | ||
19 | cp ${./Gemfile.lock} $out/Gemfile.lock | ||
20 | ''; | ||
21 | passthru = { | ||
22 | inherit gems; | ||
23 | }; | ||
24 | }; | ||
25 | 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 @@ | |||
1 | diff --git a/lib/taskwarrior-web/helpers.rb b/lib/taskwarrior-web/helpers.rb | ||
2 | index 212aed7..94c57df 100644 | ||
3 | --- a/lib/taskwarrior-web/helpers.rb | ||
4 | +++ b/lib/taskwarrior-web/helpers.rb | ||
5 | @@ -1,6 +1,8 @@ | ||
6 | require 'active_support/core_ext/date/calculations' | ||
7 | |||
8 | module TaskwarriorWeb::App::Helpers | ||
9 | + include ERB::Util | ||
10 | + | ||
11 | def format_date(timestamp) | ||
12 | format = TaskwarriorWeb::Config.dateformat || '%-m/%-d/%Y' | ||
13 | Time.parse(timestamp).localtime.strftime(format) | ||
14 | diff --git a/lib/taskwarrior-web/model/task.rb b/lib/taskwarrior-web/model/task.rb | ||
15 | index 212aed7..94c57df 100644 | ||
16 | --- a/lib/taskwarrior-web/model/task.rb | ||
17 | +++ b/lib/taskwarrior-web/model/task.rb | ||
18 | @@ -15,8 +15,14 @@ | ||
19 | |||
20 | def initialize(attributes = {}) | ||
21 | attributes.each do |attr, value| | ||
22 | + if attr == "uuid" | ||
23 | + next | ||
24 | + end | ||
25 | send("#{attr}=", value) if respond_to?(attr.to_sym) | ||
26 | end | ||
27 | + if attributes.has_key? "uuid" | ||
28 | + send("uuid=", attributes["uuid"]) | ||
29 | + end | ||
30 | |||
31 | @_errors = [] | ||
32 | @tags = [] if @tags.nil? | ||
33 | diff --git a/lib/taskwarrior-web/services/builder/base.rb b/lib/taskwarrior-web/services/builder/base.rb | ||
34 | index 58d246e..8f716ac 100644 | ||
35 | --- a/lib/taskwarrior-web/services/builder/base.rb | ||
36 | +++ b/lib/taskwarrior-web/services/builder/base.rb | ||
37 | @@ -10,7 +10,7 @@ module TaskwarriorWeb::CommandBuilder::Base | ||
38 | :complete => ':id done', | ||
39 | :annotate => ':id annotate', | ||
40 | :denotate => ':id denotate', | ||
41 | - :projects => '_projects', | ||
42 | + :projects => '_unique project', | ||
43 | :tags => '_tags', | ||
44 | :sync => 'sync' | ||
45 | } | ||
46 | @@ -21,7 +21,7 @@ | ||
47 | substitute_parts if @command_string =~ /:id/ | ||
48 | end | ||
49 | parse_params | ||
50 | - @built = "#{@command_string}#{@params}" | ||
51 | + @built = "#{@params}#{@command_string}" | ||
52 | end | ||
53 | |||
54 | def task_command | ||
55 | @@ -43,23 +43,23 @@ | ||
56 | |||
57 | def parse_params | ||
58 | string = '' | ||
59 | - string << %( #{@params.delete(:description).shellescape}) if @params.has_key?(:description) | ||
60 | + string << %(#{@params.delete(:description).shellescape} ) if @params.has_key?(:description) | ||
61 | |||
62 | if tags = @params.delete(:tags) | ||
63 | tag_indicator = TaskwarriorWeb::Config.property('tag.indicator') || '+' | ||
64 | - tags.each { |tag| string << %( #{tag_indicator}#{tag.to_s.shellescape}) } | ||
65 | + tags.each { |tag| string << %(#{tag_indicator}#{tag.to_s.shellescape} ) } | ||
66 | end | ||
67 | |||
68 | if tags = @params.delete(:remove_tags) | ||
69 | - tags.each { |tag| string << %( -#{tag.to_s.shellescape}) } | ||
70 | + tags.each { |tag| string << %(-#{tag.to_s.shellescape} ) } | ||
71 | end | ||
72 | |||
73 | @params.each do |attr, value| | ||
74 | if @command != :update or attr != :uuid | ||
75 | if value.respond_to? :each | ||
76 | - value.each { |val| string << %( #{attr.to_s}:\\"#{val.to_s.shellescape}\\") } | ||
77 | + value.each { |val| string << %(#{attr.to_s}:\\"#{val.to_s.shellescape}\\" ) } | ||
78 | else | ||
79 | - string << %( #{attr.to_s}:\\"#{value.to_s.shellescape}\\") | ||
80 | + string << %(#{attr.to_s}:\\"#{value.to_s.shellescape}\\" ) | ||
81 | end | ||
82 | end | ||
83 | end | ||
84 | diff --git a/lib/taskwarrior-web/views/tasks/_form.erb b/lib/taskwarrior-web/views/tasks/_form.erb | ||
85 | index 789e7a1..fa08698 100644 | ||
86 | --- a/lib/taskwarrior-web/views/tasks/_form.erb | ||
87 | +++ b/lib/taskwarrior-web/views/tasks/_form.erb | ||
88 | @@ -1,14 +1,14 @@ | ||
89 | <div class="control-group"> | ||
90 | <label for="task-description" class="control-label">Description</label> | ||
91 | <div class="controls"> | ||
92 | - <input type="text" required="required" id="task-description" name="task[description]" value="<%= @task.description unless @task.nil? %>" /> | ||
93 | + <input type="text" required="required" id="task-description" name="task[description]" value="<%=h @task.description unless @task.nil? %>" /> | ||
94 | </div> | ||
95 | </div> | ||
96 | |||
97 | <div class="control-group"> | ||
98 | <label for="task-project" class="control-label">Project</label> | ||
99 | <div class="controls"> | ||
100 | - <input type="text" id="task-project" name="task[project]" value="<%= @task.project unless @task.nil? %>" autocomplete="off" /> | ||
101 | + <input type="text" id="task-project" name="task[project]" value="<%=h @task.project unless @task.nil? %>" autocomplete="off" /> | ||
102 | </div> | ||
103 | </div> | ||
104 | |||
105 | @@ -45,7 +45,7 @@ | ||
106 | <div class="control-group"> | ||
107 | <label for="task-tags" class="control-label">Tags</label> | ||
108 | <div class="controls"> | ||
109 | - <input type="text" id="task-tags" name="task[tags]" value="<%= @task.tags.join(', ') unless @task.nil? %>" autocomplete="off" /> | ||
110 | + <input type="text" id="task-tags" name="task[tags]" value="<%=h @task.tags.join(', ') unless @task.nil? %>" autocomplete="off" /> | ||
111 | <span class="help-block">Enter tags separated by commas or spaces (e.g. <em>each, word will,be a tag</em>)</span> | ||
112 | </div> | ||
113 | </div> | ||
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 @@ | |||
1 | { | ||
2 | "nodes": { | ||
3 | "flake-utils": { | ||
4 | "locked": { | ||
5 | "lastModified": 1648297722, | ||
6 | "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=", | ||
7 | "owner": "numtide", | ||
8 | "repo": "flake-utils", | ||
9 | "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade", | ||
10 | "type": "github" | ||
11 | }, | ||
12 | "original": { | ||
13 | "owner": "numtide", | ||
14 | "repo": "flake-utils", | ||
15 | "type": "github" | ||
16 | } | ||
17 | }, | ||
18 | "nixpkgs": { | ||
19 | "flake": false, | ||
20 | "locked": { | ||
21 | "lastModified": 1596265691, | ||
22 | "narHash": "sha256-9ofCzFqttTsGrvTaS4RrDSTNQO9PFOz5uyn8V+2eA5M=", | ||
23 | "owner": "NixOS", | ||
24 | "repo": "nixpkgs", | ||
25 | "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", | ||
26 | "type": "github" | ||
27 | }, | ||
28 | "original": { | ||
29 | "owner": "NixOS", | ||
30 | "repo": "nixpkgs", | ||
31 | "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", | ||
32 | "type": "github" | ||
33 | } | ||
34 | }, | ||
35 | "root": { | ||
36 | "inputs": { | ||
37 | "flake-utils": "flake-utils", | ||
38 | "nixpkgs": "nixpkgs", | ||
39 | "taskwarrior-web": "taskwarrior-web" | ||
40 | } | ||
41 | }, | ||
42 | "taskwarrior-web": { | ||
43 | "flake": false, | ||
44 | "locked": { | ||
45 | "lastModified": 1546434241, | ||
46 | "narHash": "sha256-BLPBglkV1HCJECSIdyMEergChiV+rwNOClYJnzlZGQk=", | ||
47 | "owner": "theunraveler", | ||
48 | "repo": "taskwarrior-web", | ||
49 | "rev": "a79cfe2b42791b62364118e58b21b892fff6ded8", | ||
50 | "type": "github" | ||
51 | }, | ||
52 | "original": { | ||
53 | "owner": "theunraveler", | ||
54 | "repo": "taskwarrior-web", | ||
55 | "rev": "a79cfe2b42791b62364118e58b21b892fff6ded8", | ||
56 | "type": "github" | ||
57 | } | ||
58 | } | ||
59 | }, | ||
60 | "root": "root", | ||
61 | "version": 7 | ||
62 | } | ||
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 @@ | |||
1 | { | ||
2 | description = "A web interface for the Taskwarrior todo application. Because being a neckbeard is only fun sometimes."; | ||
3 | inputs.flake-utils.url = "github:numtide/flake-utils"; | ||
4 | inputs.nixpkgs = { | ||
5 | url = "github:NixOS/nixpkgs/840c782d507d60aaa49aa9e3f6d0b0e780912742"; | ||
6 | flake = false; | ||
7 | }; | ||
8 | inputs.taskwarrior-web = { | ||
9 | url = "github:theunraveler/taskwarrior-web/a79cfe2b42791b62364118e58b21b892fff6ded8"; | ||
10 | flake = false; | ||
11 | }; | ||
12 | |||
13 | outputs = { self, nixpkgs, taskwarrior-web, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: | ||
14 | let | ||
15 | pkgs = import nixpkgs { inherit system; overlays = []; }; | ||
16 | inherit (pkgs) callPackage; | ||
17 | in rec { | ||
18 | packages.taskwarrior-web = callPackage ./. { src = taskwarrior-web; }; | ||
19 | defaultPackage = packages.taskwarrior-web; | ||
20 | legacyPackages.taskwarrior-web = packages.taskwarrior-web; | ||
21 | checks = { | ||
22 | build = defaultPackage; | ||
23 | }; | ||
24 | } | ||
25 | ) // rec { | ||
26 | overlays = { | ||
27 | taskwarrior-web = final: prev: { | ||
28 | taskwarrior-web = self.defaultPackage."${final.system}"; | ||
29 | }; | ||
30 | }; | ||
31 | overlay = overlays.taskwarrior-web; | ||
32 | }; | ||
33 | } | ||
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 @@ | |||
1 | { | ||
2 | activesupport = { | ||
3 | dependencies = ["i18n" "multi_json"]; | ||
4 | groups = ["default"]; | ||
5 | platforms = []; | ||
6 | source = { | ||
7 | remotes = ["http://rubygems.org"]; | ||
8 | sha256 = "0fyxqkkws4px4lzkbcqzp0bwai7nn7jk4p0bgfy0dny9cwm0qc9r"; | ||
9 | type = "gem"; | ||
10 | }; | ||
11 | version = "3.2.22.5"; | ||
12 | }; | ||
13 | blockenspiel = { | ||
14 | groups = ["default"]; | ||
15 | platforms = []; | ||
16 | source = { | ||
17 | remotes = ["http://rubygems.org"]; | ||
18 | sha256 = "1h701s45n5qprvcpc7fnr45n88p56x07pznkxqnhz1dbdbhb7xx8"; | ||
19 | type = "gem"; | ||
20 | }; | ||
21 | version = "0.5.0"; | ||
22 | }; | ||
23 | coderay = { | ||
24 | groups = ["default" "local"]; | ||
25 | platforms = []; | ||
26 | source = { | ||
27 | remotes = ["http://rubygems.org"]; | ||
28 | sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; | ||
29 | type = "gem"; | ||
30 | }; | ||
31 | version = "1.1.2"; | ||
32 | }; | ||
33 | concurrent-ruby = { | ||
34 | groups = ["default"]; | ||
35 | platforms = []; | ||
36 | source = { | ||
37 | remotes = ["http://rubygems.org"]; | ||
38 | sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1"; | ||
39 | type = "gem"; | ||
40 | }; | ||
41 | version = "1.1.4"; | ||
42 | }; | ||
43 | daemons = { | ||
44 | groups = ["default"]; | ||
45 | platforms = []; | ||
46 | source = { | ||
47 | remotes = ["http://rubygems.org"]; | ||
48 | sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w"; | ||
49 | type = "gem"; | ||
50 | }; | ||
51 | version = "1.3.1"; | ||
52 | }; | ||
53 | diff-lcs = { | ||
54 | groups = ["default" "development" "local"]; | ||
55 | platforms = []; | ||
56 | source = { | ||
57 | remotes = ["http://rubygems.org"]; | ||
58 | sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; | ||
59 | type = "gem"; | ||
60 | }; | ||
61 | version = "1.3"; | ||
62 | }; | ||
63 | docile = { | ||
64 | groups = ["default" "local"]; | ||
65 | platforms = []; | ||
66 | source = { | ||
67 | remotes = ["http://rubygems.org"]; | ||
68 | sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17"; | ||
69 | type = "gem"; | ||
70 | }; | ||
71 | version = "1.3.1"; | ||
72 | }; | ||
73 | eventmachine = { | ||
74 | groups = ["default"]; | ||
75 | platforms = []; | ||
76 | source = { | ||
77 | remotes = ["http://rubygems.org"]; | ||
78 | sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; | ||
79 | type = "gem"; | ||
80 | }; | ||
81 | version = "1.2.7"; | ||
82 | }; | ||
83 | ffi = { | ||
84 | groups = ["default" "local"]; | ||
85 | platforms = []; | ||
86 | source = { | ||
87 | remotes = ["http://rubygems.org"]; | ||
88 | sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; | ||
89 | type = "gem"; | ||
90 | }; | ||
91 | version = "1.10.0"; | ||
92 | }; | ||
93 | formatador = { | ||
94 | groups = ["default" "local"]; | ||
95 | platforms = []; | ||
96 | source = { | ||
97 | remotes = ["http://rubygems.org"]; | ||
98 | sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; | ||
99 | type = "gem"; | ||
100 | }; | ||
101 | version = "0.2.5"; | ||
102 | }; | ||
103 | growl = { | ||
104 | groups = ["local"]; | ||
105 | platforms = []; | ||
106 | source = { | ||
107 | remotes = ["http://rubygems.org"]; | ||
108 | sha256 = "0s0y7maljnalpbv2q1j5j5hvb4wcc31y9af0n7x1q2l0fzxgc9n9"; | ||
109 | type = "gem"; | ||
110 | }; | ||
111 | version = "1.0.3"; | ||
112 | }; | ||
113 | guard = { | ||
114 | dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"]; | ||
115 | groups = ["default" "local"]; | ||
116 | platforms = []; | ||
117 | source = { | ||
118 | remotes = ["http://rubygems.org"]; | ||
119 | sha256 = "0h84ja6qvii3hx86w9l4vjpbgl4m8ma8fbawwp7s8l791cgkdcmk"; | ||
120 | type = "gem"; | ||
121 | }; | ||
122 | version = "2.15.0"; | ||
123 | }; | ||
124 | guard-bundler = { | ||
125 | dependencies = ["guard" "guard-compat"]; | ||
126 | groups = ["local"]; | ||
127 | platforms = []; | ||
128 | source = { | ||
129 | remotes = ["http://rubygems.org"]; | ||
130 | sha256 = "0lji8f8w7y4prmpr2lqmlljvkqgkgnlsiwqgwvq7b1y3sxlsvy62"; | ||
131 | type = "gem"; | ||
132 | }; | ||
133 | version = "2.2.1"; | ||
134 | }; | ||
135 | guard-compat = { | ||
136 | groups = ["default" "local"]; | ||
137 | platforms = []; | ||
138 | source = { | ||
139 | remotes = ["http://rubygems.org"]; | ||
140 | sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis"; | ||
141 | type = "gem"; | ||
142 | }; | ||
143 | version = "1.2.1"; | ||
144 | }; | ||
145 | guard-rspec = { | ||
146 | dependencies = ["guard" "guard-compat" "rspec"]; | ||
147 | groups = ["local"]; | ||
148 | platforms = []; | ||
149 | source = { | ||
150 | remotes = ["http://rubygems.org"]; | ||
151 | sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4"; | ||
152 | type = "gem"; | ||
153 | }; | ||
154 | version = "4.7.3"; | ||
155 | }; | ||
156 | i18n = { | ||
157 | dependencies = ["concurrent-ruby"]; | ||
158 | groups = ["default"]; | ||
159 | platforms = []; | ||
160 | source = { | ||
161 | remotes = ["http://rubygems.org"]; | ||
162 | sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; | ||
163 | type = "gem"; | ||
164 | }; | ||
165 | version = "0.9.5"; | ||
166 | }; | ||
167 | json = { | ||
168 | groups = ["default" "local"]; | ||
169 | platforms = []; | ||
170 | source = { | ||
171 | remotes = ["http://rubygems.org"]; | ||
172 | sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; | ||
173 | type = "gem"; | ||
174 | }; | ||
175 | version = "1.8.6"; | ||
176 | }; | ||
177 | listen = { | ||
178 | dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"]; | ||
179 | groups = ["default" "local"]; | ||
180 | platforms = []; | ||
181 | source = { | ||
182 | remotes = ["http://rubygems.org"]; | ||
183 | sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx"; | ||
184 | type = "gem"; | ||
185 | }; | ||
186 | version = "3.1.5"; | ||
187 | }; | ||
188 | lumberjack = { | ||
189 | groups = ["default" "local"]; | ||
190 | platforms = []; | ||
191 | source = { | ||
192 | remotes = ["http://rubygems.org"]; | ||
193 | sha256 = "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n"; | ||
194 | type = "gem"; | ||
195 | }; | ||
196 | version = "1.0.13"; | ||
197 | }; | ||
198 | method_source = { | ||
199 | groups = ["default" "local"]; | ||
200 | platforms = []; | ||
201 | source = { | ||
202 | remotes = ["http://rubygems.org"]; | ||
203 | sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; | ||
204 | type = "gem"; | ||
205 | }; | ||
206 | version = "0.9.2"; | ||
207 | }; | ||
208 | mini_portile2 = { | ||
209 | groups = ["default" "development"]; | ||
210 | platforms = []; | ||
211 | source = { | ||
212 | remotes = ["http://rubygems.org"]; | ||
213 | sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; | ||
214 | type = "gem"; | ||
215 | }; | ||
216 | version = "2.4.0"; | ||
217 | }; | ||
218 | multi_json = { | ||
219 | groups = ["default"]; | ||
220 | platforms = []; | ||
221 | source = { | ||
222 | remotes = ["http://rubygems.org"]; | ||
223 | sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; | ||
224 | type = "gem"; | ||
225 | }; | ||
226 | version = "1.13.1"; | ||
227 | }; | ||
228 | mustermann = { | ||
229 | groups = ["default"]; | ||
230 | platforms = []; | ||
231 | source = { | ||
232 | remotes = ["http://rubygems.org"]; | ||
233 | sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1"; | ||
234 | type = "gem"; | ||
235 | }; | ||
236 | version = "1.0.3"; | ||
237 | }; | ||
238 | nenv = { | ||
239 | groups = ["default" "local"]; | ||
240 | platforms = []; | ||
241 | source = { | ||
242 | remotes = ["http://rubygems.org"]; | ||
243 | sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr"; | ||
244 | type = "gem"; | ||
245 | }; | ||
246 | version = "0.3.0"; | ||
247 | }; | ||
248 | nokogiri = { | ||
249 | dependencies = ["mini_portile2"]; | ||
250 | groups = ["default" "development"]; | ||
251 | platforms = []; | ||
252 | source = { | ||
253 | remotes = ["http://rubygems.org"]; | ||
254 | sha256 = "09zll7c6j7xr6wyvh5mm5ncj6pkryp70ybcsxdbw1nyphx5dh184"; | ||
255 | type = "gem"; | ||
256 | }; | ||
257 | version = "1.10.1"; | ||
258 | }; | ||
259 | notiffany = { | ||
260 | dependencies = ["nenv" "shellany"]; | ||
261 | groups = ["default" "local"]; | ||
262 | platforms = []; | ||
263 | source = { | ||
264 | remotes = ["http://rubygems.org"]; | ||
265 | sha256 = "0x838fa5il0dd9zbm3lxkpbfxcf5fxv9556mayc2mxsdl5ghv8nx"; | ||
266 | type = "gem"; | ||
267 | }; | ||
268 | version = "0.1.1"; | ||
269 | }; | ||
270 | parseconfig = { | ||
271 | groups = ["default"]; | ||
272 | platforms = []; | ||
273 | source = { | ||
274 | remotes = ["http://rubygems.org"]; | ||
275 | sha256 = "0br2g9k6zc4ygah52aa8cwvpnnkszia29bnvnr8bhpk3rdzi2vmq"; | ||
276 | type = "gem"; | ||
277 | }; | ||
278 | version = "1.0.8"; | ||
279 | }; | ||
280 | pry = { | ||
281 | dependencies = ["coderay" "method_source"]; | ||
282 | groups = ["default" "local"]; | ||
283 | platforms = []; | ||
284 | source = { | ||
285 | remotes = ["http://rubygems.org"]; | ||
286 | sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69"; | ||
287 | type = "gem"; | ||
288 | }; | ||
289 | version = "0.12.2"; | ||
290 | }; | ||
291 | rack = { | ||
292 | groups = ["default" "development"]; | ||
293 | platforms = []; | ||
294 | source = { | ||
295 | remotes = ["http://rubygems.org"]; | ||
296 | sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm"; | ||
297 | type = "gem"; | ||
298 | }; | ||
299 | version = "2.0.6"; | ||
300 | }; | ||
301 | rack-flash3 = { | ||
302 | dependencies = ["rack"]; | ||
303 | groups = ["default"]; | ||
304 | platforms = []; | ||
305 | source = { | ||
306 | remotes = ["http://rubygems.org"]; | ||
307 | sha256 = "0rim9afrns6s8zc4apiymncysyvijpdg18k57kdpz66p55jf4mqz"; | ||
308 | type = "gem"; | ||
309 | }; | ||
310 | version = "1.0.5"; | ||
311 | }; | ||
312 | rack-protection = { | ||
313 | dependencies = ["rack"]; | ||
314 | groups = ["default"]; | ||
315 | platforms = []; | ||
316 | source = { | ||
317 | remotes = ["http://rubygems.org"]; | ||
318 | sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk"; | ||
319 | type = "gem"; | ||
320 | }; | ||
321 | version = "2.0.5"; | ||
322 | }; | ||
323 | rack-test = { | ||
324 | dependencies = ["rack"]; | ||
325 | groups = ["development"]; | ||
326 | platforms = []; | ||
327 | source = { | ||
328 | remotes = ["http://rubygems.org"]; | ||
329 | sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; | ||
330 | type = "gem"; | ||
331 | }; | ||
332 | version = "1.1.0"; | ||
333 | }; | ||
334 | rake = { | ||
335 | groups = ["development"]; | ||
336 | platforms = []; | ||
337 | source = { | ||
338 | remotes = ["http://rubygems.org"]; | ||
339 | sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b"; | ||
340 | type = "gem"; | ||
341 | }; | ||
342 | version = "10.5.0"; | ||
343 | }; | ||
344 | rb-fsevent = { | ||
345 | groups = ["local"]; | ||
346 | platforms = []; | ||
347 | source = { | ||
348 | remotes = ["http://rubygems.org"]; | ||
349 | sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8"; | ||
350 | type = "gem"; | ||
351 | }; | ||
352 | version = "0.10.3"; | ||
353 | }; | ||
354 | rb-inotify = { | ||
355 | dependencies = ["ffi"]; | ||
356 | groups = ["default" "local"]; | ||
357 | platforms = []; | ||
358 | source = { | ||
359 | remotes = ["http://rubygems.org"]; | ||
360 | sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4"; | ||
361 | type = "gem"; | ||
362 | }; | ||
363 | version = "0.10.0"; | ||
364 | }; | ||
365 | rinku = { | ||
366 | groups = ["default"]; | ||
367 | platforms = []; | ||
368 | source = { | ||
369 | remotes = ["http://rubygems.org"]; | ||
370 | sha256 = "1smkk299v18brk98gqbdnqrfwm3143kikl30scidqb5j3pzlbz91"; | ||
371 | type = "gem"; | ||
372 | }; | ||
373 | version = "2.0.5"; | ||
374 | }; | ||
375 | rspec = { | ||
376 | dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; | ||
377 | groups = ["development" "local"]; | ||
378 | platforms = []; | ||
379 | source = { | ||
380 | remotes = ["http://rubygems.org"]; | ||
381 | sha256 = "14q3hxvngk4ks8h41yw50d5fqbf2dhzwi9rz5ccxvh5a53ak2as3"; | ||
382 | type = "gem"; | ||
383 | }; | ||
384 | version = "2.99.0"; | ||
385 | }; | ||
386 | rspec-core = { | ||
387 | groups = ["default" "development" "local"]; | ||
388 | platforms = []; | ||
389 | source = { | ||
390 | remotes = ["http://rubygems.org"]; | ||
391 | sha256 = "1wwz21lcz2lwd2jcp2pvq7n1677v23acf7wxsyszp8msb47mw38i"; | ||
392 | type = "gem"; | ||
393 | }; | ||
394 | version = "2.99.2"; | ||
395 | }; | ||
396 | rspec-expectations = { | ||
397 | dependencies = ["diff-lcs"]; | ||
398 | groups = ["default" "development" "local"]; | ||
399 | platforms = []; | ||
400 | source = { | ||
401 | remotes = ["http://rubygems.org"]; | ||
402 | sha256 = "11a5pph3anp4xr591dnlcy8xfkdf54qi2lvg4ykpqhxk37si1py3"; | ||
403 | type = "gem"; | ||
404 | }; | ||
405 | version = "2.99.2"; | ||
406 | }; | ||
407 | rspec-html-matchers = { | ||
408 | dependencies = ["nokogiri" "rspec"]; | ||
409 | groups = ["development"]; | ||
410 | platforms = []; | ||
411 | source = { | ||
412 | remotes = ["http://rubygems.org"]; | ||
413 | sha256 = "148grzvk0cvh24avhl0shjzz7ldhj138svf48pc5h1fdsb0pnqcv"; | ||
414 | type = "gem"; | ||
415 | }; | ||
416 | version = "0.5.0"; | ||
417 | }; | ||
418 | rspec-mocks = { | ||
419 | groups = ["default" "development" "local"]; | ||
420 | platforms = []; | ||
421 | source = { | ||
422 | remotes = ["http://rubygems.org"]; | ||
423 | sha256 = "0bzhqahbiswq41nqi6y2dka1k42n0hl14jb6bldb206zp4hikz8r"; | ||
424 | type = "gem"; | ||
425 | }; | ||
426 | version = "2.99.4"; | ||
427 | }; | ||
428 | ruby_dep = { | ||
429 | groups = ["default" "local"]; | ||
430 | platforms = []; | ||
431 | source = { | ||
432 | remotes = ["http://rubygems.org"]; | ||
433 | sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5"; | ||
434 | type = "gem"; | ||
435 | }; | ||
436 | version = "1.5.0"; | ||
437 | }; | ||
438 | shellany = { | ||
439 | groups = ["default" "local"]; | ||
440 | platforms = []; | ||
441 | source = { | ||
442 | remotes = ["http://rubygems.org"]; | ||
443 | sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"; | ||
444 | type = "gem"; | ||
445 | }; | ||
446 | version = "0.0.1"; | ||
447 | }; | ||
448 | simple-navigation = { | ||
449 | dependencies = ["activesupport"]; | ||
450 | groups = ["default"]; | ||
451 | platforms = []; | ||
452 | source = { | ||
453 | remotes = ["http://rubygems.org"]; | ||
454 | sha256 = "08a2s18an3br3xj5j86r33q0hrkai0y157xg67h1khdskb08yylk"; | ||
455 | type = "gem"; | ||
456 | }; | ||
457 | version = "4.0.5"; | ||
458 | }; | ||
459 | simplecov = { | ||
460 | dependencies = ["docile" "json" "simplecov-html"]; | ||
461 | groups = ["local"]; | ||
462 | platforms = []; | ||
463 | source = { | ||
464 | remotes = ["http://rubygems.org"]; | ||
465 | sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947"; | ||
466 | type = "gem"; | ||
467 | }; | ||
468 | version = "0.16.1"; | ||
469 | }; | ||
470 | simplecov-html = { | ||
471 | groups = ["default" "local"]; | ||
472 | platforms = []; | ||
473 | source = { | ||
474 | remotes = ["http://rubygems.org"]; | ||
475 | sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; | ||
476 | type = "gem"; | ||
477 | }; | ||
478 | version = "0.10.2"; | ||
479 | }; | ||
480 | sinatra = { | ||
481 | dependencies = ["mustermann" "rack" "rack-protection" "tilt"]; | ||
482 | groups = ["default"]; | ||
483 | platforms = []; | ||
484 | source = { | ||
485 | remotes = ["http://rubygems.org"]; | ||
486 | sha256 = "1gasgn5f15myv08k10i16p326pchxjsy37pgqfw0xm66kcc5d7ry"; | ||
487 | type = "gem"; | ||
488 | }; | ||
489 | version = "2.0.5"; | ||
490 | }; | ||
491 | sinatra-simple-navigation = { | ||
492 | dependencies = ["simple-navigation" "sinatra"]; | ||
493 | groups = ["default"]; | ||
494 | platforms = []; | ||
495 | source = { | ||
496 | remotes = ["http://rubygems.org"]; | ||
497 | sha256 = "1gishxd23qw6bwsk7fkagkfc7ihqyvvvb98j9bmwc6wwpsfs4prs"; | ||
498 | type = "gem"; | ||
499 | }; | ||
500 | version = "4.1.0"; | ||
501 | }; | ||
502 | taskwarrior-web = { | ||
503 | dependencies = ["activesupport" "json" "parseconfig" "rack-flash3" "rinku" "sinatra" "sinatra-simple-navigation" "vegas" "versionomy"]; | ||
504 | groups = ["default"]; | ||
505 | platforms = []; | ||
506 | bundledByPath = true; | ||
507 | path = ./.; | ||
508 | source = { | ||
509 | path = ./.; | ||
510 | type = "path"; | ||
511 | }; | ||
512 | version = "1.1.12"; | ||
513 | }; | ||
514 | thin = { | ||
515 | dependencies = ["daemons" "eventmachine" "rack"]; | ||
516 | groups = ["default"]; | ||
517 | platforms = []; | ||
518 | source = { | ||
519 | remotes = ["http://rubygems.org"]; | ||
520 | sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f"; | ||
521 | type = "gem"; | ||
522 | }; | ||
523 | version = "1.7.2"; | ||
524 | }; | ||
525 | thor = { | ||
526 | groups = ["default" "local"]; | ||
527 | platforms = []; | ||
528 | source = { | ||
529 | remotes = ["http://rubygems.org"]; | ||
530 | sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; | ||
531 | type = "gem"; | ||
532 | }; | ||
533 | version = "0.20.3"; | ||
534 | }; | ||
535 | tilt = { | ||
536 | groups = ["default"]; | ||
537 | platforms = []; | ||
538 | source = { | ||
539 | remotes = ["http://rubygems.org"]; | ||
540 | sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz"; | ||
541 | type = "gem"; | ||
542 | }; | ||
543 | version = "2.0.9"; | ||
544 | }; | ||
545 | vegas = { | ||
546 | dependencies = ["rack"]; | ||
547 | groups = ["default"]; | ||
548 | platforms = []; | ||
549 | source = { | ||
550 | remotes = ["http://rubygems.org"]; | ||
551 | sha256 = "0kzv0v1zb8vvm188q4pqwahb6468bmiamn6wpsbiq6r5i69s1bs5"; | ||
552 | type = "gem"; | ||
553 | }; | ||
554 | version = "0.1.11"; | ||
555 | }; | ||
556 | versionomy = { | ||
557 | dependencies = ["blockenspiel"]; | ||
558 | groups = ["default"]; | ||
559 | platforms = []; | ||
560 | source = { | ||
561 | remotes = ["http://rubygems.org"]; | ||
562 | sha256 = "0i0l4pzrl1vyp4lpg2cxhgkk56spki3lld943d6h7168fj8qyv33"; | ||
563 | type = "gem"; | ||
564 | }; | ||
565 | version = "0.5.0"; | ||
566 | }; | ||
567 | } | ||
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 @@ | |||
1 | diff --git a/Gemfile b/Gemfile | ||
2 | index 8544e15..9c4279c 100644 | ||
3 | --- a/Gemfile | ||
4 | +++ b/Gemfile | ||
5 | @@ -3,6 +3,8 @@ source "http://rubygems.org" | ||
6 | # Specify your gem's dependencies in taskwarrior-web.gemspec | ||
7 | gemspec | ||
8 | |||
9 | +gem 'thin' | ||
10 | + | ||
11 | group :local do | ||
12 | gem 'rb-fsevent', :require => false | ||
13 | gem 'growl', :require => false | ||
14 | diff --git a/config.ru b/config.ru | ||
15 | index c3050c6..52387d8 100644 | ||
16 | --- a/config.ru | ||
17 | +++ b/config.ru | ||
18 | @@ -1,5 +1,4 @@ | ||
19 | require File.join(File.dirname(__FILE__), 'lib', 'taskwarrior-web') | ||
20 | |||
21 | -disable :run | ||
22 | TaskwarriorWeb::App.set({ :environment => :production }) | ||
23 | run TaskwarriorWeb::App | ||