webtask 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/CODE_OF_CONDUCT.md +49 -0
  6. data/CONTRIBUTING.md +5 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE +21 -0
  9. data/README.md +39 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/example/Rakefile +62 -0
  14. data/example/test.log +21 -0
  15. data/exe/webtask +5 -0
  16. data/lib/webtask.rb +18 -0
  17. data/lib/webtask/application.rb +23 -0
  18. data/lib/webtask/public/javascripts/application.js +25 -0
  19. data/lib/webtask/public/stylesheets/application.css +277 -0
  20. data/lib/webtask/public/stylesheets/application.css.map +7 -0
  21. data/lib/webtask/public/stylesheets/sass/application.scss +106 -0
  22. data/lib/webtask/public/stylesheets/sass/base/_base.scss +15 -0
  23. data/lib/webtask/public/stylesheets/sass/base/_buttons.scss +35 -0
  24. data/lib/webtask/public/stylesheets/sass/base/_forms.scss +84 -0
  25. data/lib/webtask/public/stylesheets/sass/base/_grid-settings.scss +14 -0
  26. data/lib/webtask/public/stylesheets/sass/base/_lists.scss +19 -0
  27. data/lib/webtask/public/stylesheets/sass/base/_tables.scss +24 -0
  28. data/lib/webtask/public/stylesheets/sass/base/_typography.scss +48 -0
  29. data/lib/webtask/public/stylesheets/sass/base/_variables.scss +44 -0
  30. data/lib/webtask/public/stylesheets/sass/bourbon/_bourbon-deprecated-upcoming.scss +411 -0
  31. data/lib/webtask/public/stylesheets/sass/bourbon/_bourbon.scss +87 -0
  32. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_border-color.scss +26 -0
  33. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_border-radius.scss +48 -0
  34. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_border-style.scss +25 -0
  35. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_border-width.scss +25 -0
  36. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_buttons.scss +64 -0
  37. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_clearfix.scss +25 -0
  38. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_ellipsis.scss +30 -0
  39. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_font-stacks.scss +31 -0
  40. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_hide-text.scss +27 -0
  41. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_margin.scss +26 -0
  42. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_padding.scss +26 -0
  43. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_position.scss +48 -0
  44. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_prefixer.scss +66 -0
  45. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_retina-image.scss +25 -0
  46. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_size.scss +51 -0
  47. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_text-inputs.scss +113 -0
  48. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_timing-functions.scss +34 -0
  49. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_triangle.scss +63 -0
  50. data/lib/webtask/public/stylesheets/sass/bourbon/addons/_word-wrap.scss +29 -0
  51. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_animation.scss +43 -0
  52. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_appearance.scss +3 -0
  53. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_backface-visibility.scss +3 -0
  54. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_background-image.scss +42 -0
  55. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_background.scss +55 -0
  56. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_border-image.scss +59 -0
  57. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_calc.scss +4 -0
  58. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_columns.scss +47 -0
  59. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_filter.scss +4 -0
  60. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_flex-box.scss +287 -0
  61. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_font-face.scss +24 -0
  62. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_font-feature-settings.scss +4 -0
  63. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_hidpi-media-query.scss +10 -0
  64. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_hyphens.scss +4 -0
  65. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_image-rendering.scss +14 -0
  66. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_keyframes.scss +36 -0
  67. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_linear-gradient.scss +38 -0
  68. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_perspective.scss +8 -0
  69. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_placeholder.scss +8 -0
  70. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_radial-gradient.scss +39 -0
  71. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_selection.scss +42 -0
  72. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_text-decoration.scss +19 -0
  73. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_transform.scss +15 -0
  74. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_transition.scss +71 -0
  75. data/lib/webtask/public/stylesheets/sass/bourbon/css3/_user-select.scss +3 -0
  76. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_assign-inputs.scss +11 -0
  77. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_contains-falsy.scss +20 -0
  78. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_contains.scss +26 -0
  79. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_is-length.scss +11 -0
  80. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_is-light.scss +21 -0
  81. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_is-number.scss +11 -0
  82. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_is-size.scss +13 -0
  83. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_modular-scale.scss +69 -0
  84. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_px-to-em.scss +13 -0
  85. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_px-to-rem.scss +15 -0
  86. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_shade.scss +24 -0
  87. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_strip-units.scss +17 -0
  88. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_tint.scss +24 -0
  89. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_transition-property-name.scss +22 -0
  90. data/lib/webtask/public/stylesheets/sass/bourbon/functions/_unpack.scss +27 -0
  91. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_convert-units.scss +21 -0
  92. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_directional-values.scss +96 -0
  93. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_font-source-declaration.scss +43 -0
  94. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_gradient-positions-parser.scss +13 -0
  95. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_linear-angle-parser.scss +25 -0
  96. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_linear-gradient-parser.scss +41 -0
  97. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_linear-positions-parser.scss +61 -0
  98. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_linear-side-corner-parser.scss +31 -0
  99. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_radial-arg-parser.scss +69 -0
  100. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_radial-gradient-parser.scss +50 -0
  101. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_radial-positions-parser.scss +18 -0
  102. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_render-gradients.scss +26 -0
  103. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_shape-size-stripper.scss +10 -0
  104. data/lib/webtask/public/stylesheets/sass/bourbon/helpers/_str-to-num.scss +50 -0
  105. data/lib/webtask/public/stylesheets/sass/bourbon/settings/_asset-pipeline.scss +7 -0
  106. data/lib/webtask/public/stylesheets/sass/bourbon/settings/_prefixer.scss +9 -0
  107. data/lib/webtask/public/stylesheets/sass/bourbon/settings/_px-to-em.scss +1 -0
  108. data/lib/webtask/public/stylesheets/sass/neat/_neat-helpers.scss +11 -0
  109. data/lib/webtask/public/stylesheets/sass/neat/_neat.scss +23 -0
  110. data/lib/webtask/public/stylesheets/sass/neat/functions/_new-breakpoint.scss +49 -0
  111. data/lib/webtask/public/stylesheets/sass/neat/functions/_private.scss +114 -0
  112. data/lib/webtask/public/stylesheets/sass/neat/grid/_box-sizing.scss +15 -0
  113. data/lib/webtask/public/stylesheets/sass/neat/grid/_direction-context.scss +33 -0
  114. data/lib/webtask/public/stylesheets/sass/neat/grid/_display-context.scss +28 -0
  115. data/lib/webtask/public/stylesheets/sass/neat/grid/_fill-parent.scss +22 -0
  116. data/lib/webtask/public/stylesheets/sass/neat/grid/_media.scss +92 -0
  117. data/lib/webtask/public/stylesheets/sass/neat/grid/_omega.scss +87 -0
  118. data/lib/webtask/public/stylesheets/sass/neat/grid/_outer-container.scss +34 -0
  119. data/lib/webtask/public/stylesheets/sass/neat/grid/_pad.scss +25 -0
  120. data/lib/webtask/public/stylesheets/sass/neat/grid/_private.scss +35 -0
  121. data/lib/webtask/public/stylesheets/sass/neat/grid/_row.scss +52 -0
  122. data/lib/webtask/public/stylesheets/sass/neat/grid/_shift.scss +50 -0
  123. data/lib/webtask/public/stylesheets/sass/neat/grid/_span-columns.scss +94 -0
  124. data/lib/webtask/public/stylesheets/sass/neat/grid/_to-deprecate.scss +97 -0
  125. data/lib/webtask/public/stylesheets/sass/neat/grid/_visual-grid.scss +42 -0
  126. data/lib/webtask/public/stylesheets/sass/neat/mixins/_clearfix.scss +25 -0
  127. data/lib/webtask/public/stylesheets/sass/neat/settings/_disable-warnings.scss +13 -0
  128. data/lib/webtask/public/stylesheets/sass/neat/settings/_grid.scss +51 -0
  129. data/lib/webtask/public/stylesheets/sass/neat/settings/_visual-grid.scss +27 -0
  130. data/lib/webtask/rake_application.rb +40 -0
  131. data/lib/webtask/stream_error.rb +18 -0
  132. data/lib/webtask/stream_out.rb +12 -0
  133. data/lib/webtask/task_runner.rb +63 -0
  134. data/lib/webtask/task_wrapper.rb +25 -0
  135. data/lib/webtask/version.rb +3 -0
  136. data/lib/webtask/views/index.haml +57 -0
  137. data/lib/webtask/views/result.haml +30 -0
  138. data/webtask.gemspec +34 -0
  139. metadata +339 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 007d5d66dd97290527a26b48f98ba1946715d4c8
