Skip to content

Commit

Permalink
treewide: Fix incorrect string escapes
Browse files Browse the repository at this point in the history
  • Loading branch information
piegamesde committed Dec 23, 2024
1 parent 8ae7ef7 commit 7e99c08
Show file tree
Hide file tree
Showing 28 changed files with 44 additions and 44 deletions.
2 changes: 1 addition & 1 deletion lib/meta.nix
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ rec {
"lib.meta.getExe': The first argument is of type ${typeOf x}, but it should be a derivation instead.";
assert assertMsg (isString y)
"lib.meta.getExe': The second argument is of type ${typeOf y}, but it should be a string instead.";
assert assertMsg (match ".*\/.*" y == null)
assert assertMsg (match ".*\\/.*" y == null)
"lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead.";
"${getBin x}/bin/${y}";
}
2 changes: 1 addition & 1 deletion lib/options.nix
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ rec {
# If the part is a named placeholder of the form "<...>" don't escape it.
# It may cause misleading escaping if somebody uses literally "<...>" in their option names.
# This is the trade-off to allow for placeholders in option names.
isNamedPlaceholder = builtins.match "\<(.*)\>";
isNamedPlaceholder = builtins.match "\\<(.*)\\>";
escapeOptionPart = part:
if part == "*" || isNamedPlaceholder part != null
then part
Expand Down
4 changes: 2 additions & 2 deletions lib/tests/modules/strMatching-merge.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
imports = [
{
options.sm = lib.mkOption {
type = lib.types.strMatching "\(.*\)";
type = lib.types.strMatching "\\(.*\\)";
};
}
{
options.sm = lib.mkOption {
type = lib.types.strMatching "\(.*\)";
type = lib.types.strMatching "\\(.*\\)";
};
}
];
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/hardware/video/nvidia.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ let
offloadCfg = pCfg.offload;
reverseSyncCfg = pCfg.reverseSync;
primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable;
busIDType = lib.types.strMatching "([[:print:]]+[\:\@][0-9]{1,3}\:[0-9]{1,2}\:[0-9])?";
busIDType = lib.types.strMatching "([[:print:]]+[\\:\\@][0-9]{1,3}\\:[0-9]{1,2}\\:[0-9])?";
ibtSupport = useOpenModules || (nvidia_x11.ibtSupport or false);
settingsFormat = pkgs.formats.keyValue { };
in
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/misc/version.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ let
;

needsEscaping = s: null != builtins.match "[a-zA-Z0-9]+" s;
escapeIfNecessary = s: if needsEscaping s then s else ''"${lib.escape [ "\$" "\"" "\\" "\`" ] s}"'';
escapeIfNecessary = s: if needsEscaping s then s else ''"${lib.escape [ "$" "\"" "\\" "`" ] s}"'';
attrsToText =
attrs:
concatStringsSep "\n" (mapAttrsToList (n: v: ''${n}=${escapeIfNecessary (toString v)}'') attrs)
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/mail/dovecot.nix
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ let
# The idea is to match everything that looks like `$term =`
# but not `# $term something something`
# or `# $term = some value` because those are comments.
configContainsSetting = lines: term: (match "^[^#]*\b${term}\b.*=" lines) != null;
configContainsSetting = lines: term: (match "^[^#]*\\b${term}\\b.*=" lines) != null;

warnAboutExtraConfigCollisions = map mkExtraConfigCollisionWarning (
filter (configContainsSetting cfg.extraConfig) automaticallySetPluginSettings
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/misc/snapper.nix
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ let
};

intOrNumberOrRange = lib.types.either lib.types.ints.unsigned (
lib.types.strMatching "[[:digit:]]+(\-[[:digit:]]+)?"
lib.types.strMatching "[[:digit:]]+(\\-[[:digit:]]+)?"
// {
description = "string containing either a number or a range";
descriptionClass = "conjunction";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ let
name = "goDuration";
description = "Go duration (https://golang.org/pkg/time/#ParseDuration)";
check =
x: types.str.check x && builtins.match "(-?[0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+" x != null;
x: types.str.check x && builtins.match "(-?[0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+" x != null;
inherit (types.str) merge;
};
in
Expand Down
6 changes: 3 additions & 3 deletions nixos/modules/services/networking/lxd-image-server.nix
Original file line number Diff line number Diff line change
Expand Up @@ -105,19 +105,19 @@ in
};

