mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Add in TeXLive and imagemagick
This commit is contained in:
parent
5b6eaf546b
commit
e4be5b4feb
10 changed files with 153 additions and 3 deletions
1
server-ce/Vagrantfile
vendored
1
server-ce/Vagrantfile
vendored
|
@ -21,6 +21,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
chef.add_recipe 'redis-server'
|
chef.add_recipe 'redis-server'
|
||||||
chef.add_recipe 'mongodb'
|
chef.add_recipe 'mongodb'
|
||||||
chef.add_recipe 'nodejs'
|
chef.add_recipe 'nodejs'
|
||||||
|
chef.add_recipe 'texlive'
|
||||||
chef.add_recipe 'sharelatex'
|
chef.add_recipe 'sharelatex'
|
||||||
|
|
||||||
# You may also specify custom JSON attributes:
|
# You may also specify custom JSON attributes:
|
||||||
|
|
|
@ -5,3 +5,4 @@ license 'All rights reserved'
|
||||||
description 'Installs/Configures sharelatex'
|
description 'Installs/Configures sharelatex'
|
||||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||||
version '0.1.0'
|
version '0.1.0'
|
||||||
|
depends 'texlive'
|
||||||
|
|
|
@ -68,6 +68,11 @@ action :start do
|
||||||
notifies :restart, "service[#{r.name}]"
|
notifies :restart, "service[#{r.name}]"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
env = ""
|
||||||
|
r.environment.each do |key, value|
|
||||||
|
env += "#{key}=#{value} "
|
||||||
|
end
|
||||||
|
|
||||||
file "/etc/init/#{r.name}.conf" do
|
file "/etc/init/#{r.name}.conf" do
|
||||||
content <<-EOS
|
content <<-EOS
|
||||||
description "#{r.name}"
|
description "#{r.name}"
|
||||||
|
@ -83,9 +88,11 @@ action :start do
|
||||||
script
|
script
|
||||||
echo $$ > /var/run/#{r.name}.pid
|
echo $$ > /var/run/#{r.name}.pid
|
||||||
chdir #{deploy_to}/current
|
chdir #{deploy_to}/current
|
||||||
exec sudo -u #{r.user} env NODE_ENV=#{node_environment} SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee node app.js >> log/production.log
|
exec sudo -u #{r.user} env NODE_ENV=#{node_environment} SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee #{env} node app.js >> log/production.log 2>&1
|
||||||
end script
|
end script
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
|
notifies :restart, "service[#{r.name}]"
|
||||||
end
|
end
|
||||||
|
|
||||||
directory "/etc/sharelatex"
|
directory "/etc/sharelatex"
|
||||||
|
|
|
@ -5,9 +5,14 @@
|
||||||
# Copyright 2014, ShareLaTeX
|
# Copyright 2014, ShareLaTeX
|
||||||
#
|
#
|
||||||
|
|
||||||
for dir in ["compiles", "clsi-cache", "user_files"] do
|
# For filestore conversions
|
||||||
|
package "imagemagick"
|
||||||
|
package "optipng"
|
||||||
|
|
||||||
|
for dir in ["", "compiles", "clsi-cache", "user_files"] do
|
||||||
directory "/var/lib/sharelatex/#{dir}" do
|
directory "/var/lib/sharelatex/#{dir}" do
|
||||||
user "www-data"
|
user "www-data"
|
||||||
|
group "www-data"
|
||||||
recursive true
|
recursive true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -35,5 +40,8 @@ end
|
||||||
sharelatex_app "clsi-sharelatex" do
|
sharelatex_app "clsi-sharelatex" do
|
||||||
repository "https://github.com/sharelatex/clsi-sharelatex.git"
|
repository "https://github.com/sharelatex/clsi-sharelatex.git"
|
||||||
revision "master"
|
revision "master"
|
||||||
|
environment({
|
||||||
|
"PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:#{node[:texlive][:bin_dir]}"
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ actions :start
|
||||||
attribute :revision, :kind_of => String, :default => "master"
|
attribute :revision, :kind_of => String, :default => "master"
|
||||||
attribute :repository, :kind_of => String
|
attribute :repository, :kind_of => String
|
||||||
attribute :user, :kind_of => String, :default => "www-data"
|
attribute :user, :kind_of => String, :default => "www-data"
|
||||||
|
attribute :group, :kind_of => String, :default => "www-data"
|
||||||
|
attribute :environment, :kind_of => Hash, :default => {}
|
||||||
|
|
||||||
def initialize(*args)
|
def initialize(*args)
|
||||||
super
|
super
|
||||||
|
|
12
server-ce/chef/cookbooks/texlive/CHANGELOG.md
Normal file
12
server-ce/chef/cookbooks/texlive/CHANGELOG.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# CHANGELOG for latex
|
||||||
|
|
||||||
|
This file is used to list changes made in each version of latex.
|
||||||
|
|
||||||
|
## 0.1.0:
|
||||||
|
|
||||||
|
* Initial release of latex
|
||||||
|
|
||||||
|
- - -
|
||||||
|
Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
|
||||||
|
|
||||||
|
The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
|
68
server-ce/chef/cookbooks/texlive/README.md
Normal file
68
server-ce/chef/cookbooks/texlive/README.md
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
latex Cookbook
|
||||||
|
==============
|
||||||
|
TODO: Enter the cookbook description here.
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
This cookbook makes your favorite breakfast sandwhich.
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc.
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
#### packages
|
||||||
|
- `toaster` - latex needs toaster to brown your bagel.
|
||||||
|
|
||||||
|
Attributes
|
||||||
|
----------
|
||||||
|
TODO: List you cookbook attributes here.
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
#### latex::default
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Key</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th>Default</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><tt>['latex']['bacon']</tt></td>
|
||||||
|
<td>Boolean</td>
|
||||||
|
<td>whether to include bacon</td>
|
||||||
|
<td><tt>true</tt></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
#### latex::default
|
||||||
|
TODO: Write usage instructions for each cookbook.
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
Just include `latex` in your node's `run_list`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name":"my_node",
|
||||||
|
"run_list": [
|
||||||
|
"recipe[latex]"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Contributing
|
||||||
|
------------
|
||||||
|
TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section.
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
1. Fork the repository on Github
|
||||||
|
2. Create a named feature branch (like `add_component_x`)
|
||||||
|
3. Write you change
|
||||||
|
4. Write tests for your change (if applicable)
|
||||||
|
5. Run the tests, ensuring they all pass
|
||||||
|
6. Submit a Pull Request using Github
|
||||||
|
|
||||||
|
License and Authors
|
||||||
|
-------------------
|
||||||
|
Authors: TODO: List authors
|
2
server-ce/chef/cookbooks/texlive/attributes/default.rb
Normal file
2
server-ce/chef/cookbooks/texlive/attributes/default.rb
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
default[:texlive][:schema] = "small"
|
||||||
|
default[:texlive][:bin_dir] = "/usr/local/texlive/2013/bin/x86_64-linux"
|
7
server-ce/chef/cookbooks/texlive/metadata.rb
Normal file
7
server-ce/chef/cookbooks/texlive/metadata.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
name 'texlive'
|
||||||
|
maintainer 'ShareLaTeX'
|
||||||
|
maintainer_email 'team@sharelatex.com'
|
||||||
|
license 'All rights reserved'
|
||||||
|
description 'Installs/Configures texlive'
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||||
|
version '0.1.0'
|
42
server-ce/chef/cookbooks/texlive/recipes/default.rb
Normal file
42
server-ce/chef/cookbooks/texlive/recipes/default.rb
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#
|
||||||
|
# Cookbook Name:: texlive
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# Copyright 2014, YOUR_COMPANY_NAME
|
||||||
|
#
|
||||||
|
# All rights reserved - Do Not Redistribute
|
||||||
|
#
|
||||||
|
|
||||||
|
remote_file "#{Chef::Config[:file_cache_path]}/install-tl-unx.tar.gz" do
|
||||||
|
source "http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz"
|
||||||
|
action :create_if_missing
|
||||||
|
end
|
||||||
|
|
||||||
|
directory "/install-tl-unx"
|
||||||
|
bash "extract install-tl" do
|
||||||
|
cwd Chef::Config[:file_cache_path]
|
||||||
|
code <<-EOH
|
||||||
|
tar -xvf install-tl-unx.tar.gz -C /install-tl-unx --strip-components=1
|
||||||
|
EOH
|
||||||
|
creates "/install-tl-unx/install-tl"
|
||||||
|
end
|
||||||
|
|
||||||
|
file "/install-tl-unx/texlive.profile" do
|
||||||
|
content "selected_scheme scheme-#{node[:texlive][:schema]}"
|
||||||
|
end
|
||||||
|
|
||||||
|
bash "install texlive" do
|
||||||
|
cwd "/install-tl-unx"
|
||||||
|
code <<-EOH
|
||||||
|
/install-tl-unx/install-tl -profile /install-tl-unx/texlive.profile
|
||||||
|
EOH
|
||||||
|
creates "#{node[:texlive][:bin_dir]}/pdflatex"
|
||||||
|
end
|
||||||
|
|
||||||
|
bash "install latexmk" do
|
||||||
|
environment({
|
||||||
|
"PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:#{node[:texlive][:bin_dir]}"
|
||||||
|
})
|
||||||
|
code "tlmgr install latexmk"
|
||||||
|
creates "#{node[:texlive][:bin_dir]}/latexmk"
|
||||||
|
end
|
Loading…
Reference in a new issue