4
+ data.tar.gz: 7fdeab7977c7db4dd6e632644daad30eb4c419c1
5
+ SHA512:
6
+ metadata.gz: 3be048018b33abb141d2f3a8c4c7a1e974f41f75a17554dab5249ddd2ff111f705861d6b51cd9cee52e6982648a1bd01c07faa7a9a31505d94a1e90134ad8f77
7
+ data.tar.gz: d5c38382e0e70a3cbd5e04955470aef727c7de19af3056d211b910f31eb15e1e96982cb9959cd849c723de86374a2680a2cd6d5e64ce130c3386702d6b87561f
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /example/.config
11
+ /.sass-cache
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.1
5
+ before_install: gem install bundler -v 1.12.5
@@ -0,0 +1,49 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at dirk.breuer@gmail.com. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [homepage]: http://contributor-covenant.org
49
+ [version]: http://contributor-covenant.org/version/1/3/0/
@@ -0,0 +1,5 @@
1
+ # Contributing
2
+
3
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
4
+
5
+ We welcome any kind of contribution: Documentation, code, issues, discussions, critique, speaking about it...
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in webtask.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2016 yakshed
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,39 @@
1
+ # Webtask
2
+
3
+ Having a Rakefile with useful tasks for all kind of things is a handy thing. For devs. Who know Ruby. With access to the machine where those tasks need to be run. Everypony else would prefer a simple web interface to access those tasks.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem "webtask"
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install webtask
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ ## Development
26
+
27
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
28
+
29
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
30
+
31
+ ## Contributing
32
+
33
+ Bug reports and pull requests are welcome on [GitHub](https://github.com/yakshed/webrake). You can find more information about contributing in the [CONTRIBUTING.md](https://github.com/yakshed/webrake/blob/master/CONTRIBUTING.md). This project is intended to be a safe, welcoming space for collaboration and discussion, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org/) code of conduct.
34
+
35
+
36
+ ## License
37
+
38
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
39
+
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "webtask"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,62 @@
1
+ require "rake"
2
+ require "json"
3
+ require "yaml"
4
+ require "net/http"
5
+ require "uri"
6
+
7
+ config = YAML.load_file(".config")
8
+
9
+ def options_for(argument)
10
+ case argument
11
+ when :channel
12
+ %w(@dirk @bascht)
13
+ end
14
+ end
15
+
16
+ desc "Prepare everything"
17
+ task :prepare do
18
+ puts "Prepare!"
19
+ end
20
+
21
+ desc "Task with prerequisites"
22
+ task :do_something => %(prepare) do
23
+ puts "DO IT!!"
24
+ end
25
+
26
+ desc "Long running task with output"
27
+ task :long_running_task do
28
+ File.foreach("test.log") do |line|
29
+ if rand < 0.2
30
+ $stderr.puts line
31
+ else
32
+ puts line
33
+ end
34
+ end
35
+ end
36
+
37
+ desc "Prints the current time in `/tmp/webrake`"
38
+ task :update_timestamp do
39
+ File.open("/tmp/webrake", "w+") do |f|
40
+ f.puts Time.now
41
+ end
42
+ end
43
+
44
+ desc "Send Notification to Slack"
45
+ task :notify, %i(notification) do |_t, args|
46
+ slack_payload = {
47
+ text: args[:notification],
48
+ channel: "@dirk"
49
+ }
50
+
51
+ Net::HTTP.post_form(URI(config["slack_webhook_url"]), payload: slack_payload.to_json)
52
+ end
53
+
54
+ desc "Send a Notification with predefined options"
55
+ task :notify_with_option, %i(notification channel) do |_t, args|
56
+ slack_payload = {
57
+ text: args[:notification],
58
+ channel: args[:channel]
59
+ }
60
+
61
+ Net::HTTP.post_form(URI(config["slack_webhook_url"]), payload: slack_payload.to_json)
62
+ end
@@ -0,0 +1,21 @@
1
+ default 11:14:36.992988 +0100 iTunes Setting identical now playing info, skipping update.
2
+ default 11:14:37.029103 +0100 securityd port 71755 is dead
3
+ default 11:14:37.029147 +0100 securityd 0x7fff56f128d0 dead connection 71755
4
+ default 11:14:37.029194 +0100 securityd Connection 0x7f965c624fa0 aborted
5
+ default 11:14:37.029228 +0100 securityd releasing client connection 0x7f965c624fa0
6
+ default 11:14:37.029272 +0100 securityd port 29879 is dead
7
+ default 11:14:37.029316 +0100 securityd 0x7fff56f128d0 dead connection 29879
8
+ default 11:14:37.029353 +0100 securityd Connection 0x7f965c625da0 aborted
9
+ default 11:14:37.029384 +0100 securityd releasing client connection 0x7f965c625da0
10
+ default 11:14:37.029427 +0100 apsd peer(91137) received XPC_ERROR_CONNECTION_INVALID
11
+ default 11:14:37.029685 +0100 UserEventAgent Completed XPC Activity: com.apple.AddressBook.ScheduledSync
12
+ default 11:14:37.030415 +0100 UserEventAgent Rescheduling XPC Activity: com.apple.AddressBook.ScheduledSync
13
+ default 11:14:37.030448 +0100 ContactsAccountsService __51-[ACRemoteAccountStoreSession _configureConnection]_block_invoke.62 (57) "The connection to ACDAccountStore was invalidated."
14
+ default 11:14:37.030762 +0100 UserEventAgent SUBMITTING: <private>
15
+ default 11:14:37.030900 +0100 DuetHeuristic-BM <private>
16
+ default 11:14:37.031412 +0100 DuetHeuristic-BM <private>
17
+ default 11:14:37.031732 +0100 DuetHeuristic-BM <private>
18
+ default 11:14:37.031898 +0100 securityd port 63823 is dead
19
+ default 11:14:37.031942 +0100 securityd 0x7fff56f128d0 dead process 63823
20
+ default 11:14:37.031981 +0100 securityd 0x7f965c6245b0 client release: 91137
21
+ default 11:14:37.032012 +0100 opendirectoryd disconnect module connection
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "webtask"
4
+
5
+ Webtask::Application.run!
@@ -0,0 +1,18 @@
1
+ require "sinatra/base"
2
+ require "haml"
3
+ require "rake"
4
+ require "yaml"
5
+ require "digest"
6
+ require "open3"
7
+
8
+ require "webtask/version"
9
+
10
+ require "webtask/rake_application"
11
+ require "webtask/task_wrapper"
12
+ require "webtask/task_runner"
13
+ require "webtask/stream_out"
14
+ require "webtask/stream_error"
15
+ require "webtask/application"
16
+
17
+ module Webtask
18
+ end
@@ -0,0 +1,23 @@
1
+ module Webtask
2
+ class Application < Sinatra::Base
3
+ set :server, "thin"
4
+ set :output_streams, {}
5
+ set :public_folder, File.dirname(__FILE__) + "/public"
6
+
7
+ RakeApplication.build_task_endpoints(self)
8
+
9
+ get "/" do
10
+ haml :index, format: :html5, locals: { tasks: RakeApplication.tasks }
11
+ end
12
+
13
+ get "/stream/:stream_id", provides: "text/event-stream" do
14
+ stream :keep_open do |out|
15
+ next unless settings.output_streams.has_key?(params[:stream_id])
16
+
17
+ TaskRunner.run(command: settings.output_streams[params[:stream_id]], out: out)
18
+
19
+ settings.output_streams.delete(params[:stream_id])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ var streamId = document.getElementById("Task_output-content").getAttribute("data-stream-id");
2
+
3
+ var es = new EventSource("/stream/" + streamId);
4
+
5
+ var appendOutput = function(output) {
6
+ document.getElementById("Task_output-content").insertAdjacentHTML("beforeend", output + "\n");
7
+ }
8
+
9
+ es.addEventListener("stdout", function(e) {
10
+ var line = document.createElement("xmp");
11
+ line.innerHTML = e.data;
12
+
13
+ appendOutput(line.outerHTML);
14
+ });
15
+
16
+ es.addEventListener("stderr", function(e) {
17
+ var line = document.createElement("xmp");
18
+ line.innerHTML = e.data;
19
+
20
+ var errorLine = document.createElement("span");
21
+ errorLine.className = "Task_output-contentError";
22
+ errorLine.innerHTML = line.outerHTML;
23
+
24
+ appendOutput(errorLine.outerHTML);
25
+ });
@@ -0,0 +1,277 @@
1
+ button, input[type="button"], input[type="reset"], input[type="submit"] {
2
+ appearance: none;
3
+ background-color: #be1d77;
4
+ border: 0;
5
+ border-radius: 3px;
6
+ color: #fff;
7
+ cursor: pointer;
8
+ display: inline-block;
9
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
10
+ font-size: 1em;
11
+ -webkit-font-smoothing: antialiased;
12
+ font-weight: 600;
13
+ line-height: 1;
14
+ padding: 0.75em 1.5em;
15
+ text-decoration: none;
16
+ transition: background-color 150ms ease;
17
+ user-select: none;
18
+ vertical-align: middle;
19
+ white-space: nowrap; }
20
+ button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus {
21
+ background-color: #98175f;
22
+ color: #fff; }
23
+ button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled {
24
+ cursor: not-allowed;
25
+ opacity: 0.5; }
26
+ button:disabled:hover, input[type="button"]:disabled:hover, input[type="reset"]:disabled:hover, input[type="submit"]:disabled:hover {
27
+ background-color: #be1d77; }
28
+
29
+ fieldset {
30
+ background-color: transparent;
31
+ border: 0;
32
+ margin: 0;
33
+ padding: 0; }
34
+
35
+ legend {
36
+ font-weight: 600;
37
+ margin-bottom: 0.375em;
38
+ padding: 0; }
39
+
40
+ label {
41
+ display: block;
42
+ font-weight: 600;
43
+ margin-bottom: 0.375em; }
44
+
45
+ input,
46
+ select {
47
+ display: block;
48
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
49
+ font-size: 1em; }
50
+
51
+ input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], input:not([type]), textarea,
52
+ select[multiple] {
53
+ background-color: #fff;
54
+ border: 1px solid #ddd;
55
+ border-radius: 3px;
56
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
57
+ box-sizing: border-box;
58
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
59
+ font-size: 1em;
60
+ margin-bottom: 0.75em;
61
+ padding: 0.5em;
62
+ transition: border-color 150ms ease;
63
+ width: 100%; }
64
+ input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="email"]:hover, input[type="month"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="time"]:hover, input[type="url"]:hover, input[type="week"]:hover, input:not([type]):hover, textarea:hover,
65
+ select[multiple]:hover {
66
+ border-color: #b1b1b1; }
67
+ input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, input:not([type]):focus, textarea:focus,
68
+ select[multiple]:focus {
69
+ border-color: #be1d77;
70
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(168, 26, 105, 0.7);
71
+ outline: none; }
72
+ input[type="color"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="email"]:disabled, input[type="month"]:disabled, input[type="number"]:disabled, input[type="password"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="text"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="week"]:disabled, input:not([type]):disabled, textarea:disabled,
73
+ select[multiple]:disabled {
74
+ background-color: #f2f2f2;
75
+ cursor: not-allowed; }
76
+ input[type="color"]:disabled:hover, input[type="date"]:disabled:hover, input[type="datetime"]:disabled:hover, input[type="datetime-local"]:disabled:hover, input[type="email"]:disabled:hover, input[type="month"]:disabled:hover, input[type="number"]:disabled:hover, input[type="password"]:disabled:hover, input[type="search"]:disabled:hover, input[type="tel"]:disabled:hover, input[type="text"]:disabled:hover, input[type="time"]:disabled:hover, input[type="url"]:disabled:hover, input[type="week"]:disabled:hover, input:not([type]):disabled:hover, textarea:disabled:hover,
77
+ select[multiple]:disabled:hover {
78
+ border: 1px solid #ddd; }
79
+
80
+ textarea {
81
+ resize: vertical; }
82
+
83
+ [type="search"] {
84
+ appearance: none; }
85
+
86
+ [type="checkbox"],
87
+ [type="radio"] {
88
+ display: inline;
89
+ margin-right: 0.375em; }
90
+
91
+ [type="file"] {
92
+ margin-bottom: 0.75em;
93
+ width: 100%; }
94
+
95
+ select {
96
+ margin-bottom: 1.5em;
97
+ max-width: 100%;
98
+ width: auto; }
99
+
100
+ ul,
101
+ ol {
102
+ list-style-type: none;
103
+ margin: 0;
104
+ padding: 0; }
105
+
106
+ dl {
107
+ margin-bottom: 0.75em; }
108
+ dl dt {
109
+ font-weight: 600;
110
+ margin-top: 0.75em; }
111
+ dl dd {
112
+ margin: 0; }
113
+
114
+ table {
115
+ border-collapse: collapse;
116
+ margin: 0.75em 0;
117
+ table-layout: fixed;
118
+ width: 100%; }
119
+
120
+ th {
121
+ border-bottom: 1px solid #a6a6a6;
122
+ font-weight: 600;
123
+ padding: 0.75em 0;
124
+ text-align: left; }
125
+
126
+ td {
127
+ border-bottom: 1px solid #ddd;
128
+ padding: 0.75em 0; }
129
+
130
+ tr,
131
+ td,
132
+ th {
133
+ vertical-align: middle; }
134
+
135
+ body {
136
+ color: #333;
137
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
138
+ font-size: 1em;
139
+ line-height: 1.5; }
140
+
141
+ h1,
142
+ h2,
143
+ h3,
144
+ h4,
145
+ h5,
146
+ h6 {
147
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
148
+ font-size: 1em;
149
+ line-height: 1.2;
150
+ margin: 0 0 0.75em; }
151
+
152
+ p {
153
+ margin: 0 0 0.75em; }
154
+
155
+ a {
156
+ color: #be1d77;
157
+ text-decoration: none;
158
+ transition: color 150ms ease; }
159
+ a:active, a:focus, a:hover {
160
+ color: #8f1659; }
161
+
162
+ hr {
163
+ border-bottom: 1px solid #ddd;
164
+ border-left: 0;
165
+ border-right: 0;
166
+ border-top: 0;
167
+ margin: 1.5em 0; }
168
+
169
+ img,
170
+ picture {
171
+ margin: 0;
172
+ max-width: 100%; }
173
+
174
+ html {
175
+ box-sizing: border-box; }
176
+
177
+ *, *::after, *::before {
178
+ box-sizing: inherit; }
179
+
180
+ body {
181
+ margin: 0; }
182
+
183
+ nav.Webrake {
184
+ background-color: #be1d77;
185
+ padding: 1.5em 2em 1.5em 1em; }
186
+ nav.Webrake h1 {
187
+ float: right;
188
+ font-size: 1em;
189
+ margin-bottom: 0;
190
+ color: #ddd; }
191
+ nav.Webrake h1 a {
192
+ color: #9edbf9; }
193
+ nav.Webrake::after {
194
+ content: "";
195
+ display: table;
196
+ clear: both; }
197
+
198
+ h2.Introduction {
199
+ font-size: 1.5em; }
200
+
201
+ section.Container {
202
+ max-width: 1200px;
203
+ margin-left: auto;
204
+ margin-right: auto;
205
+ margin: 2em 0; }
206
+ section.Container::after {
207
+ clear: both;
208
+ content: "";
209
+ display: block; }
210
+
211
+ div.Wrapper {
212
+ float: left;
213
+ display: block;
214
+ margin-right: 2.35765%;
215
+ width: 65.88078%;
216
+ margin-left: 17.05961%; }
217
+ div.Wrapper:last-child {
218
+ margin-right: 0; }
219
+
220
+ .Task {
221
+ max-width: 1200px;
222
+ margin-left: auto;
223
+ margin-right: auto;
224
+ margin-bottom: 1em; }
225
+ .Task::after {
226
+ clear: both;
227
+ content: "";
228
+ display: block; }
229
+
230
+ .Task:nth-child(even) {
231
+ background-color: #9edbf9; }
232
+
233
+ .Task_header {
234
+ width: 100%;
235
+ display: table;
236
+ width: 100%;
237
+ table-layout: fixed; }
238
+
239
+ .Task_name {
240
+ display: table-cell;
241
+ width: 33.33333%;
242
+ padding: 2.35765%; }
243
+
244
+ .Task_description {
245
+ display: table-cell;
246
+ width: 66.66667%;
247
+ padding: 2.35765%; }
248
+
249
+ .Task_actions fieldset legend {
250
+ font-size: 1.6em; }
251
+ .Task_actions fieldset .Task_action-input {
252
+ font-size: 1.5em; }
253
+
254
+ .Task_actions-button {
255
+ float: left;
256
+ display: block;
257
+ margin-right: 2.35765%;
258
+ width: 100%;
259
+ padding: 2.35765%; }
260
+ .Task_actions-button:last-child {
261
+ margin-right: 0; }
262
+
263
+ .Task_output {
264
+ overflow: scroll;
265
+ border-radius: 5px;
266
+ background-color: #333;
267
+ padding: 1em 2em;
268
+ color: #9edbf9; }
269
+ .Task_output xmp {
270
+ margin: 0;
271
+ padding: 0;
272
+ line-height: 0; }
273
+
274
+ .Task_output-contentError {
275
+ color: #e43431; }
276
+
277
+ /*# sourceMappingURL=application.css.map */