mirror of
https://github.com/servo/servo.git
synced 2025-06-21 15:49:04 +01:00
Have 'mach doc' copy Rust documentation.
This commit is contained in:
parent
873ca6cadd
commit
d25c66904e
2 changed files with 33 additions and 18 deletions
|
@ -8,14 +8,9 @@ set -e
|
|||
|
||||
cd "$(dirname $0)/../.."
|
||||
|
||||
mkdir -p components/servo/target/doc
|
||||
./mach bootstrap-rust
|
||||
# Ordered so that:
|
||||
# * etc/doc.servo.org/index.html overwrites $(mach rust-root)/doc/index.html
|
||||
# * ./mach doc overwrites $(mach rust-root)/doc/search-index.js
|
||||
cp -R $(./mach rust-root)/doc/* components/servo/target/doc/
|
||||
cp etc/doc.servo.org/* components/servo/target/doc/
|
||||
./mach doc
|
||||
# etc/doc.servo.org/index.html overwrites $(mach rust-root)/doc/index.html
|
||||
cp etc/doc.servo.org/* components/servo/target/doc/
|
||||
|
||||
ghp-import -n components/servo/target/doc
|
||||
git push -qf https://${TOKEN}@github.com/servo/doc.servo.org.git gh-pages
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
from __future__ import print_function, unicode_literals
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import os.path as path
|
||||
from os import chdir
|
||||
import subprocess
|
||||
import SimpleHTTPServer
|
||||
import SocketServer
|
||||
import mozdebug
|
||||
from shutil import copytree, rmtree, ignore_patterns
|
||||
from shutil import copytree, rmtree, ignore_patterns, copy2
|
||||
|
||||
from mach.decorators import (
|
||||
CommandArgument,
|
||||
|
@ -18,6 +19,13 @@ from mach.decorators import (
|
|||
from servo.command_base import CommandBase
|
||||
|
||||
|
||||
def read_file(filename, if_exists=False):
|
||||
if if_exists and not path.exists(filename):
|
||||
return None
|
||||
with open(filename) as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
@CommandProvider
|
||||
class MachCommands(CommandBase):
|
||||
@Command('run',
|
||||
|
@ -70,6 +78,27 @@ class MachCommands(CommandBase):
|
|||
help="Command-line arguments to be passed through to cargo doc")
|
||||
def doc(self, params):
|
||||
self.ensure_bootstrapped()
|
||||
|
||||
rust_docs = path.join(self.config["tools"]["rust-root"], "doc")
|
||||
docs = path.join("components", "servo", "target", "doc")
|
||||
if not path.exists(docs):
|
||||
os.mkdir(docs)
|
||||
|
||||
if read_file(path.join(docs, "version_info.html"), if_exists=True) != \
|
||||
read_file(path.join(rust_docs, "version_info.html")):
|
||||
print("Copying Rust documentation.")
|
||||
# copytree doesn't like the destination already existing.
|
||||
for name in os.listdir(rust_docs):
|
||||
if not name.startswith('.'):
|
||||
full_name = path.join(rust_docs, name)
|
||||
destination = path.join(docs, name)
|
||||
if path.isdir(full_name):
|
||||
if path.exists(destination):
|
||||
rmtree(destination)
|
||||
copytree(full_name, destination)
|
||||
else:
|
||||
copy2(full_name, destination)
|
||||
|
||||
return subprocess.call(["cargo", "doc"] + params,
|
||||
env=self.build_env(), cwd=self.servo_crate())
|
||||
|
||||
|
@ -81,16 +110,7 @@ class MachCommands(CommandBase):
|
|||
help="Port to serve documentation at (default is 8888)")
|
||||
def serve_docs(self, port):
|
||||
self.doc([])
|
||||
servedir = path.join("components", "servo", "target", "serve-docs")
|
||||
docdir = path.join("components", "servo", "target", "doc")
|
||||
|
||||
rmtree(servedir, True)
|
||||
copytree(docdir, servedir, ignore=ignore_patterns('.*'))
|
||||
|
||||
rustdocs = path.join(self.config["tools"]["rust-root"], "doc")
|
||||
copytree(rustdocs, path.join(servedir, "rust"), ignore=ignore_patterns('.*'))
|
||||
|
||||
chdir(servedir)
|
||||
chdir(path.join("components", "servo", "target", "doc"))
|
||||
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
|
||||
|
||||
httpd = SocketServer.TCPServer(("", port), Handler)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue