Prepare for migration into spec.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
18
.gitea/workflows/compile.yaml
Normal file
18
.gitea/workflows/compile.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: Compile Project
|
||||||
|
run-name: Compile the project using spec.
|
||||||
|
on: [push]
|
||||||
|
jobs:
|
||||||
|
Compile:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Add to PATH
|
||||||
|
run: echo "/root/.nvm/versions/node/v24.14.0/bin" >> $GITHUB_PATH
|
||||||
|
- name: Copy source
|
||||||
|
run: |
|
||||||
|
mkdir -p /srv/builds/${{ github.event.repository.name }}
|
||||||
|
cp -r . /srv/builds/${{ github.event.repository.name }}/
|
||||||
|
- name: Compile Website
|
||||||
|
run: spec compile --all
|
||||||
|
working-directory: /srv/builds/${{ github.event.repository.name }}
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"context": "Editor",
|
|
||||||
"bindings": {
|
|
||||||
"ctrl-s": [
|
|
||||||
"workspace::Save",
|
|
||||||
["task::Spawn", { "task_name": "Build and Serve" }],
|
|
||||||
],
|
|
||||||
"ctrl-b": "editor::MoveLeft",
|
|
||||||
"ctrl-i": [
|
|
||||||
"editor::InsertSnippet",
|
|
||||||
{
|
|
||||||
"snippet": "\\textit{$1}$0",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
// Folder-specific settings
|
|
||||||
//
|
|
||||||
// For a full list of overridable settings, and general information on folder-specific settings,
|
|
||||||
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
|
|
||||||
{
|
|
||||||
"lsp": {
|
|
||||||
"texlab": {
|
|
||||||
"settings": {
|
|
||||||
"texlab": {
|
|
||||||
"rootDirectory": ".",
|
|
||||||
"build": {
|
|
||||||
"auxDirectory": ".",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"languages": {
|
|
||||||
"HTML": {
|
|
||||||
"format_on_save": "off",
|
|
||||||
},
|
|
||||||
"Python": {
|
|
||||||
"format_on_save": "off",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"soft_wrap": "preferred_line_length",
|
|
||||||
"preferred_line_length": 80,
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"label": "Build and Serve",
|
|
||||||
"command": "wsl",
|
|
||||||
"args": ["bash", "build-serve.sh"],
|
|
||||||
"cwd": "${ZED_WORKTREE_ROOT}",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Upload to Server",
|
|
||||||
"command": "wsl",
|
|
||||||
"args": ["bash", "upload.sh"],
|
|
||||||
"cwd": "${ZED_WORKTREE_ROOT}",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
10
README.md
10
README.md
@@ -1,10 +0,0 @@
|
|||||||
[](https://github.com/gerby-project/hello-world/actions/workflows/example.yml)
|
|
||||||
|
|
||||||
This repository documents a minimal working example for using Gerby.
|
|
||||||
|
|
||||||
There are two things one can look at
|
|
||||||
|
|
||||||
* the plasTeX-only check, see `.github/workflows/example.yml` (which is checked by the badge)
|
|
||||||
* a full example using the now discontinued Travis, see `.travis.yml`.
|
|
||||||
|
|
||||||
For more information, see [Gerby project](https://gerby-project.github.io).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
pgrep -f build.sh > /dev/null || ./build.sh
|
|
||||||
pgrep -f serve.sh > /dev/null || ./serve.sh &
|
|
||||||
131
build.groovy
131
build.groovy
@@ -1,131 +0,0 @@
|
|||||||
def projectRoot = '/home/gerby/gerby'
|
|
||||||
|
|
||||||
def vGPython = "${projectRoot}/gerby-venv/bin/python"
|
|
||||||
def vGPip = "${projectRoot}/gerby-venv/bin/pip"
|
|
||||||
|
|
||||||
def vPPython = "${projectRoot}/plastex-venv/bin/python"
|
|
||||||
def vPPip = "${projectRoot}/plastex-venv/bin/pip"
|
|
||||||
|
|
||||||
def vPlastex = "${projectRoot}/plastex-venv/bin/plastex"
|
|
||||||
|
|
||||||
def discordHook = "https://discord.com/api/webhooks/1456391390513856676/yniOv0Gbxp2UwW1pbZcekpXsC8y1dYppGQ90O7He-df24IODggrgXdMFwvz-RMWM15j8"
|
|
||||||
|
|
||||||
pipeline {
|
|
||||||
agent any
|
|
||||||
|
|
||||||
stages {
|
|
||||||
stage('Create Links') {
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/gerby-website/gerby/tools/") {
|
|
||||||
sh 'rm ./document || true'
|
|
||||||
sh 'rm ./document.paux || true'
|
|
||||||
sh 'rm ./tags || true'
|
|
||||||
sh 'ln -s ../../../document document'
|
|
||||||
sh 'ln -s ../../../document.paux document.paux'
|
|
||||||
sh 'ln -s ../../../tags tags'
|
|
||||||
}
|
|
||||||
dir("${projectRoot}/gerby-website/") {
|
|
||||||
sh 'rm ./hello-world.sqlite || true'
|
|
||||||
sh 'rm ./comments.sqlite || true'
|
|
||||||
sh 'ln -s gerby/tools/hello-world.sqlite hello-world.sqlite'
|
|
||||||
sh 'ln -s gerby/tools/comments.sqlite comments.sqlite'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Bibliography') {
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/") {
|
|
||||||
sh 'pdflatex -interaction=nonstopmode document.tex || true'
|
|
||||||
sh 'bibtex document || true'
|
|
||||||
sh 'pdflatex -interaction=nonstopmode document.tex || true'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Delete Tags') {
|
|
||||||
when {
|
|
||||||
expression { params['Redo Tags'] == true }
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/") {
|
|
||||||
sh 'rm ./tags || true'
|
|
||||||
sh 'rm ./gerby-website/gerby/tools/hello-world.sqlite || true'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// The document folder is needed for the website to run, hence it is not cleared at the end of the compile process.
|
|
||||||
stage('Delete Previous Build') {
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/") {
|
|
||||||
sh "rm -r ./document"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Tag') {
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/") {
|
|
||||||
sh "${vGPython} tagger.py >> tags"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Plastex') {
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/") {
|
|
||||||
sh "${vPlastex} --renderer=Gerby ./document.tex"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Update Database') {
|
|
||||||
steps {
|
|
||||||
dir("${projectRoot}/gerby-website/gerby/tools") {
|
|
||||||
sh "${vGPython} update.py"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
post {
|
|
||||||
always {
|
|
||||||
dir("${projectRoot}/") {
|
|
||||||
sh 'rm document.aux || true'
|
|
||||||
sh 'rm document.bbl || true'
|
|
||||||
sh 'rm document.blg || true'
|
|
||||||
sh 'rm document.log || true'
|
|
||||||
sh 'rm document.out || true'
|
|
||||||
sh 'rm document.pdf || true'
|
|
||||||
}
|
|
||||||
script {
|
|
||||||
def formatTime = { milliseconds ->
|
|
||||||
long seconds = (long)(milliseconds / 1000)
|
|
||||||
long mins = (long)(seconds / 60)
|
|
||||||
long secs = seconds % 60
|
|
||||||
return mins > 0 ? "${mins}m${secs}s" : "${secs}s"
|
|
||||||
}
|
|
||||||
|
|
||||||
def buildTitle = "Build Website #${env.BUILD_NUMBER}"
|
|
||||||
if (params['Redo Tags']) {
|
|
||||||
buildTitle += " (Retag)"
|
|
||||||
}
|
|
||||||
|
|
||||||
def queueTimeMs = currentBuild.startTimeInMillis - currentBuild.timeInMillis
|
|
||||||
def queueTime = formatTime(queueTimeMs)
|
|
||||||
def buildTime = formatTime(currentBuild.duration)
|
|
||||||
|
|
||||||
def description = """
|
|
||||||
**Build:** [#${env.BUILD_NUMBER}](${env.BUILD_URL})
|
|
||||||
**Console:** [Console Output](${env.BUILD_URL}console)
|
|
||||||
|
|
||||||
**Queue Time:** ${queueTime}
|
|
||||||
**Build Duration:** ${buildTime}
|
|
||||||
**Status:** ${currentBuild.currentResult}
|
|
||||||
""".trim()
|
|
||||||
|
|
||||||
discordSend(
|
|
||||||
webhookURL: discordHook,
|
|
||||||
title: buildTitle,
|
|
||||||
description: description,
|
|
||||||
result: currentBuild.currentResult
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
22
build.sh
22
build.sh
@@ -1,22 +0,0 @@
|
|||||||
rm -r ./document
|
|
||||||
|
|
||||||
# Make the bibliography. Errors here don't matter.
|
|
||||||
pdflatex -interaction=nonstopmode document.tex > /dev/null 2>&1
|
|
||||||
bibtex document > /dev/null 2>&1
|
|
||||||
pdflatex -interaction=nonstopmode document.tex > /dev/null 2>&1
|
|
||||||
|
|
||||||
|
|
||||||
# Website compilation procedure
|
|
||||||
python3 tagger.py >> tags
|
|
||||||
./plastex-venv/bin/plastex --renderer=Gerby ./document.tex
|
|
||||||
cd ./gerby-website/gerby/tools
|
|
||||||
python3 update.py
|
|
||||||
cd ../../..
|
|
||||||
|
|
||||||
# Clean up the tex compilations.
|
|
||||||
rm document.aux > /dev/null 2>&1
|
|
||||||
rm document.bbl > /dev/null 2>&1
|
|
||||||
rm document.blg > /dev/null 2>&1
|
|
||||||
rm document.log > /dev/null 2>&1
|
|
||||||
rm document.out > /dev/null 2>&1
|
|
||||||
rm document.pdf > /dev/null 2>&1
|
|
||||||
15
gerby.code-workspace
Normal file
15
gerby.code-workspace
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"VsCodeTaskButtons.tasks": [
|
||||||
|
{
|
||||||
|
"label": "Watch",
|
||||||
|
"task": "Watch"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
5
retag.sh
5
retag.sh
@@ -1,5 +0,0 @@
|
|||||||
# Rebuilds the tag system. Requires administrative access.
|
|
||||||
|
|
||||||
rm ./tags
|
|
||||||
rm ./gerby-website/gerby/tools/hello-world.sqlite
|
|
||||||
./build.sh
|
|
||||||
@@ -12,3 +12,5 @@ font = "roboto"
|
|||||||
primaryColour = "blue"
|
primaryColour = "blue"
|
||||||
neutralColour = "grey"
|
neutralColour = "grey"
|
||||||
searchLimit = 16
|
searchLimit = 16
|
||||||
|
maxSearchPages = 48
|
||||||
|
advertiseSpec = true
|
||||||
|
|||||||
@@ -1,49 +1,49 @@
|
|||||||
\section{Derivatives and Remainders}
|
\section{Derivatives and Remainders}
|
||||||
\label{section:derivative}
|
\label{section:derivative}
|
||||||
|
|
||||||
\begin{definition}[Derivatives and Remainders]
|
\begin{definition}[Derivatives and Remainders]
|
||||||
\label{definition:derivative-system}
|
\label{definition:derivative-system}
|
||||||
Let $E, F$ be TVSs over $K \in \RC$ and $\ch(E; F), \calr(E; F) \subset F^E$ be vector subspaces, then $\mathcal{HR} = (\ch(E; F), \calr(E; F))$ is a pair of \textbf{derivatives} and \textbf{remainders} if
|
Let $E, F$ be TVSs over $K \in \RC$ and $\ch(E; F), \calr(E; F) \subset F^E$ be vector subspaces, then $\mathcal{HR} = (\ch(E; F), \calr(E; F))$ is a pair of \textbf{derivatives} and \textbf{remainders} if
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item[(T)] For any $T \in \ch$, if there exists $V \in \cn_E(0)$ and $r \in \calr$ such that $T|_V = r|_V$, then $T = 0$.
|
\item[(T)] For any $T \in \ch$, if there exists $V \in \cn_E(0)$ and $r \in \calr$ such that $T|_V = r|_V$, then $T = 0$.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{definition}
|
\end{definition}
|
||||||
|
|
||||||
\begin{definition}[$\mathcal{HR}$-Differentiability]
|
\begin{definition}[$\mathcal{HR}$-Differentiability]
|
||||||
\label{definition:space-differentiability}
|
\label{definition:space-differentiability}
|
||||||
Let $E, F$ be TVSs over $K \in \RC$, $\mathcal{HR}$ be a pair of derivatives and remainders, $U \subset E$ be open, $f: U \to F$ be a function, and $x_0 \in U$, then $f$ is \textbf{$\mathcal{HR}$-differentiable} at $x_0$ if there exists $V \in \cn_E(0)$, $T \in \ch$, and $r \in \calr$ such that
|
Let $E, F$ be TVSs over $K \in \RC$, $\mathcal{HR}$ be a pair of derivatives and remainders, $U \subset E$ be open, $f: U \to F$ be a function, and $x_0 \in U$, then $f$ is \textbf{$\mathcal{HR}$-differentiable} at $x_0$ if there exists $V \in \cn_E(0)$, $T \in \ch$, and $r \in \calr$ such that
|
||||||
\[
|
\[
|
||||||
f(x_0 + h) = f(x_0) + Th + r(h)
|
f(x_0 + h) = f(x_0) + Th + r(h)
|
||||||
\]
|
\]
|
||||||
|
|
||||||
for all $h \in V$. In which case, $T = D_{\mathcal{HR}}f(x_0)$ is the unique element of $\ch$ satisfying the above, known as the \textbf{$\mathcal{HR}$-derivative} of $f$ at $x_0$.
|
for all $h \in V$. In which case, $T = D_{\mathcal{HR}}f(x_0)$ is the unique element of $\ch$ satisfying the above, known as the \textbf{$\mathcal{HR}$-derivative} of $f$ at $x_0$.
|
||||||
\end{definition}
|
\end{definition}
|
||||||
\begin{proof}
|
\begin{proof}
|
||||||
Let $S, T \in \ch$, $r, s \in \calr$, and $V \in \cn_E(0)$ such that
|
Let $S, T \in \ch$, $r, s \in \calr$, and $V \in \cn_E(0)$ such that
|
||||||
\[
|
\[
|
||||||
f(x_0 + h) - f(x_0) = Sh + r(h) = Th + s(h)
|
f(x_0 + h) - f(x_0) = Sh + r(h) = Th + s(h)
|
||||||
\]
|
\]
|
||||||
|
|
||||||
for all $h \in V$, then $(S - T)(h) = (s - r)(h)$. By (T), $S - T = 0$. Hence $S = T$.
|
for all $h \in V$, then $(S - T)(h) = (s - r)(h)$. By (T), $S - T = 0$. Hence $S = T$.
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
\begin{proposition}
|
\begin{proposition}
|
||||||
\label{proposition:derivative-linearity}
|
\label{proposition:derivative-linearity}
|
||||||
Let $E, F$ be TVSs over $K \in \RC$, $\mathcal{HR}$ be a pair of derivatives and remainders, $U \subset E$ be open, $f, g: U \to F$ be functions, and $x_0 \in U$. If $f, g$ are $\mathcal{HR}$-differentiable at $x_0$, then for any $\lambda \in K$, $\lambda f + g$ is $\mathcal{HR}$-differentiable at $x_0$, and
|
Let $E, F$ be TVSs over $K \in \RC$, $\mathcal{HR}$ be a pair of derivatives and remainders, $U \subset E$ be open, $f, g: U \to F$ be functions, and $x_0 \in U$. If $f, g$ are $\mathcal{HR}$-differentiable at $x_0$, then for any $\lambda \in K$, $\lambda f + g$ is $\mathcal{HR}$-differentiable at $x_0$, and
|
||||||
\[
|
\[
|
||||||
D_{\mathcal{HR}}(\lambda f + g)(x_0) = \lambda D_{\mathcal{HR}}f(x_0) + D_{\mathcal{HR}}g(x_0)
|
D_{\mathcal{HR}}(\lambda f + g)(x_0) = \lambda D_{\mathcal{HR}}f(x_0) + D_{\mathcal{HR}}g(x_0)
|
||||||
\]
|
\]
|
||||||
|
|
||||||
\end{proposition}
|
\end{proposition}
|
||||||
\begin{proof}
|
\begin{proof}
|
||||||
Let $V \in \cn_E(0)$ and $r, s \in \calr$ such that
|
Let $V \in \cn_E(0)$ and $r, s \in \calr$ such that
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
f(x_0 + h) - f(x_0) &= D_{\mathcal{HR}}f(x_0)h + r(h) \\
|
f(x_0 + h) - f(x_0) &= D_{\mathcal{HR}}f(x_0)h + r(h) \\
|
||||||
g(x_0 + h) - f(x_0) &= D_{\mathcal{HR}}g(x_0)h + s(h)
|
g(x_0 + h) - f(x_0) &= D_{\mathcal{HR}}g(x_0)h + s(h)
|
||||||
\end{align*}
|
\end{align*}
|
||||||
then
|
then
|
||||||
\[
|
\[
|
||||||
(\lambda f + g)(x_0+h) - (\lambda f + g)(x_0) = \underbrace{[\lambda D_{\mathcal{HR}}f(x_0) + D_{\mathcal{HR}}g(x_0)]}_{\in \ch}h + \underbrace{(\lambda r + s)}_{\in \calr}(h)
|
(\lambda f + g)(x_0+h) - (\lambda f + g)(x_0) = \underbrace{[\lambda D_{\mathcal{HR}}f(x_0) + D_{\mathcal{HR}}g(x_0)]}_{\in \ch}h + \underbrace{(\lambda r + s)}_{\in \calr}(h)
|
||||||
\]
|
\]
|
||||||
|
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|||||||
73
tagger.py
73
tagger.py
@@ -1,73 +0,0 @@
|
|||||||
import glob
|
|
||||||
import re
|
|
||||||
|
|
||||||
# no I, no O
|
|
||||||
CHARACTERS = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"
|
|
||||||
|
|
||||||
|
|
||||||
# convert integer to tag
|
|
||||||
def tobase(i):
|
|
||||||
global CHARACTERS
|
|
||||||
|
|
||||||
assert i >= 0
|
|
||||||
|
|
||||||
if i < len(CHARACTERS):
|
|
||||||
return CHARACTERS[i]
|
|
||||||
else:
|
|
||||||
return tobase(i // len(CHARACTERS)) + CHARACTERS[i % len(CHARACTERS)]
|
|
||||||
|
|
||||||
|
|
||||||
def totag(i):
|
|
||||||
return tobase(i).rjust(4, "0")
|
|
||||||
|
|
||||||
|
|
||||||
# convert tag to integer
|
|
||||||
def toint(tag):
|
|
||||||
global CHARACTERS
|
|
||||||
return sum(
|
|
||||||
[CHARACTERS.index(tag[i]) * len(CHARACTERS) ** (4 - i - 1) for i in range(4)]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
tags = dict()
|
|
||||||
labels = dict()
|
|
||||||
inactive = []
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open("tags") as f:
|
|
||||||
for line in f:
|
|
||||||
# actual tag
|
|
||||||
if not line.startswith("#"):
|
|
||||||
tags[line.split(",")[0]] = line.strip().split(",")[1]
|
|
||||||
labels[line.strip().split(",")[1]] = line.strip().split(",")[0]
|
|
||||||
|
|
||||||
# check for inactive tags too
|
|
||||||
elif len(line.split(",")) == 2 and len(line.split(",")[0]) == 4:
|
|
||||||
inactive.append(line.split(",")[0])
|
|
||||||
|
|
||||||
except FileNotFoundError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# determine last assigned tag
|
|
||||||
try:
|
|
||||||
last = toint(sorted(list(tags.keys()) + inactive)[-1])
|
|
||||||
except IndexError:
|
|
||||||
last = -1
|
|
||||||
|
|
||||||
|
|
||||||
filenames = glob.glob("./src/**/*.tex", recursive=True) + ["document.tex"]
|
|
||||||
# filenames = ["document.tex"]
|
|
||||||
|
|
||||||
# where we should start
|
|
||||||
i = last + 1
|
|
||||||
|
|
||||||
for filename in filenames:
|
|
||||||
with open(filename) as f:
|
|
||||||
# do this line per line to deal with comments
|
|
||||||
for line in f:
|
|
||||||
matches = re.findall("\\\\label{([^}]+)}", line.split("%")[0])
|
|
||||||
for label in matches:
|
|
||||||
if not label in labels:
|
|
||||||
tag = tobase(i).rjust(4, "0")
|
|
||||||
print("%s,%s" % (tag, label))
|
|
||||||
i = i + 1
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
ssh gerby@178.156.199.217 "rm -r /home/gerby/gerby/gerby-website"
|
|
||||||
ssh gerby@178.156.199.217 "rm -r /home/gerby/gerby/plastex"
|
|
||||||
|
|
||||||
rsync -avz gerby-website plastex gerby@178.156.199.217:/home/gerby/gerby
|
|
||||||
11
upload.sh
11
upload.sh
@@ -1,11 +0,0 @@
|
|||||||
ssh gerby@178.156.199.217 "rm /home/gerby/gerby/document.tex"
|
|
||||||
ssh gerby@178.156.199.217 "rm /home/gerby/gerby/preamble.sty"
|
|
||||||
ssh gerby@178.156.199.217 "rm -r /home/gerby/gerby/src"
|
|
||||||
rsync -avz preamble.sty document.tex src gerby@178.156.199.217:/home/gerby/gerby
|
|
||||||
|
|
||||||
USER="jerrylicious"
|
|
||||||
API_TOKEN="1199813d21c0022313bd9e7c8fa98d47b0"
|
|
||||||
BUILD_TOKEN="AAAAC3NzaC1lZDI1NTE5AAAAIBlYjedLVBgIxxutWbnFm0bgs87jswTfhgOfGaPzzqTZ"
|
|
||||||
|
|
||||||
CRUMB=$(curl -s "https://$USER:$API_TOKEN@jenkins.jerrylicious.me/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\" ,//crumb)")
|
|
||||||
curl -X POST -H "$CRUMB" "https://$USER:$API_TOKEN@jenkins.jerrylicious.me/job/Gerby/job/Build%20Project/buildWithParameters?token=$BUILD_TOKEN&Redo%20Tags=false"
|
|
||||||
Reference in New Issue
Block a user