Compare commits
No commits in common. "f0cb191971119bb23187140c66e1291dabbb3412" and "102547d57bbbacc04517ab881ed9f2574b1b16c1" have entirely different histories.
f0cb191971
...
102547d57b
274 changed files with 605 additions and 466 deletions
162
build.py
162
build.py
|
|
@ -5,7 +5,6 @@ from json import dump, loads
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from ruamel.yaml import YAML
|
from ruamel.yaml import YAML
|
||||||
from ansi2html import Ansi2HTMLConverter
|
from ansi2html import Ansi2HTMLConverter
|
||||||
from bs4 import BeautifulSoup
|
|
||||||
|
|
||||||
from rougail import Rougail
|
from rougail import Rougail
|
||||||
from rougail.config import get_rougail_config
|
from rougail.config import get_rougail_config
|
||||||
|
|
@ -14,12 +13,11 @@ from rougail.user_data_yaml import RougailUserDataYaml
|
||||||
from rougail.output_doc import RougailOutputDoc
|
from rougail.output_doc import RougailOutputDoc
|
||||||
|
|
||||||
|
|
||||||
|
PREVIOUS = Path("previous.yml")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
builder_dir = sys.argv[1]
|
commit_id = sys.argv[1]
|
||||||
previous = Path(builder_dir) / "previous.yml"
|
|
||||||
with Path("install.txt").open() as fh:
|
|
||||||
cmd = fh.read()
|
|
||||||
commit_id = sys.argv[2]
|
|
||||||
# rougailconfig = RougailConfig.copy()
|
# rougailconfig = RougailConfig.copy()
|
||||||
rougailconfig = get_rougail_config(backward_compatibility=False, add_extra_options=False)
|
rougailconfig = get_rougail_config(backward_compatibility=False, add_extra_options=False)
|
||||||
rougailconfig['main_structural_directories'] = ['firefox']
|
rougailconfig['main_structural_directories'] = ['firefox']
|
||||||
|
|
@ -41,10 +39,10 @@ if __name__ == "__main__":
|
||||||
has_mode = True
|
has_mode = True
|
||||||
else:
|
else:
|
||||||
has_mode = False
|
has_mode = False
|
||||||
rougailconfig['step.output'] = 'doc'
|
|
||||||
rougail = Rougail(rougailconfig)
|
rougail = Rougail(rougailconfig)
|
||||||
config = rougail.run()
|
config = rougail.run()
|
||||||
# print(config.value.get())
|
# print(config.value.get())
|
||||||
|
rougailconfig['step.output'] = 'doc'
|
||||||
rougailconfig['doc.output_format'] = 'github'
|
rougailconfig['doc.output_format'] = 'github'
|
||||||
rougailconfig['doc.title_level'] = 3
|
rougailconfig['doc.title_level'] = 3
|
||||||
inventory = RougailOutputDoc(config, rougailconfig=rougailconfig.copy())
|
inventory = RougailOutputDoc(config, rougailconfig=rougailconfig.copy())
|
||||||
|
|
@ -59,81 +57,70 @@ if __name__ == "__main__":
|
||||||
doc = ''
|
doc = ''
|
||||||
yaml = YAML()
|
yaml = YAML()
|
||||||
namespace = 'firefox'
|
namespace = 'firefox'
|
||||||
|
file_found = False
|
||||||
if rougailconfig['main_namespace']:
|
if rougailconfig['main_namespace']:
|
||||||
dirname = "foxyproxy"
|
all_dirs = [[rougailconfig['main_structural_directories']], [['foxyproxy']]]
|
||||||
else:
|
else:
|
||||||
dirname = "firefox"
|
all_dirs = [[rougailconfig['main_structural_directories']]]
|
||||||
|
|
||||||
doc += inv_formatter.title('Screenshot', 2) + '\n'
|
doc += inv_formatter.title('Screenshot', 2) + '\n'
|
||||||
doc += f'<img src="{namespace}.png" width=50% height=50% alt="{namespace.capitalize()} Proxy setting"/>\n\n'
|
doc += f'<img src="{namespace}.png" width=50% height=50% alt="{namespace.capitalize()} Proxy setting"/>\n\n'
|
||||||
# with doc_file.open('r') as docfh:
|
# with doc_file.open('r') as docfh:
|
||||||
# doc += docfh.read()
|
# doc += docfh.read()
|
||||||
doc += '\n' + inv_formatter.title('Clone and install', 2) + '\n\n'
|
doc += '\n' + inv_formatter.title('Structure', 2) + '\n'
|
||||||
doc += "To test this tutorial, you need to download this repository and install Rougail:\n\n"
|
print(all_dirs)
|
||||||
doc += f'```shell\n{cmd}```\n\n'
|
for r in all_dirs:
|
||||||
doc += "Then switch to the tutorial page:\n\n"
|
for dirs in r:
|
||||||
doc += f"```shell\ngit switch --detach {commit_id}\n```\n"
|
for d in dirs:
|
||||||
tree = Path('tree.html')
|
print(d)
|
||||||
display_yml = None
|
files = list(Path(d).iterdir())
|
||||||
if tree.is_file():
|
files.sort()
|
||||||
doc += '\n' + inv_formatter.title('Structure', 2) + '\n\n'
|
for f in files:
|
||||||
with tree.open() as fh:
|
namespace = f.parent.name
|
||||||
soup = BeautifulSoup(fh.read(), features="lxml")
|
file_found = True
|
||||||
doc += str(soup.find('p')) + "\n\n"
|
if f.name.endswith('.yml') or f.name.endswith('.yaml'):
|
||||||
for f in Path('.').iterdir():
|
doc += inv_formatter.title(str(f), 3)
|
||||||
if f.name.startswith('DISPLAY_'):
|
doc += '\n```yml\n'
|
||||||
filename = f.name[9:]
|
with f.open(encoding="utf8") as file_fh:
|
||||||
display_yml = Path(dirname) / filename
|
doc += file_fh.read()
|
||||||
break
|
doc += '\n```\n'
|
||||||
else:
|
|
||||||
files = list(Path(dirname).iterdir())
|
|
||||||
files.sort()
|
|
||||||
for f in reversed(files):
|
|
||||||
if not f.name.endswith('.yml'):
|
|
||||||
continue
|
|
||||||
display_yml = f
|
|
||||||
break
|
|
||||||
if display_yml:
|
|
||||||
doc += f"Contents of the {str(display_yml)} file"
|
|
||||||
doc += '\n\n```yml\n'
|
|
||||||
with display_yml.open(encoding="utf8") as file_fh:
|
|
||||||
doc += file_fh.read()
|
|
||||||
doc += '\n```\n'
|
|
||||||
rougailconfig['step.output'] = 'doc'
|
rougailconfig['step.output'] = 'doc'
|
||||||
rougailconfig["doc.title_level"] = 4
|
|
||||||
inv_doc = inventory.run()[1]
|
inv_doc = inventory.run()[1]
|
||||||
CMD = "rougail -m firefox/ "
|
if file_found and inv_doc:
|
||||||
if has_namespace:
|
doc += inv_formatter.title('Generated documentation', 3)
|
||||||
CMD += "-s Firefox "
|
CMD = f"foo@bar:~$ git switch --detach {commit_id}\n"
|
||||||
if has_foxyproxy:
|
CMD += "foo@bar:~$ rougail -m firefox/ "
|
||||||
CMD += "-xn FoxyProxy -xd 0 foxyproxy/ "
|
if has_namespace:
|
||||||
if has_mode:
|
CMD += "-s Firefox "
|
||||||
CMD += "--modes_level basic standard advanced "
|
if has_foxyproxy:
|
||||||
if inv_doc:
|
CMD += "-xn FoxyProxy -xd 0 foxyproxy/ "
|
||||||
doc += inv_formatter.title("Let's generate the documentation", 3)
|
if has_mode:
|
||||||
cmd = CMD + "-o doc"
|
CMD += "--modes_level basic standard advanced "
|
||||||
doc += f'```shell\n{cmd}\n```\n'
|
cmd = CMD + "-o doc -do github"
|
||||||
|
doc += f'```console\n{cmd}\n```\n'
|
||||||
doc += inv_doc
|
doc += inv_doc
|
||||||
if previous.is_file():
|
if PREVIOUS.is_file():
|
||||||
|
rougailconfig["doc.title_level"] = 5
|
||||||
rougailconfig["doc.contents"] = ["changelog"]
|
rougailconfig["doc.contents"] = ["changelog"]
|
||||||
rougailconfig["doc.previous_json_file"] = str(previous)
|
rougailconfig["doc.previous_json_file"] = str(PREVIOUS)
|
||||||
inv_doc = inventory.run()[1]
|
inv_doc = inventory.run()[1]
|
||||||
if inv_doc:
|
if file_found and inv_doc:
|
||||||
doc += inv_formatter.title("Let's generate the changelog", 3)
|
doc += inv_formatter.title('Changelog', 3)
|
||||||
cmd = CMD + "-o doc --doc.contents changelog"
|
cmd = CMD + "-o doc --doc.contents variables changelog -do github"
|
||||||
doc += f'```shell\n{cmd}\n```\n'
|
doc += f'```console\n{cmd}\n```\n'
|
||||||
doc += inv_doc + "\n"
|
doc += inv_doc
|
||||||
# save PREVIOUS
|
# save PREVIOUS
|
||||||
rougailconfig["doc.contents"] = ["variables"]
|
rougailconfig["doc.contents"] = ["variables"]
|
||||||
rougailconfig['doc.output_format'] = 'json'
|
rougailconfig['doc.output_format'] = 'json'
|
||||||
data = inventory.run()[1]
|
data = inventory.run()[1]
|
||||||
if data:
|
if data:
|
||||||
with previous.open('w') as fh:
|
with PREVIOUS.open('w') as fh:
|
||||||
dump(loads(data), fh)
|
dump(loads(data), fh)
|
||||||
#
|
#
|
||||||
rougailconfig['step.output'] = 'console'
|
rougailconfig['step.output'] = 'console'
|
||||||
config = Path('config')
|
config = Path('config')
|
||||||
if config.is_dir():
|
if config.is_dir():
|
||||||
doc += inv_formatter.title('User datas', 2)
|
doc += inv_formatter.title('User data', 2)
|
||||||
configs = list(config.iterdir())
|
configs = list(config.iterdir())
|
||||||
configs.sort()
|
configs.sort()
|
||||||
for idx, dirname in enumerate(configs):
|
for idx, dirname in enumerate(configs):
|
||||||
|
|
@ -146,7 +133,15 @@ if __name__ == "__main__":
|
||||||
doc += '\n```yml\n'
|
doc += '\n```yml\n'
|
||||||
with filename.open(encoding="utf8") as file_fh:
|
with filename.open(encoding="utf8") as file_fh:
|
||||||
doc += file_fh.read()
|
doc += file_fh.read()
|
||||||
doc += '```\n'
|
doc += '\n```\n'
|
||||||
|
# with filename.open(encoding="utf8") as file_fh:
|
||||||
|
# objects = yaml.load(file_fh)
|
||||||
|
# doc += inv_formatter.yaml(objects)
|
||||||
|
#readme = dirname / 'README.md'
|
||||||
|
#if readme.is_file():
|
||||||
|
# doc += inv_formatter.title('Description', 4)
|
||||||
|
# with readme.open() as fh:
|
||||||
|
# doc += fh.read() + '\n\n'
|
||||||
rougail = Rougail(rougailconfig)
|
rougail = Rougail(rougailconfig)
|
||||||
tiramisu_config = rougail.run()
|
tiramisu_config = rougail.run()
|
||||||
rougailconfig['step.user_data'] = ['yaml']
|
rougailconfig['step.user_data'] = ['yaml']
|
||||||
|
|
@ -162,51 +157,26 @@ if __name__ == "__main__":
|
||||||
console = export.run()[1]
|
console = export.run()[1]
|
||||||
conv = Ansi2HTMLConverter(inline=True)
|
conv = Ansi2HTMLConverter(inline=True)
|
||||||
doc += inv_formatter.title('Output', 4)
|
doc += inv_formatter.title('Output', 4)
|
||||||
cmd = CMD + f"-u yaml -yf {filename}"
|
cmd = CMD + f"-u yaml -ff {filename}"
|
||||||
with (dirname / "cmd_ro.txt").open("w") as fh:
|
doc += f"```console\n{cmd}\n```\n"
|
||||||
fh.write(cmd)
|
|
||||||
doc += f"```shell\n{cmd}\n```\n"
|
|
||||||
conv_data = '<pre>' + conv.convert(console, full=False) + "</pre>\n"
|
conv_data = '<pre>' + conv.convert(console, full=False) + "</pre>\n"
|
||||||
doc += conv_data
|
doc += conv_data
|
||||||
with open(dirname / 'output_ro.html', 'w') as fh_output:
|
with open(dirname / 'output_ro.html', 'w') as fh_output:
|
||||||
fh_output.write(conv_data)
|
fh_output.write(conv_data)
|
||||||
if (dirname / 'invalid').is_file():
|
if (config / 'read_write').is_file():
|
||||||
errors2 = rougail.user_datas(ret, invalid_user_datas_error=True)
|
tiramisu_config.property.read_write
|
||||||
export = RougailOutputConsole(tiramisu_config,
|
export = RougailOutputConsole(tiramisu_config,
|
||||||
rougailconfig=rougailconfig,
|
rougailconfig=rougailconfig,
|
||||||
user_data_errors=errors2['errors'],
|
user_data_errors=data.errors,
|
||||||
user_data_warnings=errors2['warnings'],
|
user_data_warnings=data.warnings,
|
||||||
)
|
|
||||||
console = export.run()[1]
|
|
||||||
conv = Ansi2HTMLConverter(inline=True)
|
|
||||||
doc += inv_formatter.title('Output when invalid user datas is an error', 4)
|
|
||||||
cmd2 = cmd + " --cli.invalid_user_datas_error"
|
|
||||||
with (dirname / "cmd_invalid.txt").open("w") as fh:
|
|
||||||
fh.write(cmd2)
|
|
||||||
doc += f"```shell\n{cmd2}\n```\n"
|
|
||||||
conv_data = '<pre>' + conv.convert(console, full=False) + "</pre>\n"
|
|
||||||
doc += conv_data
|
|
||||||
with open(dirname / 'output_invalid.html', 'w') as fh_output:
|
|
||||||
fh_output.write(conv_data)
|
|
||||||
if (dirname / 'read_write').is_file():
|
|
||||||
trougailconfig = rougailconfig.copy()
|
|
||||||
trougailconfig["console.mandatory"] = False
|
|
||||||
tiramisu_config.property.read_write()
|
|
||||||
errors2 = rougail.user_datas(ret, invalid_user_datas_error=True)
|
|
||||||
export = RougailOutputConsole(tiramisu_config,
|
|
||||||
rougailconfig=trougailconfig,
|
|
||||||
user_data_errors=errors2['errors'],
|
|
||||||
user_data_warnings=errors2['warnings'],
|
|
||||||
)
|
)
|
||||||
console = export.run()[1]
|
console = export.run()[1]
|
||||||
conv = Ansi2HTMLConverter(inline=True)
|
conv = Ansi2HTMLConverter(inline=True)
|
||||||
doc += inv_formatter.title('Output in read write mode', 4)
|
doc += inv_formatter.title('Output in read write mode', 4)
|
||||||
cmd2 = cmd + " --cli.read_write"
|
cmd = cmd + " --cli.read_write"
|
||||||
with (dirname / "cmd_rw.txt").open("w") as fh:
|
doc += f"```console\n{cmd}\n```\n"
|
||||||
fh.write(cmd2)
|
|
||||||
doc += f"```shell\n{cmd2}\n```\n"
|
|
||||||
conv_data = '<pre>' + conv.convert(console, full=False) + "</pre>\n"
|
conv_data = '<pre>' + conv.convert(console, full=False) + "</pre>\n"
|
||||||
doc += conv_data
|
doc += '<pre>' + conv_data + "</pre>\n"
|
||||||
with open(dirname / 'output_rw.html', 'w') as fh_output:
|
with open(dirname / 'output_rw.html', 'w') as fh_output:
|
||||||
fh_output.write(conv_data)
|
fh_output.write(conv_data)
|
||||||
#
|
#
|
||||||
|
|
|
||||||
50
build.sh
50
build.sh
|
|
@ -11,7 +11,7 @@ if [ -d $DEST ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export LC_ALL=C.UTF-8
|
export LC_ALL=C
|
||||||
|
|
||||||
BUILDER="$(pwd)"
|
BUILDER="$(pwd)"
|
||||||
mkdir -p $DEST/firefox
|
mkdir -p $DEST/firefox
|
||||||
|
|
@ -22,15 +22,12 @@ touch summary_total.md
|
||||||
cd "$DEST"
|
cd "$DEST"
|
||||||
DEST="$(pwd)"
|
DEST="$(pwd)"
|
||||||
|
|
||||||
TUTO_ROOT=https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit
|
|
||||||
|
|
||||||
|
|
||||||
cp "$BUILDER"/firefox.png .
|
cp "$BUILDER"/firefox.png .
|
||||||
cp "$BUILDER"/foxyproxy.png .
|
cp "$BUILDER"/foxyproxy.png .
|
||||||
cp "$BUILDER"/summary.md .
|
cp "$BUILDER"/summary.md .
|
||||||
cp "$BUILDER"/install.txt .
|
|
||||||
touch README.md
|
touch README.md
|
||||||
"$BUILDER"/build.py "$BUILDER" "$VERSION"
|
"$BUILDER"/build.py "$VERSION"
|
||||||
rm -rf summary.md
|
rm -rf summary.md
|
||||||
rm -rf summary_total.md
|
rm -rf summary_total.md
|
||||||
rm -rf jinja_caches
|
rm -rf jinja_caches
|
||||||
|
|
@ -41,11 +38,11 @@ git commit -am"$(cat $BUILDER/TITLE)"
|
||||||
cd - > /dev/null
|
cd - > /dev/null
|
||||||
|
|
||||||
for i in $(ls -d "examples"/* | sort); do
|
for i in $(ls -d "examples"/* | sort); do
|
||||||
num=$(echo $(basename "$i"))
|
num=$(echo $(basename "$i"))
|
||||||
echo "$num"
|
echo "$num"
|
||||||
commit_id="v${VERSION}_$num"
|
commit_id="v${VERSION}_$num"
|
||||||
summary="[tutorial $commit_id] $(head -n 1 $i/README.md)"
|
summary="[tutorial $(basename $i)] $(head -n 1 $i/README.md)"
|
||||||
echo "- [$summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/$commit_id/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/${commit_id}~1..$commit_id))" >> summary_total.md
|
echo "- [$summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/$commit_id/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/${commit_id}~1..$commit_id))" >> summary_total.md
|
||||||
done
|
done
|
||||||
|
|
||||||
for i in $(ls -d "examples"/* | sort); do
|
for i in $(ls -d "examples"/* | sort); do
|
||||||
|
|
@ -56,20 +53,17 @@ for i in $(ls -d "examples"/* | sort); do
|
||||||
echo " - $(head -n 1 $i/SUBTITLE.md)" >> summary.md
|
echo " - $(head -n 1 $i/SUBTITLE.md)" >> summary.md
|
||||||
fi
|
fi
|
||||||
if [ -f "$i/README.md" ]; then
|
if [ -f "$i/README.md" ]; then
|
||||||
rm -rf "$DEST/config" "$DEST/tree.html"
|
rm -rf "$DEST/config"
|
||||||
num=$(echo $(basename "$i"))
|
num=$(echo $(basename "$i"))
|
||||||
echo "$num"
|
echo "$num"
|
||||||
commit_id="v${VERSION}_$num"
|
commit_id="v${VERSION}_$num"
|
||||||
summary="[tutorial $commit_id)] $(head -n 1 $i/README.md)"
|
summary="[tutorial $(basename $i)] $(head -n 1 $i/README.md)"
|
||||||
diff_url="https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/${commit_id}~1..$commit_id"
|
diff_url="https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/${commit_id}~1..$commit_id"
|
||||||
echo " - [$summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/$commit_id/README.md) ([diff]($diff_url))" >> summary.md
|
echo " - [$summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/$commit_id/README.md) ([diff]($diff_url))" >> summary.md
|
||||||
cp "summary_total.md" "$DEST"
|
cp "summary_total.md" "$DEST"
|
||||||
BEFORE=$PWD
|
|
||||||
cd "$i/structural_files"
|
cd "$i/structural_files"
|
||||||
echo "====================="
|
|
||||||
if [ -d firefox ]; then
|
if [ -d firefox ]; then
|
||||||
for j in $(ls firefox/*.yml 2>/dev/null); do
|
for j in $(ls firefox/*.yml 2>/dev/null); do
|
||||||
echo "++++ $j"
|
|
||||||
cp "$j" "$DEST/$j"
|
cp "$j" "$DEST/$j"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
@ -79,18 +73,14 @@ for i in $(ls -d "examples"/* | sort); do
|
||||||
cp "$j" "$DEST/$j"
|
cp "$j" "$DEST/$j"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
cp "DISPLAY_*" "$DEST/" 2> /dev/null || true
|
|
||||||
cd $DEST
|
|
||||||
tree -H $TUTO_ROOT/$commit_id/ -P "*.yml" > tree.html
|
|
||||||
cd - > /dev/null
|
|
||||||
cp -f ../README.md "$DEST"
|
cp -f ../README.md "$DEST"
|
||||||
if [ -d ../config ]; then
|
if [ -d ../config ]; then
|
||||||
cp -aL ../config "$DEST"
|
cp -aL ../config "$DEST"
|
||||||
fi
|
fi
|
||||||
msg="[tutorial $commit_id] $(cat ../README.md)"
|
msg="[tutorial $(basename $i)] $(cat ../README.md)"
|
||||||
[ -e ../firefox.png ] && cp ../firefox.png "$DEST"
|
[ -e ../firefox.png ] && cp ../firefox.png "$DEST"
|
||||||
[ -e ../foxyproxy.png ] && cp ../foxyproxy.png "$DEST"
|
[ -e ../foxyproxy.png ] && cp ../foxyproxy.png "$DEST"
|
||||||
cd $BEFORE
|
cd - > /dev/null
|
||||||
cd "$DEST"
|
cd "$DEST"
|
||||||
#
|
#
|
||||||
before=$(grep "commit/$commit_id/README.md" summary_total.md -B1 | wc -l)
|
before=$(grep "commit/$commit_id/README.md" summary_total.md -B1 | wc -l)
|
||||||
|
|
@ -110,8 +100,8 @@ for i in $(ls -d "examples"/* | sort); do
|
||||||
if [ -f config/mode ]; then
|
if [ -f config/mode ]; then
|
||||||
mv config/mode mode
|
mv config/mode mode
|
||||||
fi
|
fi
|
||||||
"$BUILDER"/build.py "$BUILDER" "$commit_id"
|
"$BUILDER"/build.py "$commit_id"
|
||||||
rm -rf config/*/README.md config/*/read_write config/namespace config/*/invalid DISPLAY_*
|
rm -rf config/*/README.md config/read_write config/namespace
|
||||||
rm -rf jinja_caches summary.md summary_before.md summary_after.md summary_total.md
|
rm -rf jinja_caches summary.md summary_before.md summary_after.md summary_total.md
|
||||||
if [ -f mode ]; then
|
if [ -f mode ]; then
|
||||||
MODE=1
|
MODE=1
|
||||||
|
|
@ -119,7 +109,7 @@ for i in $(ls -d "examples"/* | sort); do
|
||||||
else
|
else
|
||||||
MODE=0
|
MODE=0
|
||||||
fi
|
fi
|
||||||
git add *.png README.md install.txt tree.html
|
git add *.png README.md
|
||||||
if [ -d config ]; then
|
if [ -d config ]; then
|
||||||
git add config
|
git add config
|
||||||
else
|
else
|
||||||
|
|
@ -155,11 +145,11 @@ This is what the page looks like:
|
||||||
" > README.md
|
" > README.md
|
||||||
echo '# Installation
|
echo '# Installation
|
||||||
|
|
||||||
To test this tutorial, you need to download this repository and install Rougail:
|
```bash
|
||||||
|
# python -m venv rougail
|
||||||
```bash' >> README.md
|
# . rougail/bin/activate
|
||||||
cat install.txt >> README.md
|
# pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-file
|
||||||
echo '```
|
```
|
||||||
' >> README.md
|
' >> README.md
|
||||||
echo "# Summary
|
echo "# Summary
|
||||||
|
|
||||||
|
|
@ -169,7 +159,7 @@ cp "$BUILDER"/firefox.png .
|
||||||
cp "$BUILDER"/foxyproxy.png .
|
cp "$BUILDER"/foxyproxy.png .
|
||||||
cat "$BUILDER"/summary.md >> README.md
|
cat "$BUILDER"/summary.md >> README.md
|
||||||
echo >> README.md
|
echo >> README.md
|
||||||
rm -rf firefox foxyproxy mode install.txt tree.html
|
rm -rf firefox foxyproxy mode
|
||||||
git add .
|
git add .
|
||||||
git commit -am"Summary"
|
git commit -am"Summary"
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
An empty structured file with format version
|
A structured file with format version
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Making a structure file
|
Structural file
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
A first variable with only a name
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Let's create our first "variable"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The user data file is empty. So it's only default value that will be used.
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 119 KiB |
|
|
@ -1,9 +0,0 @@
|
||||||
Describe the variable
|
|
||||||
|
|
||||||
We can add a description to this first variable.
|
|
||||||
|
|
||||||
This information is useful for:
|
|
||||||
|
|
||||||
- documentation
|
|
||||||
- error message
|
|
||||||
- help user to known which value to set to this variable (for example with [the user data plugin Questionary](https://forge.cloud.silique.fr/stove/rougail-user-data-questionary)).
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The user data file is empty. So it's only default value that will be used.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
proxy_mode: No proxy
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
Set a default value
|
|
||||||
|
|
||||||
Now we can define the default value of this variable.
|
|
||||||
|
|
||||||
If the user doesn't touch this variable's value, the value is "No proxy"
|
|
||||||
|
|
||||||
As user intervention is no more required, so the variable change it's default mode too (from "basic" to "standard").
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The user data file is empty. So it's only default value that will be used.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
proxy_mode: No proxy
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
"foo" should be an invalid value for this variable.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
proxy_mode: foo
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The user data file is empty. So it's only default value that will be used.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
proxy_mode: No proxy
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
"foo" should be an invalid value for this variable.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
proxy_mode: foo
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Creating a new family
|
A first variable with only a name
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Group variables inside "families"
|
Variable: choice the proxy mode
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 119 KiB |
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
manual:
|
|
||||||
description: Manual proxy configuration
|
|
||||||
type: family
|
|
||||||
...
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
Or a sub family
|
The variable description
|
||||||
|
|
||||||
Inside a family, we can have variables or families.
|
We can add a description to this first variable.
|
||||||
|
|
||||||
The "type" for family "manual" became unecessary because container an other family, so it's not a variable.
|
This information is useful for:
|
||||||
The description can now be has family comment.
|
|
||||||
|
|
||||||
In disabled attribute, it's better tu use relative path (we will see the reason in an other slide).
|
- documentation
|
||||||
|
- error message
|
||||||
|
- help user to known which value to set to this variable (for example with [the user data plugin Questionary](https://forge.cloud.silique.fr/stove/rougail-user-data-questionary)).
|
||||||
|
|
|
||||||
1
examples/011/config
Symbolic link
1
examples/011/config
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../010/config
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
manual: # Manual proxy configuration
|
|
||||||
|
|
||||||
http_proxy:
|
|
||||||
description: HTTP Proxy
|
|
||||||
type: family
|
|
||||||
...
|
|
||||||
|
|
@ -1 +1,7 @@
|
||||||
Putting a variable inside of a family or a sub family
|
A default value
|
||||||
|
|
||||||
|
Now we can define the default value of this variable.
|
||||||
|
|
||||||
|
If the user doesn't touch this variable's value, the value is "No proxy"
|
||||||
|
|
||||||
|
As user intervention is no more required, so the variable change it's default mode too (from "basic" to "standard").
|
||||||
|
|
|
||||||
1
examples/012/config
Symbolic link
1
examples/012/config
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../010/config
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: example.net
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: example.net
|
|
||||||
port: 3128
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
Limits the possible values for the variable
|
A variable with type "choice"
|
||||||
|
|
||||||
"Foo" should not be an option to the "proxy_mode" variable.
|
"Foo" should not be an option to the "proxy_mode" variable.
|
||||||
|
|
||||||
1
examples/013/config
Symbolic link
1
examples/013/config
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../010/config
|
||||||
15
examples/013/structural_files/firefox/00-proxy.yml
Normal file
15
examples/013/structural_files/firefox/00-proxy.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
version: 1.1
|
||||||
|
|
||||||
|
proxy_mode:
|
||||||
|
description: Configure Proxy Access to the Internet
|
||||||
|
type: choice
|
||||||
|
choices:
|
||||||
|
- No proxy
|
||||||
|
- Auto-detect proxy settings for this network
|
||||||
|
- Use system proxy settings
|
||||||
|
- Manual proxy configuration
|
||||||
|
- Automatic proxy configuration URL
|
||||||
|
default: No proxy
|
||||||
|
...
|
||||||
3
examples/014/README.md
Normal file
3
examples/014/README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
Choice type is optional
|
||||||
|
|
||||||
|
The type is optional in choice type (if we have choices attributes, it's a choice option).
|
||||||
1
examples/014/config
Symbolic link
1
examples/014/config
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../010/config
|
||||||
|
|
@ -1 +1,14 @@
|
||||||
A variable with type "domainname"
|
A family
|
||||||
|
|
||||||
|
The "manual" mode structural descriptions are write in a new files to separate things. But Rougail will concatenate variables and families.
|
||||||
|
|
||||||
|
We create a family, which will contain other variables.
|
||||||
|
|
||||||
|
This family has:
|
||||||
|
|
||||||
|
- a description
|
||||||
|
- a type
|
||||||
|
|
||||||
|
As there is no variable inside this family, the type is mandatory. Without it, Rougail will create a variable.
|
||||||
|
|
||||||
|
In fact, this family will be deleted by Rougail too because it is empty.
|
||||||
|
|
|
||||||
1
examples/020/SUBTITLE.md
Normal file
1
examples/020/SUBTITLE.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Family: proxy manual
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Constrainte the value of a variable with it's type
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: example.net
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: 192.168.0.1
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: not a valid domain name
|
|
||||||
BIN
examples/020/firefox.png
Normal file
BIN
examples/020/firefox.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 117 KiB |
Binary file not shown.
|
|
@ -2,11 +2,7 @@
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
manual: # Manual proxy configuration
|
manual:
|
||||||
|
description: Manual proxy configuration
|
||||||
http_proxy: # HTTP Proxy
|
type: family
|
||||||
|
|
||||||
address:
|
|
||||||
description: HTTP address
|
|
||||||
type: domainname
|
|
||||||
...
|
...
|
||||||
|
|
|
||||||
|
|
@ -1 +1,8 @@
|
||||||
A variable with type's parameters
|
A sub family
|
||||||
|
|
||||||
|
Inside a family, we can have variables or families.
|
||||||
|
|
||||||
|
The "type" for family "manual" became unecessary because container an other family, so it's not a variable.
|
||||||
|
The description can now be has family comment.
|
||||||
|
|
||||||
|
In disabled attribute, it's better tu use relative path (we will see the reason in an other slide).
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
../020/config
|
|
||||||
|
|
@ -4,11 +4,7 @@ version: 1.1
|
||||||
|
|
||||||
manual: # Manual proxy configuration
|
manual: # Manual proxy configuration
|
||||||
|
|
||||||
http_proxy: # HTTP Proxy
|
http_proxy:
|
||||||
|
description: HTTP Proxy
|
||||||
address:
|
type: family
|
||||||
description: HTTP address
|
|
||||||
type: domainname
|
|
||||||
params:
|
|
||||||
allow_ip: true
|
|
||||||
...
|
...
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
A variable with type "port"
|
A variable inside sub family
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
---
|
|
||||||
proxy_mode: Manual proxy configuration
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: example.net
|
|
||||||
port: 100000
|
|
||||||
|
|
@ -6,14 +6,5 @@ manual: # Manual proxy configuration
|
||||||
|
|
||||||
http_proxy: # HTTP Proxy
|
http_proxy: # HTTP Proxy
|
||||||
|
|
||||||
address:
|
address: # HTTP address
|
||||||
description: HTTP address
|
|
||||||
type: domainname
|
|
||||||
params:
|
|
||||||
allow_ip: true
|
|
||||||
|
|
||||||
port:
|
|
||||||
description: HTTP Port
|
|
||||||
type: port
|
|
||||||
default: 8080
|
|
||||||
...
|
...
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
A variable with type "boolean"
|
A variable with type "domainname"
|
||||||
|
|
|
||||||
1
examples/023/SUBTITLE.md
Normal file
1
examples/023/SUBTITLE.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Variable: type and type parameters
|
||||||
1
examples/023/TITLE.md
Normal file
1
examples/023/TITLE.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
HTTP Manual mode
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: example.net
|
|
||||||
2
examples/023/config/02/config.yaml
Normal file
2
examples/023/config/02/config.yaml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
proxy_mode: Manual proxy configuration
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
manual:
|
|
||||||
http_proxy:
|
|
||||||
address: example.net
|
|
||||||
use_for_https: false
|
|
||||||
|
|
@ -3,4 +3,4 @@ proxy_mode: Manual proxy configuration
|
||||||
manual:
|
manual:
|
||||||
http_proxy:
|
http_proxy:
|
||||||
address: example.net
|
address: example.net
|
||||||
port: 3128
|
port: '3128'
|
||||||
2
examples/023/config/05/README.md
Normal file
2
examples/023/config/05/README.md
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
If "use_for_https" is false, HTTPS variables are visible in read only mode and in read write mode.
|
||||||
|
|
||||||
9
examples/023/config/05/config.yaml
Normal file
9
examples/023/config/05/config.yaml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
proxy_mode: Manual proxy configuration
|
||||||
|
manual:
|
||||||
|
http_proxy:
|
||||||
|
address: http.proxy.net
|
||||||
|
port: '3128'
|
||||||
|
use_for_https: false
|
||||||
|
https_proxy:
|
||||||
|
address: https.proxy.net
|
||||||
|
|
@ -6,5 +6,7 @@ manual: # Manual proxy configuration
|
||||||
|
|
||||||
http_proxy: # HTTP Proxy
|
http_proxy: # HTTP Proxy
|
||||||
|
|
||||||
address: # HTTP address
|
address:
|
||||||
|
description: HTTP address
|
||||||
|
type: domainname
|
||||||
...
|
...
|
||||||
|
|
@ -1 +1 @@
|
||||||
Copy HTTP manual proxy to HTTPS manual proxy
|
A variable with type's parameters
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
../020/config
|
../022/config
|
||||||
14
examples/024/structural_files/firefox/10-manual.yml
Normal file
14
examples/024/structural_files/firefox/10-manual.yml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
version: 1.1
|
||||||
|
|
||||||
|
manual: # Manual proxy configuration
|
||||||
|
|
||||||
|
http_proxy: # HTTP Proxy
|
||||||
|
|
||||||
|
address:
|
||||||
|
description: HTTP address
|
||||||
|
type: domainname
|
||||||
|
params:
|
||||||
|
allow_ip: true
|
||||||
|
...
|
||||||
1
examples/025/README.md
Normal file
1
examples/025/README.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
A variable with type "port"
|
||||||
1
examples/025/config
Symbolic link
1
examples/025/config
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../022/config
|
||||||
19
examples/025/structural_files/firefox/10-manual.yml
Normal file
19
examples/025/structural_files/firefox/10-manual.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
version: 1.1
|
||||||
|
|
||||||
|
manual: # Manual proxy configuration
|
||||||
|
|
||||||
|
http_proxy: # HTTP Proxy
|
||||||
|
|
||||||
|
address:
|
||||||
|
description: HTTP address
|
||||||
|
type: domainname
|
||||||
|
params:
|
||||||
|
allow_ip: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
description: HTTP Port
|
||||||
|
type: port
|
||||||
|
default: 8080
|
||||||
|
...
|
||||||
1
examples/026/README.md
Normal file
1
examples/026/README.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
A disabled family
|
||||||
1
examples/026/SUBTITLE.md
Normal file
1
examples/026/SUBTITLE.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Property: disabled
|
||||||
1
examples/026/config
Symbolic link
1
examples/026/config
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../022/config
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue