No description
| config | ||
| firefox | ||
| foxyproxy | ||
| types/proxy | ||
| CHANGELOG.md | ||
| DOCUMENTATION.md | ||
| firefox.png | ||
| foxyproxy.png | ||
| install.txt | ||
| README.md | ||
| tree.html | ||
[tutorial v1.1_210] Username is mandatory if a password is set
Read the tutorial "Username is mandatory if a password is set" in the documentation
Screenshot
Clone and install
To test this tutorial, you need to download this repository and install Rougail:
git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
cd rougail-tutorials
python -m venv venv_rougail
. venv_rougail/bin/activate
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml
Then switch to the tutorial page:
git switch --detach v1.1_210
Structure
.
├── firefox
│ ├── 00-proxy.yml
│ ├── 10-manual.yml
│ ├── 20-manual.yml
│ ├── 30-auto.yml
│ ├── 40-no_proxy.yml
│ ├── 50-prompt_authentication.yml
│ ├── 55-proxy_dns_socks5.yml
│ └── 60-dns_over_https.yml
├── foxyproxy
│ └── 00-foxyproxy.yml
└── types
└── proxy
└── 00-type.yml
Contents of the foxyproxy/00-foxyproxy.yml file
%YAML 1.2
---
version: 1.1
proxies:
description: Proxy configuration
_type: leadership
title:
description: Title or Description
mandatory: false
type:
description: Proxy Type
choices:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
- PAC URL
- WPAD
- System (use system settings)
- Direct (no proxy)
default: Direct (no proxy)
color:
description: Color
regexp: ^#(?:[0-9a-f]{3}){1,2}$
default:
jinja: >-
#{%- for i in range(6) -%}{{- '0123456789abcdef' | random -}}{%- endfor -%}
description: random color value
auto_save: true
address:
description: IP address, DNS name, server name
type: domainname
params:
allow_ip: true
allow_without_dot: true
default:
description: copy HTTP address if proxy is not "Manual"
variable: firefox.manual.http_proxy.address
propertyerror: false
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
port:
description: Port
type: port
default:
description: copy HTTP port if proxy is not "Manual"
variable: firefox.manual.http_proxy.port
propertyerror: false
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
username:
description: Username
type: unix_user
mandatory:
jinja: |-
{% if _.password is not propertyerror and _.password %}
true
{% else %}
false
{% endif %}
return_type: boolean
description: if a password is set
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
password:
description: Password
type: secret
mandatory: false
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
url:
description: URL
type: web_address
default:
description: copy HTTP address if proxy is "Auto"
variable: firefox.auto
propertyerror: false
disabled:
jinja: |-
{{ _.type not in ['PAC URL', 'WPAD'] }}
return_type: boolean
description: |-
if type is not in:
- PAC URL
- WPAD
...
Let's generate the documentation
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc
Let's generate the changelog
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml
User datas
Example 1
config/01/config.yml
---
Output
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml
Note
Caption:
- Variable
- Default value
Variables:
- 📂 firefox (Firefox)
- 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
- 📂 dns_over_https (DNS over HTTPS)
- 📓 enable_dns_over_https (Enable DNS over HTTPS): false
- 📂 foxyproxy (FoxyProxy)
- 📂 proxies (Proxy configuration): []
Example 2
config/02/config.yml
---
foxyproxy:
proxies:
- title: My company
type: HTTP
color: '#66cc66'
address: proxy.company.net
port: 8080
username: one_user
password: P4ssW0rD
- title: An other company
type: HTTP
address: proxy.company.net
port: 8080
Output
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/02/config.yml
Note
Caption:
- Variable
- Default value
- Modified value
- (⏳ Original default value)
Variables:
- 📂 firefox (Firefox)
- 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
- 📂 dns_over_https (DNS over HTTPS)
- 📓 enable_dns_over_https (Enable DNS over HTTPS): false
- 📂 foxyproxy (FoxyProxy)
- 📂 proxies (Proxy configuration)
- 📂 title (Title or Description)
- 📓 title (Title or Description): My company ← loaded from the YAML file "config/02/config.yml"
- 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" (⏳ Direct (no proxy))
- 📓 color (Color): #66cc66 ← loaded from the YAML file "config/02/config.yml"
- 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
- 📓 port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
- 📓 username (Username): one_user ← loaded from the YAML file "config/02/config.yml"
- 📓 password (Password): ********** ← loaded from the YAML file "config/02/config.yml"
- 📂 title (Title or Description)
- 📓 title (Title or Description): An other company ← loaded from the YAML file "config/02/config.yml"
- 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" (⏳ Direct (no proxy))
- 📓 color (Color): #56a05e
- 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
- 📓 port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
- 📓 username (Username): null
- 📓 password (Password): null
- 📂 title (Title or Description)
- 📂 proxies (Proxy configuration)
Example 3
config/03/config.yml
---
foxyproxy:
proxies:
- title: My company
type: HTTP
color: '#66cc66'
address: proxy.company.net
port: 8080
password: P4ssW0rD
- title: An other company
type: HTTP
address: proxy.company.net
port: 8080
Output
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/03/config.yml
Caution
- foxyproxy (FoxyProxy)
- proxies (Proxy configuration)
- username (Username): 🛑 mandatory variable at index "0" but has no value