forked from auxolotl/docs
3339 lines
118 KiB
HTML
3339 lines
118 KiB
HTML
|
|
|||
|
<!doctype html>
|
|||
|
<html lang="en" class="no-js">
|
|||
|
<head>
|
|||
|
|
|||
|
<meta charset="utf-8">
|
|||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|||
|
|
|||
|
<meta name="description" content="Aux Documentation">
|
|||
|
|
|||
|
|
|||
|
<meta name="author" content="Nixpkgs Aux, and Lix Contributors">
|
|||
|
|
|||
|
|
|||
|
<link rel="canonical" href="https://docs.auxolotl.org/Nixpkgs/Library-Reference/strings/">
|
|||
|
|
|||
|
|
|||
|
<link rel="prev" href="../sources/">
|
|||
|
|
|||
|
|
|||
|
<link rel="next" href="../trivial/">
|
|||
|
|
|||
|
|
|||
|
<link rel="icon" href="../../../assets/aux-logo.svg">
|
|||
|
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<title>lib.strings: string manipulation functions - Aux Docs</title>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<link rel="stylesheet" href="../../../assets/stylesheets/main.76a95c52.min.css">
|
|||
|
|
|||
|
|
|||
|
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|||
|
<link rel="stylesheet" href="https://fonts.bunny.net/css?family=IBM+Plex+Sans:300,300i,400,400i,700,700i%7CIBM+Plex+Mono:400,400i,700,700i&display=fallback">
|
|||
|
<style>:root{--md-text-font:"IBM Plex Sans";--md-code-font:"IBM Plex Mono"}</style>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<meta property="og:type" content="website" >
|
|||
|
|
|||
|
<meta property="og:title" content="lib.strings: string manipulation functions {#sec-functions-library-strings} - Aux Docs" >
|
|||
|
|
|||
|
<meta property="og:description" content="Aux Documentation" >
|
|||
|
|
|||
|
<meta property="og:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/strings.png" >
|
|||
|
|
|||
|
<meta property="og:image:type" content="image/png" >
|
|||
|
|
|||
|
<meta property="og:image:width" content="1200" >
|
|||
|
|
|||
|
<meta property="og:image:height" content="630" >
|
|||
|
|
|||
|
<meta property="og:url" content="https://docs.auxolotl.org/Nixpkgs/Library-Reference/strings/" >
|
|||
|
|
|||
|
<meta name="twitter:card" content="summary_large_image" >
|
|||
|
|
|||
|
<meta name="twitter:title" content="lib.strings: string manipulation functions {#sec-functions-library-strings} - Aux Docs" >
|
|||
|
|
|||
|
<meta name="twitter:description" content="Aux Documentation" >
|
|||
|
|
|||
|
<meta name="twitter:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/strings.png" >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</head>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue">
|
|||
|
|
|||
|
|
|||
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|||
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|||
|
<label class="md-overlay" for="__drawer"></label>
|
|||
|
<div data-md-component="skip">
|
|||
|
|
|||
|
|
|||
|
<a href="#sec-functions-library-strings" class="md-skip">
|
|||
|
Skip to content
|
|||
|
</a>
|
|||
|
|
|||
|
</div>
|
|||
|
<div data-md-component="announce">
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<header class="md-header" data-md-component="header">
|
|||
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|||
|
<a href="../../.." title="Aux Docs" class="md-header__button md-logo" aria-label="Aux Docs" data-md-component="logo">
|
|||
|
|
|||
|
<img src="../../../assets/aux-logo.svg" alt="logo">
|
|||
|
|
|||
|
</a>
|
|||
|
<label class="md-header__button md-icon" for="__drawer">
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
|||
|
</label>
|
|||
|
<div class="md-header__title" data-md-component="header-title">
|
|||
|
<div class="md-header__ellipsis">
|
|||
|
<div class="md-header__topic">
|
|||
|
<span class="md-ellipsis">
|
|||
|
Aux Docs
|
|||
|
</span>
|
|||
|
</div>
|
|||
|
<div class="md-header__topic" data-md-component="header-topic">
|
|||
|
<span class="md-ellipsis">
|
|||
|
|
|||
|
lib.strings: string manipulation functions
|
|||
|
|
|||
|
</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<form class="md-header__option" data-md-component="palette">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Dark Mode" type="radio" name="__palette" id="__palette_0">
|
|||
|
|
|||
|
<label class="md-header__button md-icon" title="Dark Mode" for="__palette_1" hidden>
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
|
|||
|
</label>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Light Mode" type="radio" name="__palette" id="__palette_1">
|
|||
|
|
|||
|
<label class="md-header__button md-icon" title="Light Mode" for="__palette_0" hidden>
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
|
|||
|
</label>
|
|||
|
|
|||
|
|
|||
|
</form>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<label class="md-header__button md-icon" for="__search">
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
|||
|
</label>
|
|||
|
<div class="md-search" data-md-component="search" role="dialog">
|
|||
|
<label class="md-search__overlay" for="__search"></label>
|
|||
|
<div class="md-search__inner" role="search">
|
|||
|
<form class="md-search__form" name="search">
|
|||
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|||
|
<label class="md-search__icon md-icon" for="__search">
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
|||
|
</label>
|
|||
|
<nav class="md-search__options" aria-label="Search">
|
|||
|
|
|||
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
|||
|
</button>
|
|||
|
</nav>
|
|||
|
|
|||
|
</form>
|
|||
|
<div class="md-search__output">
|
|||
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|||
|
<div class="md-search-result" data-md-component="search-result">
|
|||
|
<div class="md-search-result__meta">
|
|||
|
Initializing search
|
|||
|
</div>
|
|||
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<div class="md-header__source">
|
|||
|
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
|
|||
|
<div class="md-source__icon md-icon">
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
|
|||
|
</div>
|
|||
|
<div class="md-source__repository">
|
|||
|
auxolotl/docs
|
|||
|
</div>
|
|||
|
</a>
|
|||
|
</div>
|
|||
|
|
|||
|
</nav>
|
|||
|
|
|||
|
</header>
|
|||
|
|
|||
|
<div class="md-container" data-md-component="container">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
|||
|
<div class="md-grid">
|
|||
|
<ul class="md-tabs__list">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-tabs__item">
|
|||
|
<a href="../../.." class="md-tabs__link">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Aux Documentation Hub
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-tabs__item">
|
|||
|
<a href="../../../TODO/" class="md-tabs__link">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
TODO
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-tabs__item">
|
|||
|
<a href="../../../Aux/" class="md-tabs__link">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Aux
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-tabs__item">
|
|||
|
<a href="../../../Lix/" class="md-tabs__link">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Lix
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-tabs__item">
|
|||
|
<a href="../../../NixOS/appstream/" class="md-tabs__link">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NixOS
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-tabs__item md-tabs__item--active">
|
|||
|
<a href="../../" class="md-tabs__link">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Nixpkgs
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</nav>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<main class="md-main" data-md-component="main">
|
|||
|
<div class="md-main__inner md-grid">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|||
|
<div class="md-sidebar__scrollwrap">
|
|||
|
<div class="md-sidebar__inner">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
|
|||
|
<label class="md-nav__title" for="__drawer">
|
|||
|
<a href="../../.." title="Aux Docs" class="md-nav__button md-logo" aria-label="Aux Docs" data-md-component="logo">
|
|||
|
|
|||
|
<img src="../../../assets/aux-logo.svg" alt="logo">
|
|||
|
|
|||
|
</a>
|
|||
|
Aux Docs
|
|||
|
</label>
|
|||
|
|
|||
|
<div class="md-nav__source">
|
|||
|
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
|
|||
|
<div class="md-source__icon md-icon">
|
|||
|
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
|
|||
|
</div>
|
|||
|
<div class="md-source__repository">
|
|||
|
auxolotl/docs
|
|||
|
</div>
|
|||
|
</a>
|
|||
|
</div>
|
|||
|
|
|||
|
<ul class="md-nav__list" data-md-scrollfix>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../../.." class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Aux Documentation Hub
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../../../TODO/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
TODO
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../../Aux/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Aux
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../../Lix/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Lix
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../../NixOS/appstream/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
NixOS
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<div class="md-nav__link md-nav__container">
|
|||
|
<a href="../../" class="md-nav__link ">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Nixpkgs
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
</label>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
|
|||
|
<label class="md-nav__title" for="__nav_6">
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
Nixpkgs
|
|||
|
</label>
|
|||
|
<ul class="md-nav__list" data-md-scrollfix>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../../options/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Options
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Build-Helpers/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Build Helpers
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Development/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Development
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Functions/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Hooks/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Hooks
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Languages-And-Frameworks/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Languages And Frameworks
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_8" checked>
|
|||
|
|
|||
|
|
|||
|
<label class="md-nav__link" for="__nav_6_8" id="__nav_6_8_label" tabindex="0">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Library Reference
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
</label>
|
|||
|
|
|||
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_8_label" aria-expanded="true">
|
|||
|
<label class="md-nav__title" for="__nav_6_8">
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
Library Reference
|
|||
|
</label>
|
|||
|
<ul class="md-nav__list" data-md-scrollfix>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../asserts/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.asserts: assertion functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../attrsets/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.attrsets: attribute set functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../cli/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.cli: command-line serialization functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../customisation/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.customisation: Functions to customise (derivation-related) functions, derivatons, or attribute sets
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../debug/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.debug: debugging functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../derivations/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.derivations: miscellaneous derivation-specific functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../fileset/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.fileset: file set functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../filesystem/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.filesystem: filesystem functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../fixedPoints/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.fixedPoints: explicit recursion functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../generators/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.generators: functions that create file formats from nix data structures
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../gvariant/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.gvariant: GVariant formatted string serialization functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../lists/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.lists: list manipulation functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../meta/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.meta: functions for derivation metadata
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../options/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.options: NixOS / nixpkgs option handling
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../path/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.path: path functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../sources/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.sources: source filtering functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--active">
|
|||
|
|
|||
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.strings: string manipulation functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
</label>
|
|||
|
|
|||
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.strings: string manipulation functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<label class="md-nav__title" for="__toc">
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
Table of contents
|
|||
|
</label>
|
|||
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="#function-library-lib.strings.concatStrings" class="md-nav__link">
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.strings.concatStrings
|
|||
|
</span>
|
|||
|
</a>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="#function-library-lib.strings.concatMapStrings" class="md-nav__link">
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.strings.concatMapStrings
|
|||
|
</span>
|
|||
|
</a>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
</ul>
|
|||
|
|
|||
|
</nav>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../trivial/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.trivial: miscellaneous functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="../versions/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.versions: version string functions
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</ul>
|
|||
|
</nav>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Module-System/module-system.chapter/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Module System
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Packages/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Packages
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Standard-Environment/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Standard Environment
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="../../Using-Nixpkgs/" class="md-nav__link">
|
|||
|
|
|||
|
|
|||
|
<span class="md-ellipsis">
|
|||
|
Using Nixpkgs
|
|||
|
</span>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</ul>
|
|||
|
</nav>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</ul>
|
|||
|
</nav>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|||
|
<div class="md-sidebar__scrollwrap">
|
|||
|
<div class="md-sidebar__inner">
|
|||
|
|
|||
|
|
|||
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<label class="md-nav__title" for="__toc">
|
|||
|
<span class="md-nav__icon md-icon"></span>
|
|||
|
Table of contents
|
|||
|
</label>
|
|||
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="#function-library-lib.strings.concatStrings" class="md-nav__link">
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.strings.concatStrings
|
|||
|
</span>
|
|||
|
</a>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
<li class="md-nav__item">
|
|||
|
<a href="#function-library-lib.strings.concatMapStrings" class="md-nav__link">
|
|||
|
<span class="md-ellipsis">
|
|||
|
lib.strings.concatMapStrings
|
|||
|
</span>
|
|||
|
</a>
|
|||
|
|
|||
|
</li>
|
|||
|
|
|||
|
</ul>
|
|||
|
|
|||
|
</nav>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<div class="md-content" data-md-component="content">
|
|||
|
<article class="md-content__inner md-typeset">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<h1 id="sec-functions-library-strings">lib.strings: string manipulation functions</h1>
|
|||
|
<p>String manipulation functions.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatStrings"><code>lib.strings.concatStrings</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatStrings :: [string] -> string</code></p>
|
|||
|
<p>Concatenate a list of strings.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.concatStrings` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatStrings <span class="p">[</span><span class="s2">"foo"</span> <span class="s2">"bar"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"foobar"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L50">lib/strings.nix:50</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatMapStrings"><code>lib.strings.concatMapStrings</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatMapStrings :: (a -> string) -> [a] -> string</code></p>
|
|||
|
<p>Map a function over a list and concatenate the resulting strings.</p>
|
|||
|
<p><code>f</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsconcatmapstrings-usage-example"><code>lib.strings.concatMapStrings</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatMapStrings <span class="p">(</span>x<span class="p">:</span> <span class="s2">"a"</span> <span class="o">+</span> x<span class="p">)</span> <span class="p">[</span><span class="s2">"foo"</span> <span class="s2">"bar"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"afooabar"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L60">lib/strings.nix:60</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatImapStrings"><code>lib.strings.concatImapStrings</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatImapStrings :: (int -> a -> string) -> [a] -> string</code></p>
|
|||
|
<p>Like <code>concatMapStrings</code> except that the f functions also gets the
|
|||
|
position as a parameter.</p>
|
|||
|
<p><code>f</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsconcatimapstrings-usage-example"><code>lib.strings.concatImapStrings</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatImapStrings <span class="p">(</span>pos<span class="p">:</span> x<span class="p">:</span> <span class="s2">"</span><span class="si">${</span><span class="nb">toString</span> pos<span class="si">}</span><span class="s2">-</span><span class="si">${</span>x<span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="p">[</span><span class="s2">"foo"</span> <span class="s2">"bar"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"1-foo2-bar"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L71">lib/strings.nix:71</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.intersperse"><code>lib.strings.intersperse</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>intersperse :: a -> [a] -> [a]</code></p>
|
|||
|
<p>Place an element between each element of a list</p>
|
|||
|
<p><code>separator</code></p>
|
|||
|
<p>: Separator to add between elements</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: Input list</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsintersperse-usage-example"><code>lib.strings.intersperse</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>intersperse <span class="s2">"/"</span> <span class="p">[</span><span class="s2">"usr"</span> <span class="s2">"local"</span> <span class="s2">"bin"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span><span class="s2">"usr"</span> <span class="s2">"/"</span> <span class="s2">"local"</span> <span class="s2">"/"</span> <span class="s2">"bin"</span><span class="p">]</span><span class="o">.</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L81">lib/strings.nix:81</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatStringsSep"><code>lib.strings.concatStringsSep</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatStringsSep :: string -> [string] -> string</code></p>
|
|||
|
<p>Concatenate a list of strings with a separator between each element</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.concatStringsSep` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatStringsSep <span class="s2">"/"</span> <span class="p">[</span><span class="s2">"usr"</span> <span class="s2">"local"</span> <span class="s2">"bin"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"usr/local/bin"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L98">lib/strings.nix:98</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatMapStringsSep"><code>lib.strings.concatMapStringsSep</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatMapStringsSep :: string -> (a -> string) -> [a] -> string</code></p>
|
|||
|
<p>Maps a function over a list of strings and then concatenates the
|
|||
|
result with the specified separator interspersed between
|
|||
|
elements.</p>
|
|||
|
<p><code>sep</code></p>
|
|||
|
<p>: Separator to add between elements</p>
|
|||
|
<p><code>f</code></p>
|
|||
|
<p>: Function to map over the list</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: List of input strings</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsconcatmapstringssep-usage-example"><code>lib.strings.concatMapStringsSep</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatMapStringsSep <span class="s2">"-"</span> <span class="p">(</span>x<span class="p">:</span> toUpper x<span class="p">)</span> <span class="p">[</span><span class="s2">"foo"</span> <span class="s2">"bar"</span> <span class="s2">"baz"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"FOO-BAR-BAZ"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L110">lib/strings.nix:110</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatImapStringsSep"><code>lib.strings.concatImapStringsSep</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatIMapStringsSep :: string -> (int -> a -> string) -> [a] -> string</code></p>
|
|||
|
<p>Same as <code>concatMapStringsSep</code>, but the mapping function
|
|||
|
additionally receives the position of its argument.</p>
|
|||
|
<p><code>sep</code></p>
|
|||
|
<p>: Separator to add between elements</p>
|
|||
|
<p><code>f</code></p>
|
|||
|
<p>: Function that receives elements and their positions</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: List of input strings</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsconcatimapstringssep-usage-example"><code>lib.strings.concatImapStringsSep</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatImapStringsSep <span class="s2">"-"</span> <span class="p">(</span>pos<span class="p">:</span> x<span class="p">:</span> <span class="nb">toString</span> <span class="p">(</span>x <span class="o">/</span> pos<span class="p">))</span> <span class="p">[</span> <span class="mi">6</span> <span class="mi">6</span> <span class="mi">6</span> <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"6-3-2"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L127">lib/strings.nix:127</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.concatLines"><code>lib.strings.concatLines</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>concatLines :: [string] -> string</code></p>
|
|||
|
<p>Concatenate a list of strings, adding a newline at the end of each one.
|
|||
|
Defined as <code>concatMapStrings (s: s + "\n")</code>.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.concatLines` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>concatLines <span class="p">[</span> <span class="s2">"foo"</span> <span class="s2">"bar"</span> <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"foo</span><span class="se">\n</span><span class="s2">bar</span><span class="se">\n</span><span class="s2">"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L144">lib/strings.nix:144</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.replicate"><code>lib.strings.replicate</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>replicate :: int -> string -> string</code></p>
|
|||
|
<p>Replicate a string n times,
|
|||
|
and concatenate the parts into a new string.</p>
|
|||
|
<p><code>n</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsreplicate-usage-example"><code>lib.strings.replicate</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>replicate <span class="mi">3</span> <span class="s2">"v"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"vvv"</span>
|
|||
|
replicate <span class="mi">5</span> <span class="s2">"hello"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"hellohellohellohellohello"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L158">lib/strings.nix:158</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.makeSearchPath"><code>lib.strings.makeSearchPath</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>makeSearchPath :: string -> [string] -> string</code></p>
|
|||
|
<p>Construct a Unix-style, colon-separated search path consisting of
|
|||
|
the given <code>subDir</code> appended to each of the given paths.</p>
|
|||
|
<p><code>subDir</code></p>
|
|||
|
<p>: Directory name to append</p>
|
|||
|
<p><code>paths</code></p>
|
|||
|
<p>: List of base paths</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsmakesearchpath-usage-example"><code>lib.strings.makeSearchPath</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>makeSearchPath <span class="s2">"bin"</span> <span class="p">[</span><span class="s2">"/root"</span> <span class="s2">"/usr"</span> <span class="s2">"/usr/local"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/root/bin:/usr/bin:/usr/local/bin"</span>
|
|||
|
makeSearchPath <span class="s2">"bin"</span> <span class="p">[</span><span class="s2">""</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/bin"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L171">lib/strings.nix:171</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.makeSearchPathOutput"><code>lib.strings.makeSearchPathOutput</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string -> [package] -> string</code></p>
|
|||
|
<p>Construct a Unix-style search path by appending the given
|
|||
|
<code>subDir</code> to the specified <code>output</code> of each of the packages. If no
|
|||
|
output by the given name is found, fallback to <code>.out</code> and then to
|
|||
|
the default.</p>
|
|||
|
<p><code>output</code></p>
|
|||
|
<p>: Package output to use</p>
|
|||
|
<p><code>subDir</code></p>
|
|||
|
<p>: Directory name to append</p>
|
|||
|
<p><code>pkgs</code></p>
|
|||
|
<p>: List of packages</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsmakesearchpathoutput-usage-example"><code>lib.strings.makeSearchPathOutput</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>makeSearchPathOutput <span class="s2">"dev"</span> <span class="s2">"bin"</span> <span class="p">[</span> pkgs<span class="o">.</span>openssl pkgs<span class="o">.</span>zlib <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/bin:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/bin"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L189">lib/strings.nix:189</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.makeLibraryPath"><code>lib.strings.makeLibraryPath</code></h2>
|
|||
|
<p>Construct a library search path (such as RPATH) containing the
|
|||
|
libraries for a set of packages</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.makeLibraryPath` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>makeLibraryPath <span class="p">[</span> <span class="s2">"/usr"</span> <span class="s2">"/usr/local"</span> <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/usr/lib:/usr/local/lib"</span>
|
|||
|
<span class="ss">pkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l"><nixpkgs></span> <span class="p">{</span> <span class="p">}</span>
|
|||
|
makeLibraryPath <span class="p">[</span> pkgs<span class="o">.</span>openssl pkgs<span class="o">.</span>zlib <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r/lib:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/lib"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L207">lib/strings.nix:207</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.makeIncludePath"><code>lib.strings.makeIncludePath</code></h2>
|
|||
|
<p>Construct an include search path (such as C_INCLUDE_PATH) containing the
|
|||
|
header files for a set of packages or paths.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.makeIncludePath` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>makeIncludePath <span class="p">[</span> <span class="s2">"/usr"</span> <span class="s2">"/usr/local"</span> <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/usr/include:/usr/local/include"</span>
|
|||
|
<span class="ss">pkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l"><nixpkgs></span> <span class="p">{</span> <span class="p">}</span>
|
|||
|
makeIncludePath <span class="p">[</span> pkgs<span class="o">.</span>openssl pkgs<span class="o">.</span>zlib <span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/include:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8-dev/include"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L219">lib/strings.nix:219</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.makeBinPath"><code>lib.strings.makeBinPath</code></h2>
|
|||
|
<p>Construct a binary search path (such as $PATH) containing the
|
|||
|
binaries for a set of packages.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.makeBinPath` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>makeBinPath <span class="p">[</span><span class="s2">"/root"</span> <span class="s2">"/usr"</span> <span class="s2">"/usr/local"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/root/bin:/usr/bin:/usr/local/bin"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L228">lib/strings.nix:228</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.normalizePath"><code>lib.strings.normalizePath</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>normalizePath :: string -> string</code></p>
|
|||
|
<p>Normalize path, removing extraneous /s</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsnormalizepath-usage-example"><code>lib.strings.normalizePath</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>normalizePath <span class="s2">"/a//b///c/"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"/a/b/c/"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L238">lib/strings.nix:238</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.optionalString"><code>lib.strings.optionalString</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>optionalString :: bool -> string -> string</code></p>
|
|||
|
<p>Depending on the boolean `cond', return either the given string
|
|||
|
or the empty string. Useful to concatenate against a bigger string.</p>
|
|||
|
<p><code>cond</code></p>
|
|||
|
<p>: Condition</p>
|
|||
|
<p><code>string</code></p>
|
|||
|
<p>: String to return if condition is true</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsoptionalstring-usage-example"><code>lib.strings.optionalString</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>optionalString <span class="no">true</span> <span class="s2">"some-string"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"some-string"</span>
|
|||
|
optionalString <span class="no">false</span> <span class="s2">"some-string"</span>
|
|||
|
<span class="o">=></span> <span class="s2">""</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L264">lib/strings.nix:264</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.hasPrefix"><code>lib.strings.hasPrefix</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>hasPrefix :: string -> string -> bool</code></p>
|
|||
|
<p>Determine whether a string has given prefix.</p>
|
|||
|
<p><code>pref</code></p>
|
|||
|
<p>: Prefix to check for</p>
|
|||
|
<p><code>str</code></p>
|
|||
|
<p>: Input string</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringshasprefix-usage-example"><code>lib.strings.hasPrefix</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>hasPrefix <span class="s2">"foo"</span> <span class="s2">"foobar"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
hasPrefix <span class="s2">"foo"</span> <span class="s2">"barfoo"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L280">lib/strings.nix:280</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.hasSuffix"><code>lib.strings.hasSuffix</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>hasSuffix :: string -> string -> bool</code></p>
|
|||
|
<p>Determine whether a string has given suffix.</p>
|
|||
|
<p><code>suffix</code></p>
|
|||
|
<p>: Suffix to check for</p>
|
|||
|
<p><code>content</code></p>
|
|||
|
<p>: Input string</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringshassuffix-usage-example"><code>lib.strings.hasSuffix</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>hasSuffix <span class="s2">"foo"</span> <span class="s2">"foobar"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
hasSuffix <span class="s2">"foo"</span> <span class="s2">"barfoo"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L307">lib/strings.nix:307</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.hasInfix"><code>lib.strings.hasInfix</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>hasInfix :: string -> string -> bool</code></p>
|
|||
|
<p>Determine whether a string contains the given infix</p>
|
|||
|
<p><code>infix</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>content</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringshasinfix-usage-example"><code>lib.strings.hasInfix</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>hasInfix <span class="s2">"bc"</span> <span class="s2">"abcd"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
hasInfix <span class="s2">"ab"</span> <span class="s2">"abcd"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
hasInfix <span class="s2">"cd"</span> <span class="s2">"abcd"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
hasInfix <span class="s2">"foo"</span> <span class="s2">"abcd"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L344">lib/strings.nix:344</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.stringToCharacters"><code>lib.strings.stringToCharacters</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>stringToCharacters :: string -> [string]</code></p>
|
|||
|
<p>Convert a string to a list of characters (i.e. singleton strings).
|
|||
|
This allows you to, e.g., map a function over each character. However,
|
|||
|
note that this will likely be horribly inefficient; Nix is not a
|
|||
|
general purpose programming language. Complex string manipulations
|
|||
|
should, if appropriate, be done in a derivation.
|
|||
|
Also note that Nix treats strings as a list of bytes and thus doesn't
|
|||
|
handle unicode.</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsstringtocharacters-usage-example"><code>lib.strings.stringToCharacters</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>stringToCharacters <span class="s2">""</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span> <span class="p">]</span>
|
|||
|
stringToCharacters <span class="s2">"abc"</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span> <span class="s2">"a"</span> <span class="s2">"b"</span> <span class="s2">"c"</span> <span class="p">]</span>
|
|||
|
stringToCharacters <span class="s2">"🦄"</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span> <span class="s2">"<EFBFBD>"</span> <span class="s2">"<EFBFBD>"</span> <span class="s2">"<EFBFBD>"</span> <span class="s2">"<EFBFBD>"</span> <span class="p">]</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L374">lib/strings.nix:374</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.stringAsChars"><code>lib.strings.stringAsChars</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>stringAsChars :: (string -> string) -> string -> string</code></p>
|
|||
|
<p>Manipulate a string character by character and replace them by
|
|||
|
strings before concatenating the results.</p>
|
|||
|
<p><code>f</code></p>
|
|||
|
<p>: Function to map over each individual character</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Input string</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsstringaschars-usage-example"><code>lib.strings.stringAsChars</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>stringAsChars <span class="p">(</span>x<span class="p">:</span> <span class="k">if</span> <span class="ss">x</span> <span class="o">==</span> <span class="s2">"a"</span> <span class="k">then</span> <span class="s2">"i"</span> <span class="k">else</span> x<span class="p">)</span> <span class="s2">"nax"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"nix"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L386">lib/strings.nix:386</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.charToInt"><code>lib.strings.charToInt</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>charToInt :: string -> int</code></p>
|
|||
|
<p>Convert char to ascii value, must be in printable range</p>
|
|||
|
<p><code>c</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringschartoint-usage-example"><code>lib.strings.charToInt</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>charToInt <span class="s2">"A"</span>
|
|||
|
<span class="o">=></span> <span class="mi">65</span>
|
|||
|
charToInt <span class="s2">"("</span>
|
|||
|
<span class="o">=></span> <span class="mi">40</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L405">lib/strings.nix:405</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escape"><code>lib.strings.escape</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>escape :: [string] -> string -> string</code></p>
|
|||
|
<p>Escape occurrence of the elements of <code>list</code> in <code>string</code> by
|
|||
|
prefixing it with a backslash.</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsescape-usage-example"><code>lib.strings.escape</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>escape <span class="p">[</span><span class="s2">"("</span> <span class="s2">")"</span><span class="p">]</span> <span class="s2">"(foo)"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"</span><span class="se">\\</span><span class="s2">(foo</span><span class="se">\\</span><span class="s2">)"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L416">lib/strings.nix:416</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeC"><code>lib.strings.escapeC</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>escapeC = [string] -> string -> string</code></p>
|
|||
|
<p>Escape occurrence of the element of <code>list</code> in <code>string</code> by
|
|||
|
converting to its ASCII value and prefixing it with \x.
|
|||
|
Only works for printable ascii characters.</p>
|
|||
|
<p><code>list</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsescapec-usage-example"><code>lib.strings.escapeC</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeC <span class="p">[</span><span class="s2">" "</span><span class="p">]</span> <span class="s2">"foo bar"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"foo</span><span class="se">\\</span><span class="s2">x20bar"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L429">lib/strings.nix:429</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeURL"><code>lib.strings.escapeURL</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>escapeURL :: string -> string</code></p>
|
|||
|
<p>Escape the string so it can be safely placed inside a URL
|
|||
|
query.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.escapeURL` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeURL <span class="s2">"foo/bar baz"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"foo%2Fbar%20baz"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L440">lib/strings.nix:440</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeShellArg"><code>lib.strings.escapeShellArg</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>escapeShellArg :: string -> string</code></p>
|
|||
|
<p>Quote string to be used safely within the Bourne shell.</p>
|
|||
|
<p><code>arg</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsescapeshellarg-usage-example"><code>lib.strings.escapeShellArg</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeShellArg <span class="s2">"esc'ape</span><span class="se">\n</span><span class="s2">me"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"'esc'</span><span class="se">\\</span><span class="s2">''ape</span><span class="se">\n</span><span class="s2">me'"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L454">lib/strings.nix:454</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeShellArgs"><code>lib.strings.escapeShellArgs</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>escapeShellArgs :: [string] -> string</code></p>
|
|||
|
<p>Quote all arguments to be safely passed to the Bourne shell.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.escapeShellArgs` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeShellArgs <span class="p">[</span><span class="s2">"one"</span> <span class="s2">"two three"</span> <span class="s2">"four'five"</span><span class="p">]</span>
|
|||
|
<span class="o">=></span> <span class="s2">"'one' 'two three' 'four'</span><span class="se">\\</span><span class="s2">''five'"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L464">lib/strings.nix:464</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.isValidPosixName"><code>lib.strings.isValidPosixName</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> bool</code></p>
|
|||
|
<p>Test whether the given name is a valid POSIX shell variable name.</p>
|
|||
|
<p><code>name</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsisvalidposixname-usage-example"><code>lib.strings.isValidPosixName</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>isValidPosixName <span class="s2">"foo_bar000"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
isValidPosixName <span class="s2">"0-bad.jpg"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L476">lib/strings.nix:476</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.toShellVar"><code>lib.strings.toShellVar</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> (string | listOf string | attrsOf string) -> string</code></p>
|
|||
|
<p>Translate a Nix value into a shell variable declaration, with proper escaping.</p>
|
|||
|
<p>The value can be a string (mapped to a regular variable), a list of strings
|
|||
|
(mapped to a Bash-style array) or an attribute set of strings (mapped to a
|
|||
|
Bash-style associative array). Note that "string" includes string-coercible
|
|||
|
values like paths or derivations.</p>
|
|||
|
<p>Strings are translated into POSIX sh-compatible code; lists and attribute sets
|
|||
|
assume a shell that understands Bash syntax (e.g. Bash or ZSH).</p>
|
|||
|
<p><code>name</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>value</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringstoshellvar-usage-example"><code>lib.strings.toShellVar</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code><span class="s s-Multiline">''</span>
|
|||
|
<span class="s s-Multiline"> </span><span class="si">${</span>toShellVar <span class="s2">"foo"</span> <span class="s2">"some string"</span><span class="si">}</span>
|
|||
|
<span class="s s-Multiline"> [[ "$foo" == "some string" ]]</span>
|
|||
|
<span class="s s-Multiline">''</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L496">lib/strings.nix:496</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.toShellVars"><code>lib.strings.toShellVars</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>attrsOf (string | listOf string | attrsOf string) -> string</code></p>
|
|||
|
<p>Translate an attribute set into corresponding shell variable declarations
|
|||
|
using <code>toShellVar</code>.</p>
|
|||
|
<p><code>vars</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringstoshellvars-usage-example"><code>lib.strings.toShellVars</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code><span class="k">let</span>
|
|||
|
<span class="ss">foo</span> <span class="o">=</span> <span class="s2">"value"</span><span class="p">;</span>
|
|||
|
<span class="ss">bar</span> <span class="o">=</span> foo<span class="p">;</span>
|
|||
|
<span class="k">in</span> <span class="s s-Multiline">''</span>
|
|||
|
<span class="s s-Multiline"> </span><span class="si">${</span>toShellVars <span class="p">{</span> <span class="k">inherit</span> foo bar<span class="p">;</span> <span class="p">}</span><span class="si">}</span>
|
|||
|
<span class="s s-Multiline"> [[ "$foo" == "$bar" ]]</span>
|
|||
|
<span class="s s-Multiline">''</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L524">lib/strings.nix:524</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeNixString"><code>lib.strings.escapeNixString</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string</code></p>
|
|||
|
<p>Turn a string into a Nix expression representing that string</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsescapenixstring-usage-example"><code>lib.strings.escapeNixString</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeNixString <span class="s2">"hello</span><span class="se">\$</span><span class="s2">{}</span><span class="se">\n</span><span class="s2">"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"</span><span class="se">\"</span><span class="s2">hello</span><span class="se">\\\$</span><span class="s2">{}</span><span class="se">\\</span><span class="s2">n</span><span class="se">\"</span><span class="s2">"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L534">lib/strings.nix:534</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeRegex"><code>lib.strings.escapeRegex</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string</code></p>
|
|||
|
<p>Turn a string into an exact regular expression</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.escapeRegex` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeRegex <span class="s2">"[^a-z]*"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"</span><span class="se">\\</span><span class="s2">[</span><span class="se">\\</span><span class="s2">^a-z]</span><span class="se">\\</span><span class="s2">*"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L544">lib/strings.nix:544</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeNixIdentifier"><code>lib.strings.escapeNixIdentifier</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string</code></p>
|
|||
|
<p>Quotes a string if it can't be used as an identifier directly.</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsescapenixidentifier-usage-example"><code>lib.strings.escapeNixIdentifier</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeNixIdentifier <span class="s2">"hello"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"hello"</span>
|
|||
|
escapeNixIdentifier <span class="s2">"0abc"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"</span><span class="se">\"</span><span class="s2">0abc</span><span class="se">\"</span><span class="s2">"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L556">lib/strings.nix:556</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.escapeXML"><code>lib.strings.escapeXML</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string</code></p>
|
|||
|
<p>Escapes a string such that it is safe to include verbatim in an XML
|
|||
|
document.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.escapeXML` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>escapeXML <span class="s s-Multiline">''"test" 'test' < & >''</span>
|
|||
|
<span class="o">=></span> <span class="s2">"&quot;test&quot; &apos;test&apos; &lt; &amp; &gt;"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L570">lib/strings.nix:570</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.toLower"><code>lib.strings.toLower</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>toLower :: string -> string</code></p>
|
|||
|
<p>Converts an ASCII string to lower-case.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.toLower` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>toLower <span class="s2">"HOME"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"home"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L589">lib/strings.nix:589</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.toUpper"><code>lib.strings.toUpper</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>toUpper :: string -> string</code></p>
|
|||
|
<p>Converts an ASCII string to upper-case.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.toUpper` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>toUpper <span class="s2">"home"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"HOME"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L599">lib/strings.nix:599</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.addContextFrom"><code>lib.strings.addContextFrom</code></h2>
|
|||
|
<p>Appends string context from another string. This is an implementation
|
|||
|
detail of Nix and should be used carefully.</p>
|
|||
|
<p>Strings in Nix carry an invisible <code>context</code> which is a list of strings
|
|||
|
representing store paths. If the string is later used in a derivation
|
|||
|
attribute, the derivation will properly populate the inputDrvs and
|
|||
|
inputSrcs.</p>
|
|||
|
<p><code>a</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>b</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsaddcontextfrom-usage-example"><code>lib.strings.addContextFrom</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code><span class="ss">pkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l"><nixpkgs></span> <span class="p">{</span> <span class="p">};</span>
|
|||
|
addContextFrom pkgs<span class="o">.</span>coreutils <span class="s2">"bar"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"bar"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L614">lib/strings.nix:614</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.splitString"><code>lib.strings.splitString</code></h2>
|
|||
|
<p>Cut a string with a separator and produces a list of strings which
|
|||
|
were separated by this separator.</p>
|
|||
|
<p><code>sep</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>s</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringssplitstring-usage-example"><code>lib.strings.splitString</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>splitString <span class="s2">"."</span> <span class="s2">"foo.bar.baz"</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span> <span class="s2">"foo"</span> <span class="s2">"bar"</span> <span class="s2">"baz"</span> <span class="p">]</span>
|
|||
|
splitString <span class="s2">"/"</span> <span class="s2">"/usr/local/bin"</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span> <span class="s2">""</span> <span class="s2">"usr"</span> <span class="s2">"local"</span> <span class="s2">"bin"</span> <span class="p">]</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L625">lib/strings.nix:625</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.removePrefix"><code>lib.strings.removePrefix</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string -> string</code></p>
|
|||
|
<p>Return a string without the specified prefix, if the prefix matches.</p>
|
|||
|
<p><code>prefix</code></p>
|
|||
|
<p>: Prefix to remove if it matches</p>
|
|||
|
<p><code>str</code></p>
|
|||
|
<p>: Input string</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsremoveprefix-usage-example"><code>lib.strings.removePrefix</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>removePrefix <span class="s2">"foo."</span> <span class="s2">"foo.bar.baz"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"bar.baz"</span>
|
|||
|
removePrefix <span class="s2">"xxx"</span> <span class="s2">"foo.bar.baz"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"foo.bar.baz"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L641">lib/strings.nix:641</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.removeSuffix"><code>lib.strings.removeSuffix</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> string -> string</code></p>
|
|||
|
<p>Return a string without the specified suffix, if the suffix matches.</p>
|
|||
|
<p><code>suffix</code></p>
|
|||
|
<p>: Suffix to remove if it matches</p>
|
|||
|
<p><code>str</code></p>
|
|||
|
<p>: Input string</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsremovesuffix-usage-example"><code>lib.strings.removeSuffix</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>removeSuffix <span class="s2">"front"</span> <span class="s2">"homefront"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"home"</span>
|
|||
|
removeSuffix <span class="s2">"xxx"</span> <span class="s2">"homefront"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"homefront"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L674">lib/strings.nix:674</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.versionOlder"><code>lib.strings.versionOlder</code></h2>
|
|||
|
<p>Return true if string v1 denotes a version older than v2.</p>
|
|||
|
<p><code>v1</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>v2</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsversionolder-usage-example"><code>lib.strings.versionOlder</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>versionOlder <span class="s2">"1.1"</span> <span class="s2">"1.2"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
versionOlder <span class="s2">"1.1"</span> <span class="s2">"1.1"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L705">lib/strings.nix:705</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.versionAtLeast"><code>lib.strings.versionAtLeast</code></h2>
|
|||
|
<p>Return true if string v1 denotes a version equal to or newer than v2.</p>
|
|||
|
<p><code>v1</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>v2</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsversionatleast-usage-example"><code>lib.strings.versionAtLeast</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>versionAtLeast <span class="s2">"1.1"</span> <span class="s2">"1.0"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
versionAtLeast <span class="s2">"1.1"</span> <span class="s2">"1.1"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
versionAtLeast <span class="s2">"1.1"</span> <span class="s2">"1.2"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L717">lib/strings.nix:717</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.getName"><code>lib.strings.getName</code></h2>
|
|||
|
<p>This function takes an argument that's either a derivation or a
|
|||
|
derivation's "name" attribute and extracts the name part from that
|
|||
|
argument.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.getName` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>getName <span class="s2">"youtube-dl-2016.01.01"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"youtube-dl"</span>
|
|||
|
getName pkgs<span class="o">.</span><span class="ss">youtube-dl</span>
|
|||
|
<span class="o">=></span> <span class="s2">"youtube-dl"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L729">lib/strings.nix:729</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.getVersion"><code>lib.strings.getVersion</code></h2>
|
|||
|
<p>This function takes an argument that's either a derivation or a
|
|||
|
derivation's "name" attribute and extracts the version part from that
|
|||
|
argument.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.getVersion` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>getVersion <span class="s2">"youtube-dl-2016.01.01"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"2016.01.01"</span>
|
|||
|
getVersion pkgs<span class="o">.</span><span class="ss">youtube-dl</span>
|
|||
|
<span class="o">=></span> <span class="s2">"2016.01.01"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L746">lib/strings.nix:746</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.nameFromURL"><code>lib.strings.nameFromURL</code></h2>
|
|||
|
<p>Extract name with version from URL. Ask for separator which is
|
|||
|
supposed to start extension.</p>
|
|||
|
<p><code>url</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>sep</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsnamefromurl-usage-example"><code>lib.strings.nameFromURL</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>nameFromURL <span class="s2">"https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2"</span> <span class="s2">"-"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"nix"</span>
|
|||
|
nameFromURL <span class="s2">"https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2"</span> <span class="s2">"_"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"nix-1.7-x86"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L762">lib/strings.nix:762</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.cmakeOptionType"><code>lib.strings.cmakeOptionType</code></h2>
|
|||
|
<p><strong>Type</strong>:
|
|||
|
<div class="highlight"><pre><span></span><code>cmakeOptionType :: string -> string -> string -> string
|
|||
|
|
|||
|
@param feature The feature to be set
|
|||
|
@param type The type of the feature to be set, as described in
|
|||
|
https://cmake.org/cmake/help/latest/command/set.html
|
|||
|
the possible values (case insensitive) are:
|
|||
|
BOOL FILEPATH PATH STRING INTERNAL
|
|||
|
@param value The desired value
|
|||
|
</code></pre></div></p>
|
|||
|
<p>Create a "-D<feature>:<type>=<value>" string that can be passed to typical
|
|||
|
CMake invocations.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.cmakeOptionType` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>cmakeOptionType <span class="s2">"string"</span> <span class="s2">"ENGINE"</span> <span class="s2">"sdl2"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-DENGINE:STRING=sdl2"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L785">lib/strings.nix:785</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.cmakeBool"><code>lib.strings.cmakeBool</code></h2>
|
|||
|
<p><strong>Type</strong>:
|
|||
|
<div class="highlight"><pre><span></span><code>cmakeBool :: string -> bool -> string
|
|||
|
|
|||
|
@param condition The condition to be made true or false
|
|||
|
@param flag The controlling flag of the condition
|
|||
|
</code></pre></div></p>
|
|||
|
<p>Create a -D<condition>={TRUE,FALSE} string that can be passed to typical
|
|||
|
CMake invocations.</p>
|
|||
|
<p><code>condition</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringscmakebool-usage-example"><code>lib.strings.cmakeBool</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>cmakeBool <span class="s2">"ENABLE_STATIC_LIBS"</span> <span class="no">false</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-DENABLESTATIC_LIBS:BOOL=FALSE"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L805">lib/strings.nix:805</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.cmakeFeature"><code>lib.strings.cmakeFeature</code></h2>
|
|||
|
<p><strong>Type</strong>:
|
|||
|
<div class="highlight"><pre><span></span><code>cmakeFeature :: string -> string -> string
|
|||
|
|
|||
|
@param condition The condition to be made true or false
|
|||
|
@param flag The controlling flag of the condition
|
|||
|
</code></pre></div></p>
|
|||
|
<p>Create a -D<feature>:STRING=<value> string that can be passed to typical
|
|||
|
CMake invocations.
|
|||
|
This is the most typical usage, so it deserves a special case.</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>value</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringscmakefeature-usage-example"><code>lib.strings.cmakeFeature</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>cmakeFeature <span class="s2">"MODULES"</span> <span class="s2">"badblock"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-DMODULES:STRING=badblock"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L823">lib/strings.nix:823</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.mesonOption"><code>lib.strings.mesonOption</code></h2>
|
|||
|
<p><strong>Type</strong>:
|
|||
|
<div class="highlight"><pre><span></span><code>mesonOption :: string -> string -> string
|
|||
|
|
|||
|
@param feature The feature to be set
|
|||
|
@param value The desired value
|
|||
|
</code></pre></div></p>
|
|||
|
<p>Create a -D<feature>=<value> string that can be passed to typical Meson
|
|||
|
invocations.</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>value</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsmesonoption-usage-example"><code>lib.strings.mesonOption</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>mesonOption <span class="s2">"engine"</span> <span class="s2">"opengl"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-Dengine=opengl"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L840">lib/strings.nix:840</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.mesonBool"><code>lib.strings.mesonBool</code></h2>
|
|||
|
<p><strong>Type</strong>:
|
|||
|
<div class="highlight"><pre><span></span><code>mesonBool :: string -> bool -> string
|
|||
|
|
|||
|
@param condition The condition to be made true or false
|
|||
|
@param flag The controlling flag of the condition
|
|||
|
</code></pre></div></p>
|
|||
|
<p>Create a -D<condition>={true,false} string that can be passed to typical
|
|||
|
Meson invocations.</p>
|
|||
|
<p><code>condition</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsmesonbool-usage-example"><code>lib.strings.mesonBool</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>mesonBool <span class="s2">"hardened"</span> <span class="no">true</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-Dhardened=true"</span>
|
|||
|
mesonBool <span class="s2">"static"</span> <span class="no">false</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-Dstatic=false"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L859">lib/strings.nix:859</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.mesonEnable"><code>lib.strings.mesonEnable</code></h2>
|
|||
|
<p><strong>Type</strong>:
|
|||
|
<div class="highlight"><pre><span></span><code>mesonEnable :: string -> bool -> string
|
|||
|
|
|||
|
@param feature The feature to be enabled or disabled
|
|||
|
@param flag The controlling flag
|
|||
|
</code></pre></div></p>
|
|||
|
<p>Create a -D<feature>={enabled,disabled} string that can be passed to
|
|||
|
typical Meson invocations.</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsmesonenable-usage-example"><code>lib.strings.mesonEnable</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>mesonEnable <span class="s2">"docs"</span> <span class="no">true</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-Ddocs=enabled"</span>
|
|||
|
mesonEnable <span class="s2">"savage"</span> <span class="no">false</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-Dsavage=disabled"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L878">lib/strings.nix:878</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.enableFeature"><code>lib.strings.enableFeature</code></h2>
|
|||
|
<p>Create an --{enable,disable}-<feature> string that can be passed to
|
|||
|
standard GNU Autoconf scripts.</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsenablefeature-usage-example"><code>lib.strings.enableFeature</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>enableFeature <span class="no">true</span> <span class="s2">"shared"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--enable-shared"</span>
|
|||
|
enableFeature <span class="no">false</span> <span class="s2">"shared"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--disable-shared"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L892">lib/strings.nix:892</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.enableFeatureAs"><code>lib.strings.enableFeatureAs</code></h2>
|
|||
|
<p>Create an --{enable-<feature>=<value>,disable-<feature>} string that can be passed to
|
|||
|
standard GNU Autoconf scripts.</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>value</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsenablefeatureas-usage-example"><code>lib.strings.enableFeatureAs</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>enableFeatureAs <span class="no">true</span> <span class="s2">"shared"</span> <span class="s2">"foo"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--enable-shared=foo"</span>
|
|||
|
enableFeatureAs <span class="no">false</span> <span class="s2">"shared"</span> <span class="p">(</span><span class="nb">throw</span> <span class="s2">"ignored"</span><span class="p">)</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--disable-shared"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L906">lib/strings.nix:906</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.withFeature"><code>lib.strings.withFeature</code></h2>
|
|||
|
<p>Create an --{with,without}-<feature> string that can be passed to
|
|||
|
standard GNU Autoconf scripts.</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringswithfeature-usage-example"><code>lib.strings.withFeature</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>withFeature <span class="no">true</span> <span class="s2">"shared"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--with-shared"</span>
|
|||
|
withFeature <span class="no">false</span> <span class="s2">"shared"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--without-shared"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L918">lib/strings.nix:918</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.withFeatureAs"><code>lib.strings.withFeatureAs</code></h2>
|
|||
|
<p>Create an --{with-<feature>=<value>,without-<feature>} string that can be passed to
|
|||
|
standard GNU Autoconf scripts.</p>
|
|||
|
<p><code>flag</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>feature</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>value</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringswithfeatureas-usage-example"><code>lib.strings.withFeatureAs</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>withFeatureAs <span class="no">true</span> <span class="s2">"shared"</span> <span class="s2">"foo"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--with-shared=foo"</span>
|
|||
|
withFeatureAs <span class="no">false</span> <span class="s2">"shared"</span> <span class="p">(</span><span class="nb">throw</span> <span class="s2">"ignored"</span><span class="p">)</span>
|
|||
|
<span class="o">=></span> <span class="s2">"--without-shared"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L931">lib/strings.nix:931</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.fixedWidthString"><code>lib.strings.fixedWidthString</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>fixedWidthString :: int -> string -> string -> string</code></p>
|
|||
|
<p>Create a fixed width string with additional prefix to match
|
|||
|
required width.</p>
|
|||
|
<p>This function will fail if the input string is longer than the
|
|||
|
requested length.</p>
|
|||
|
<p><code>width</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>filler</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>str</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsfixedwidthstring-usage-example"><code>lib.strings.fixedWidthString</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>fixedWidthString <span class="mi">5</span> <span class="s2">"0"</span> <span class="p">(</span><span class="nb">toString</span> <span class="mi">15</span><span class="p">)</span>
|
|||
|
<span class="o">=></span> <span class="s2">"00015"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L946">lib/strings.nix:946</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.fixedWidthNumber"><code>lib.strings.fixedWidthNumber</code></h2>
|
|||
|
<p>Format a number adding leading zeroes up to fixed width.</p>
|
|||
|
<p><code>width</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>n</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsfixedwidthnumber-usage-example"><code>lib.strings.fixedWidthNumber</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>fixedWidthNumber <span class="mi">5</span> <span class="mi">15</span>
|
|||
|
<span class="o">=></span> <span class="s2">"00015"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L963">lib/strings.nix:963</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.floatToString"><code>lib.strings.floatToString</code></h2>
|
|||
|
<p>Convert a float to a string, but emit a warning when precision is lost
|
|||
|
during the conversion</p>
|
|||
|
<p><code>float</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsfloattostring-usage-example"><code>lib.strings.floatToString</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>floatToString <span class="mf">0.000001</span>
|
|||
|
<span class="o">=></span> <span class="s2">"0.000001"</span>
|
|||
|
floatToString <span class="mf">0.0000001</span>
|
|||
|
<span class="o">=></span> trace<span class="p">:</span> warning<span class="p">:</span> Imprecise conversion from float to string <span class="mf">0.000000</span>
|
|||
|
<span class="s2">"0.000000"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L975">lib/strings.nix:975</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.isCoercibleToString"><code>lib.strings.isCoercibleToString</code></h2>
|
|||
|
<p>Soft-deprecated function. While the original implementation is available as
|
|||
|
isConvertibleWithToString, consider using isStringLike instead, if suitable.</p>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L983">lib/strings.nix:983</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.isConvertibleWithToString"><code>lib.strings.isConvertibleWithToString</code></h2>
|
|||
|
<p>Check whether a list or other value can be passed to toString.</p>
|
|||
|
<p>Many types of value are coercible to string this way, including int, float,
|
|||
|
null, bool, list of similarly coercible values.</p>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L992">lib/strings.nix:992</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.isStringLike"><code>lib.strings.isStringLike</code></h2>
|
|||
|
<p>Check whether a value can be coerced to a string.
|
|||
|
The value must be a string, path, or attribute set.</p>
|
|||
|
<p>String-like values can be used without explicit conversion in
|
|||
|
string interpolations and in most functions that expect a string.</p>
|
|||
|
<p><code>x</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1005">lib/strings.nix:1005</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.isStorePath"><code>lib.strings.isStorePath</code></h2>
|
|||
|
<p>Check whether a value is a store path.</p>
|
|||
|
<p><code>x</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsisstorepath-usage-example"><code>lib.strings.isStorePath</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>isStorePath <span class="s2">"/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11/bin/python"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
isStorePath <span class="s2">"/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
isStorePath pkgs<span class="o">.</span><span class="ss">python</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
isStorePath <span class="p">[]</span> <span class="o">||</span> isStorePath <span class="mi">42</span> <span class="o">||</span> isStorePath <span class="p">{}</span> <span class="o">||</span> <span class="err">…</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1023">lib/strings.nix:1023</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.toInt"><code>lib.strings.toInt</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> int</code></p>
|
|||
|
<p>Parse a string as an int. Does not support parsing of integers with preceding zero due to
|
|||
|
ambiguity between zero-padded and octal numbers. See toIntBase10.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.toInt` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>toInt <span class="s2">"1337"</span>
|
|||
|
<span class="o">=></span> <span class="mi">1337</span>
|
|||
|
|
|||
|
toInt <span class="s2">"-4"</span>
|
|||
|
<span class="o">=></span> <span class="mi">-4</span>
|
|||
|
|
|||
|
toInt <span class="s2">" 123 "</span>
|
|||
|
<span class="o">=></span> <span class="mi">123</span>
|
|||
|
|
|||
|
toInt <span class="s2">"00024"</span>
|
|||
|
<span class="o">=></span> error<span class="p">:</span> Ambiguity <span class="k">in</span> interpretation of <span class="mi">00024</span> between octal <span class="ow">and</span> zero padded integer<span class="o">.</span>
|
|||
|
|
|||
|
toInt <span class="s2">"3.14"</span>
|
|||
|
<span class="o">=></span> error<span class="p">:</span> floating point JSON numbers are not supported
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1053">lib/strings.nix:1053</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.toIntBase10"><code>lib.strings.toIntBase10</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>string -> int</code></p>
|
|||
|
<p>Parse a string as a base 10 int. This supports parsing of zero-padded integers.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.toIntBase10` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>toIntBase10 <span class="s2">"1337"</span>
|
|||
|
<span class="o">=></span> <span class="mi">1337</span>
|
|||
|
|
|||
|
toIntBase10 <span class="s2">"-4"</span>
|
|||
|
<span class="o">=></span> <span class="mi">-4</span>
|
|||
|
|
|||
|
toIntBase10 <span class="s2">" 123 "</span>
|
|||
|
<span class="o">=></span> <span class="mi">123</span>
|
|||
|
|
|||
|
toIntBase10 <span class="s2">"00024"</span>
|
|||
|
<span class="o">=></span> <span class="mi">24</span>
|
|||
|
|
|||
|
toIntBase10 <span class="s2">"3.14"</span>
|
|||
|
<span class="o">=></span> error<span class="p">:</span> floating point JSON numbers are not supported
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1106">lib/strings.nix:1106</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.readPathsFromFile"><code>lib.strings.readPathsFromFile</code></h2>
|
|||
|
<p>Read a list of paths from <code>file</code>, relative to the <code>rootPath</code>.
|
|||
|
Lines beginning with <code>#</code> are treated as comments and ignored.
|
|||
|
Whitespace is significant.</p>
|
|||
|
<p>NOTE: This function is not performant and should be avoided.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.readPathsFromFile` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>readPathsFromFile <span class="l">/prefix</span>
|
|||
|
<span class="l">./pkgs/development/libraries/qt-5/5.4/qtbase/series</span>
|
|||
|
<span class="o">=></span> <span class="p">[</span> <span class="s2">"/prefix/dlopen-resolv.patch"</span> <span class="s2">"/prefix/tzdir.patch"</span>
|
|||
|
<span class="s2">"/prefix/dlopen-libXcursor.patch"</span> <span class="s2">"/prefix/dlopen-openssl.patch"</span>
|
|||
|
<span class="s2">"/prefix/dlopen-dbus.patch"</span> <span class="s2">"/prefix/xdg-config-dirs.patch"</span>
|
|||
|
<span class="s2">"/prefix/nix-profiles-library-paths.patch"</span>
|
|||
|
<span class="s2">"/prefix/compose-search-path.patch"</span> <span class="p">]</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1154">lib/strings.nix:1154</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.fileContents"><code>lib.strings.fileContents</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>fileContents :: path -> string</code></p>
|
|||
|
<p>Read the contents of a file removing the trailing \n</p>
|
|||
|
<p><code>file</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringsfilecontents-usage-example"><code>lib.strings.fileContents</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code><span class="err">$</span> echo <span class="s2">"1.0"</span> <span class="o">></span> <span class="l">./version</span>
|
|||
|
|
|||
|
fileContents <span class="l">./version</span>
|
|||
|
<span class="o">=></span> <span class="s2">"1.0"</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1174">lib/strings.nix:1174</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.sanitizeDerivationName"><code>lib.strings.sanitizeDerivationName</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>sanitizeDerivationName :: String -> String</code></p>
|
|||
|
<p>Creates a valid derivation name from a potentially invalid one.</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.sanitizeDerivationName` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>sanitizeDerivationName <span class="s2">"../hello.bar # foo"</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-hello.bar-foo"</span>
|
|||
|
sanitizeDerivationName <span class="s2">""</span>
|
|||
|
<span class="o">=></span> <span class="s2">"unknown"</span>
|
|||
|
sanitizeDerivationName pkgs<span class="o">.</span><span class="ss">hello</span>
|
|||
|
<span class="o">=></span> <span class="s2">"-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10"</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1189">lib/strings.nix:1189</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.levenshtein"><code>lib.strings.levenshtein</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>levenshtein :: string -> string -> int</code></p>
|
|||
|
<p>Computes the Levenshtein distance between two strings.
|
|||
|
Complexity O(n*m) where n and m are the lengths of the strings.
|
|||
|
Algorithm adjusted from https://stackoverflow.com/a/9750974/6605742</p>
|
|||
|
<p><code>a</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>b</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<h1 id="libstringslevenshtein-usage-example"><code>lib.strings.levenshtein</code> usage example</h1>
|
|||
|
</div>
|
|||
|
<div class="highlight"><pre><span></span><code>levenshtein <span class="s2">"foo"</span> <span class="s2">"foo"</span>
|
|||
|
<span class="o">=></span> <span class="mi">0</span>
|
|||
|
levenshtein <span class="s2">"book"</span> <span class="s2">"hook"</span>
|
|||
|
<span class="o">=></span> <span class="mi">1</span>
|
|||
|
levenshtein <span class="s2">"hello"</span> <span class="s2">"Heyo"</span>
|
|||
|
<span class="o">=></span> <span class="mi">3</span>
|
|||
|
</code></pre></div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1228">lib/strings.nix:1228</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.commonPrefixLength"><code>lib.strings.commonPrefixLength</code></h2>
|
|||
|
<p>Returns the length of the prefix common to both strings.</p>
|
|||
|
<p><code>a</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>b</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1249">lib/strings.nix:1249</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.commonSuffixLength"><code>lib.strings.commonSuffixLength</code></h2>
|
|||
|
<p>Returns the length of the suffix common to both strings.</p>
|
|||
|
<p><code>a</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p><code>b</code></p>
|
|||
|
<p>: Function argument</p>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1257">lib/strings.nix:1257</a> in <code><nixpkgs></code>.</p>
|
|||
|
<h2 id="function-library-lib.strings.levenshteinAtMost"><code>lib.strings.levenshteinAtMost</code></h2>
|
|||
|
<p><strong>Type</strong>: <code>levenshteinAtMost :: int -> string -> string -> bool</code></p>
|
|||
|
<p>Returns whether the levenshtein distance between two strings is at most some value
|
|||
|
Complexity is O(min(n,m)) for k <= 2 and O(n*m) otherwise</p>
|
|||
|
<div class="admonition example">
|
|||
|
<p class="admonition-title">Example</p>
|
|||
|
<div class="highlight"><pre><span></span><code># `lib.strings.levenshteinAtMost` usage example
|
|||
|
</code></pre></div>
|
|||
|
<div class="highlight"><pre><span></span><code>levenshteinAtMost <span class="mi">0</span> <span class="s2">"foo"</span> <span class="s2">"foo"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
levenshteinAtMost <span class="mi">1</span> <span class="s2">"foo"</span> <span class="s2">"boa"</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
levenshteinAtMost <span class="mi">2</span> <span class="s2">"foo"</span> <span class="s2">"boa"</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
levenshteinAtMost <span class="mi">2</span> <span class="s2">"This is a sentence"</span> <span class="s2">"this is a sentense."</span>
|
|||
|
<span class="o">=></span> <span class="no">false</span>
|
|||
|
levenshteinAtMost <span class="mi">3</span> <span class="s2">"This is a sentence"</span> <span class="s2">"this is a sentense."</span>
|
|||
|
<span class="o">=></span> <span class="no">true</span>
|
|||
|
</code></pre></div>
|
|||
|
</div>
|
|||
|
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1281">lib/strings.nix:1281</a> in <code><nixpkgs></code>.</p>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</article>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|||
|
</div>
|
|||
|
|
|||
|
</main>
|
|||
|
|
|||
|
<footer class="md-footer">
|
|||
|
|
|||
|
<div class="md-footer-meta md-typeset">
|
|||
|
<div class="md-footer-meta__inner md-grid">
|
|||
|
<div class="md-copyright">
|
|||
|
|
|||
|
<div class="md-copyright__highlight">
|
|||
|
Licenced MIT
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
Made with
|
|||
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|||
|
Material for MkDocs
|
|||
|
</a>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="md-social">
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="https://git.auxolotl.org/auxolotl/docs" target="_blank" rel="noopener" title="Aux Docs Repo" class="md-social__link">
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="https://forum.aux.computer/" target="_blank" rel="noopener" title="Aux Forum" class="md-social__link">
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"/></svg>
|
|||
|
</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a href="https://wiki.auxolotl.org/" target="_blank" rel="noopener" title="Aux Wiki" class="md-social__link">
|
|||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.801 13.557c.148.098.288.202.417.313 1.854 1.6 3.127 4.656 2.582 7.311-1.091-.255-5.747-1.055-7.638-3.383-.91-1.12-1.366-2.081-1.569-2.885a5.65 5.65 0 0 0 .034-.219c.089.198.197.35.313.466.24.24.521.335.766.372.304.046.594-.006.806-.068l.001.001c.05-.015.433-.116.86-.342.325-.173 2.008-.931 3.428-1.566Zm-7.384 1.435C9.156 16.597 6.6 18.939.614 18.417c.219-1.492 1.31-3.019 2.51-4.11.379-.345.906-.692 1.506-1.009.286.168.598.332.939.486 2.689 1.221 3.903 1.001 4.89.573a1.3 1.3 0 0 0 .054-.025 6.156 6.156 0 0 0-.096.66Zm4.152-.462c.38-.341.877-.916 1.383-1.559-.389-.15-.866-.371-1.319-.591-.598-.29-1.305-.283-2.073-.315a4.685 4.685 0 0 1-.804-.103c.014-.123.027-.246.038-.369.062.104.673.057.871.057.354 0 1.621.034 3.074-.574 1.452-.608 2.55-1.706 3.022-3.225.474-1.52.22-3.091-.168-3.952-.169.709-1.453 2.381-1.926 2.871-.473.489-2.381 2.296-2.972 2.921-.7.74-.688.793-1.332 1.302-.202.19-.499.402-.563.53.027-.338.039-.675.027-.997a7.653 7.653 0 0 0-.032-.523c.322-.059.567-.522.567-.861 0-.224-.106-.247-.271-.229.075-.894.382-3.923 1.254-4.281.218.109.831.068.649-.295-.182-.364-.825-.074-1.081.266-.28.374-.956 2.046-.92 4.324-.113.014-.174.033-.322.033-.171 0-.321-.04-.433-.05.034-2.275-.714-3.772-.84-4.169-.12-.375-.491-.596-.781-.596-.146 0-.272.056-.333.179-.182.363.459.417.677.308.706.321 1.156 3.519 1.254 4.277-.125-.006-.199.035-.199.233 0 .311.17.756.452.843a.442.442 0 0 0-.007.03s-.287.99-.413 2.189a4.665 4.665 0 0 1-.718-.225c-.714-.286-1.355-.583-2.019-.566-.664.018-1.366.023-1.804-.036-.438-.058-.649-.15-.649-.15s-.234.365.257 1.075c.42.607 1.055 1.047 1.644 1.18.589.134 1.972.18 2.785-.377.16-.109.317-.228.459-.34a8.717 8.717 0 0 0-.013.626c-.289.753-.571 1.993-.268 3.338 0-.001.701-.842.787-2.958.006-.144.009-.271.01-.383.052-.248.103-.518.148-.799.072.135.151.277.234.413.511.842 1.791 1.37 2.383 1.49.091.019.187.032.285.038Zm-1.12.745c-.188.055-.445.1-.713.059-.21-.031-.45-.11-.655-.316-.169-.168-.312-.419-.401-.789a9.837 9.837 0 0 0 .039-.82l.049-.243c.563.855 1.865 1.398 2.476 1.522.036.008.072.014.109.02l-.013.009c-.579.415-.76.503-.891.558Zm6.333-2.818c-.257.114-4.111 1.822-5.246 2.363.98-.775 3.017-3.59 3.699-4.774 1.062.661 1.468 1.109 1.623 1.441.101.217.09.38.096.515a.57.57 0 0 1-.172.455Zm-9.213 1.62a1.606 1.606 0 0 1-.19.096c-.954.414-2.126.61-4.728-.571-2.023-.918-3.024-2.157-3.371-2.666.476.161 1.471.473 2.157.524.282.021.703.068 1.167.125.021.209.109.486.345.829l.001.001c.451.651 1.134 1.119 1.765 1.262.622.141 2.083.182 2.942-.407a3.12 3.12 0 0 0 .132-.093l.001.179a6.052 6.052 0 0 0-.221.721Zm5.512-1.271a17.49 17.49 0 0 1-1.326-.589c.437.042 1.054.083 1.692.108-.121.162-.244.323-.366.481Zm.932-1.26c-.12.17-.245.343-.373.517-.241.018-.478.03-.709.038a29.05 29.05 0 0 1-.741-.048c.608-.065 1.228-.252 1.823-.507Zm.22-.315c-.809.382-1.679.648-2.507.648-.472 0-.833.018-1.139.039v.001c-.324-.031-.665-.039-1.019-.054a3.555 3.555 0 0 1-.152-.009c.102-.002.192-.006.249-.006.363 0 1.662.034 3.151-.589 1.508-.632 2.645-1.773 3.136-3.351.37-1.186.31-2.402.086-3.312.458-.336.86-.651 1.147-.91.501-.451.743-.733.848-.869.199.206.714.864.685 2.138-.036 1.611-.606 3.187-1.501 4.154a9.099 9.099 0 0 1-1.321 1.132 11.978 11.978 0 0 0-.644-.422l-.089-.055-.051.091c-.184.332-.5.825-.879 1.374ZM4.763 5.817c-.157 1.144.113 2.323.652 3.099.539.776 2.088 2.29 3.614 2.505.991.14 2.055.134 2.055.134s-.593-.576-1.114-1.66c-.521-1.085-.948-2.104-1.734-2.786-.785-.681-1.601-1.416-2.045-1.945-.444-.53-.59-.86-.59-.86s-.656.175-.838 1.513Zm14.301 4.549a9.162 9.162 0 0 0 1.3-1.12c.326-.352.611-.782.845-1.265 1.315.145 2.399.371 2.791.434 0 0-.679 1.971-3.945 3.022l-.016-.035c-.121-.26-.385-.594-.975-1.036Zm-11.634.859a8.537 8.537 0 0 1-.598-.224c-1.657-.693-2.91-1.944-3.449-3.678-.498-1.601-.292-3.251.091-4.269.225.544.758 1.34 1.262 2.01a3.58 3.58 0 0 0-.172.726c-.163 1.197.123 2.428.687 3.24.416.599 1.417 1.62 2.555 2.193-.128.002-.253.003-.376.002Zm-1.758-.077c-.958-.341-1.901-.787-2.697-1.368C-.07 7.559 0 6.827 0 6.827s1.558-.005 3.088.179c.03.126.065.
|
|||
|
</a>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</footer>
|
|||
|
|
|||
|
</div>
|
|||
|
<div class="md-dialog" data-md-component="dialog">
|
|||
|
<div class="md-dialog__inner md-typeset"></div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.tooltips", "search.highlight", "navigation.tabs", "navigation.indexes", "navigation.prune"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|||
|
|
|||
|
|
|||
|
<script src="../../../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
|
|||
|
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|