# Serve json files with content type header application/json
"~ \.json$" = {
"~ \\.json$" = {
extraConfig = ''
add_header Content-Type application/json;
'';
};

"~ \.tar.xz$" = {
"~ \\.tar.xz$" = {
extraConfig = ''
add_header Content-Type application/octet-stream;
'';
};

"~ \.tar.gz$" = {
"~ \\.tar.gz$" = {
extraConfig = ''
add_header Content-Type application/octet-stream;
'';
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/security/certmgr.nix
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ in
service = mkOption {
type = nullOr str;
default = null;
description = "The service on which to perform \<action\> after fetching.";
description = "The service on which to perform \\<action\\> after fetching.";
};

action = mkOption {
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/video/frigate.nix
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ in
}
'';
};
"~* /api/.*\.(jpg|jpeg|png|webp|gif)$" = {
"~* /api/.*\\.(jpg|jpeg|png|webp|gif)$" = {
proxyPass = "http://frigate-api";
recommendedProxySettings = true;
extraConfig = nginxAuthRequest + nginxProxySettings + ''
Expand Down
4 changes: 2 additions & 2 deletions nixos/modules/services/web-apps/agorakit.nix
Original file line number Diff line number Diff line change
Expand Up @@ -367,10 +367,10 @@ in
index = "index.php";
tryFiles = "$uri $uri/ /index.php?$query_string";
};
"~ \.php$".extraConfig = ''
"~ \\.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools."agorakit".socket};
'';
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
"~ \\.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
};
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/castopod.nix
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ in
'';
};

locations."~ \.php$" = {
locations."~ \\.php$" = {
fastcgiParams = {
SERVER_NAME = "$host";
};
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/davis.nix
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ in
return 302 https://$host/dav/;
'';
};
"~ ^(.+\.php)(.*)$" = {
"~ ^(.+\\.php)(.*)$" = {
extraConfig = ''
try_files $fastcgi_script_name =404;
include ${config.services.nginx.package}/conf/fastcgi_params;
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/discourse.nix
Original file line number Diff line number Diff line change
Expand Up @@ -925,7 +925,7 @@ in
};
"~ ^/uploads/short-url/" = proxy { };
"~ ^/secure-media-uploads/" = proxy { };
"~* (fonts|assets|plugins|uploads)/.*\.(eot|ttf|woff|woff2|ico|otf)$".extraConfig =
"~* (fonts|assets|plugins|uploads)/.*\\.(eot|ttf|woff|woff2|ico|otf)$".extraConfig =
cache_1y
+ ''
add_header Access-Control-Allow-Origin *;
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/dokuwiki.nix
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ in
extraConfig = "internal;";
};

"~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = {
"~ ^/lib.*\\.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ in
sendfile off;
'';
};
"~ \.php$" = {
"~ \\.php$" = {
extraConfig = ''
include ${config.services.nginx.package}/conf/fastcgi_params ;
fastcgi_param SCRIPT_FILENAME $request_filename;
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/firefly-iii.nix
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ in
sendfile off;
'';
};
"~ \.php$" = {
"~ \\.php$" = {
extraConfig = ''
include ${config.services.nginx.package}/conf/fastcgi_params ;
fastcgi_param SCRIPT_FILENAME $request_filename;
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/flarum.nix
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ in
enable = true;
virtualHosts."${cfg.domain}" = {
root = "${cfg.stateDir}/public";
locations."~ \.php$".extraConfig = ''
locations."~ \\.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools.flarum.socket};
fastcgi_index site.php;
'';
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/freshrss.nix
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ in

# php files handling
# this regex is mandatory because of the API
locations."~ ^.+?\.php(/.*)?$".extraConfig = ''
locations."~ ^.+?\\.php(/.*)?$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.socket};
fastcgi_split_path_info ^(.+\.php)(/.*)$;
# By default, the variable PATH_INFO is not set under PHP-FPM
Expand Down
4 changes: 2 additions & 2 deletions nixos/modules/services/web-apps/monica.nix
Original file line number Diff line number Diff line change
Expand Up @@ -355,10 +355,10 @@ in {
index = "index.php";
tryFiles = "$uri $uri/ /index.php?$query_string";
};
"~ \.php$".extraConfig = ''
"~ \\.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools."monica".socket};
'';
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
"~ \\.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
};
Expand Down
20 changes: 10 additions & 10 deletions nixos/modules/services/web-apps/onlyoffice.nix
Original file line number Diff line number Diff line change
Expand Up @@ -105,27 +105,27 @@ in
virtualHosts.${cfg.hostname} = {
locations = {
# /etc/nginx/includes/ds-docservice.conf
"~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps\/apps\/api\/documents\/api\.js)$".extraConfig =
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(web-apps\\/apps\\/api\\/documents\\/api\\.js)$".extraConfig =
''
expires -1;
alias ${cfg.package}/var/www/onlyoffice/documentserver/$2;
'';
"~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps)(\/.*\.json)$".extraConfig = ''
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(web-apps)(\\/.*\\.json)$".extraConfig = ''
expires 365d;
error_log /dev/null crit;
alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
'';
"~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(sdkjs-plugins)(\/.*\.json)$".extraConfig = ''
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(sdkjs-plugins)(\\/.*\\.json)$".extraConfig = ''
expires 365d;
error_log /dev/null crit;
alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
'';
"~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps|sdkjs|sdkjs-plugins|fonts)(\/.*)$".extraConfig =
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(web-apps|sdkjs|sdkjs-plugins|fonts)(\\/.*)$".extraConfig =
''
expires 365d;
alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
'';
"~* ^(\/cache\/files.*)(\/.*)".extraConfig = ''
"~* ^(\\/cache\\/files.*)(\\/.*)".extraConfig = ''
alias /var/lib/onlyoffice/documentserver/App_Data$1;
add_header Content-Disposition "attachment; filename*=UTF-8''$arg_filename";
Expand All @@ -141,32 +141,32 @@ in
return 410;
}
'';
"~* ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(internal)(\/.*)$".extraConfig = ''
"~* ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(internal)(\\/.*)$".extraConfig = ''
allow 127.0.0.1;
deny all;
proxy_pass http://onlyoffice-docservice/$2$3;
'';
"~* ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(info)(\/.*)$".extraConfig = ''
"~* ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(info)(\\/.*)$".extraConfig = ''
allow 127.0.0.1;
deny all;
proxy_pass http://onlyoffice-docservice/$2$3;
'';
"/".extraConfig = ''
proxy_pass http://onlyoffice-docservice;
'';
"~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?(\/doc\/.*)".extraConfig = ''
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?(\\/doc\\/.*)".extraConfig = ''
proxy_pass http://onlyoffice-docservice$2;
proxy_http_version 1.1;
'';
"/${cfg.package.version}/".extraConfig = ''
proxy_pass http://onlyoffice-docservice/;
'';
"~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(dictionaries)(\/.*)$".extraConfig = ''
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(dictionaries)(\\/.*)$".extraConfig = ''
expires 365d;
alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
'';
# /etc/nginx/includes/ds-example.conf
"~ ^(\/welcome\/.*)$".extraConfig = ''
"~ ^(\\/welcome\\/.*)$".extraConfig = ''
expires 365d;
alias ${cfg.package}/var/www/onlyoffice/documentserver-example$1;
index docker.html;
Expand Down
4 changes: 2 additions & 2 deletions nixos/modules/services/web-apps/peertube.nix
Original file line number Diff line number Diff line change
Expand Up @@ -696,15 +696,15 @@ in
};

# Bypass PeerTube for performance reasons.
locations."~ ^/client/(assets/images/(icons/icon-36x36\.png|icons/icon-48x48\.png|icons/icon-72x72\.png|icons/icon-96x96\.png|icons/icon-144x144\.png|icons/icon-192x192\.png|icons/icon-512x512\.png|logo\.svg|favicon\.png|default-playlist\.jpg|default-avatar-account\.png|default-avatar-account-48x48\.png|default-avatar-video-channel\.png|default-avatar-video-channel-48x48\.png))$" =
locations."~ ^/client/(assets/images/(icons/icon-36x36\\.png|icons/icon-48x48\\.png|icons/icon-72x72\\.png|icons/icon-96x96\\.png|icons/icon-144x144\\.png|icons/icon-192x192\\.png|icons/icon-512x512\\.png|logo\\.svg|favicon\\.png|default-playlist\\.jpg|default-avatar-account\\.png|default-avatar-account-48x48\\.png|default-avatar-video-channel\\.png|default-avatar-video-channel-48x48\\.png))$" =
{
tryFiles = "/client-overrides/$1 /client/$1 $1";
priority = 1310;

extraConfig = nginxCommonHeaders;
};

locations."~ ^/client/(.*\.(js|css|png|svg|woff2|otf|ttf|woff|eot))$" = {
locations."~ ^/client/(.*\\.(js|css|png|svg|woff2|otf|ttf|woff|eot))$" = {
alias = "${cfg.package}/client/dist/$1";
priority = 1320;
extraConfig =
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/privatebin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ in
sendfile off;
'';
};
"~ \.php$" = {
"~ \\.php$" = {
extraConfig = ''
include ${config.services.nginx.package}/conf/fastcgi_params ;
fastcgi_param SCRIPT_FILENAME $request_filename;
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/rutorrent.nix
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ in
${cfg.hostName} = {
root = cfg.dataDir;
locations = {
"~ [^/]\.php(/|$)" = {
"~ [^/]\\.php(/|$)" = {
extraConfig = ''
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
Expand Down
4 changes: 2 additions & 2 deletions nixos/modules/services/web-apps/snipe-it.nix
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ in {
index = "index.php";
extraConfig = ''try_files $uri $uri/ /index.php?$query_string;'';
};
"~ \.php$" = {
"~ \\.php$" = {
extraConfig = ''
try_files $uri $uri/ /index.php?$query_string;
include ${config.services.nginx.package}/conf/fastcgi_params;
Expand All @@ -378,7 +378,7 @@ in {
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
'';
};
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
"~ \\.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
};
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/zabbix.nix
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ in
index = "index.html index.htm index.php";
tryFiles = "$uri $uri/ =404";
};
locations."~ \.php$".extraConfig = ''
locations."~ \\.php$".extraConfig = ''
fastcgi_pass unix:${fpm.socket};
fastcgi_index index.php;
'';
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/x11/display-managers/lightdm.nix
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ in
};

background = mkOption {
type = types.either types.path (types.strMatching "^#[0-9]\{6\}$");
type = types.either types.path (types.strMatching "^#[0-9]\\{6\\}$");
# Manual cannot depend on packages, we are actually setting the default in config below.
defaultText = literalExpression "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
description = ''
Expand Down

0 comments on commit 7e99c08

Please sign in to comment.