Compare commits

...

4 commits

Author SHA1 Message Date
daylinmorgan
42e813d394 deploy: e3284bee78 2023-06-01 05:21:12 +00:00
daylinmorgan
1078b04a7a deploy: 615c5c9a462456afeec0053b6c6145c0ff9b2fc7 2023-06-01 05:17:34 +00:00
daylinmorgan
172285c06c deploy: ac3b8b061c639679501a24aa82d5baac81254cf9 2023-06-01 05:12:06 +00:00
daylinmorgan
30bc5baf7d deploy: 46b47785a2c51d09f2f1f79de3cf1ea796ed16c8 2023-06-01 05:06:02 +00:00
62 changed files with 10510 additions and 224 deletions

324
404.html Normal file
View file

@ -0,0 +1,324 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" href="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg">
<meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.15">
<title>viv</title>
<link rel="stylesheet" href="/assets/stylesheets/main.26e3688c.min.css">
<link rel="stylesheet" href="/assets/stylesheets/palette.ecc896b0.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto 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>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="indigo">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<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">
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="/." title="viv" class="md-header__button md-logo" aria-label="viv" data-md-component="logo">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/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">
viv
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="deep-purple" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
</form>
<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" 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://github.com/daylinmorgan/viv" 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 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
daylinmorgan/viv
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<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" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="/." title="viv" class="md-nav__button md-logo" aria-label="viv" data-md-component="logo">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg" alt="logo">
</a>
viv
</label>
<div class="md-nav__source">
<a href="https://github.com/daylinmorgan/viv" 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 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
daylinmorgan/viv
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/." class="md-nav__link">
viv
</a>
</li>
<li class="md-nav__item">
<a href="/cli/" class="md-nav__link">
cli
</a>
</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">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>404 - Not found</h1>
</article>
</div>
</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">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</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": ["navigation.indexes"], "search": "/assets/javascripts/workers/search.208ed371.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.b4d07000.min.js"></script>
</body>
</html>

BIN
assets/images/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,18 @@
/*!
* Lunr languages, `Danish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA--",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Z--0-9-",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z԰-֏ff-ﭏ]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("դու և եք էիր էիք հետո նաև նրանք որը վրա է որ պիտի են այս մեջ ն իր ու ի այդ որոնք այն կամ էր մի ես համար այլ իսկ էին ենք հետ ին թ էինք մենք նրա նա դուք եմ էի ըստ որպես ում".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}});

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Z--0-9-",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});

View file

@ -0,0 +1 @@
module.exports=require("./lunr.ja");

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWordFilter,e.kn.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.kn.stemmer))},e.kn.wordCharacters="ಀ-಄ಅ-ಔಕ-ಹಾ-ೌ಼-ಽೕ-ೖೝ-ೞೠ-ೡೢ-ೣ೤೥೦-೯ೱ-ೳ",e.kn.trimmer=e.trimmerSupport.generateTrimmer(e.kn.wordCharacters),e.Pipeline.registerFunction(e.kn.trimmer,"trimmer-kn"),e.kn.stopWordFilter=e.generateStopWordFilter("ಮತ್ತು ಈ ಒಂದು ರಲ್ಲಿ ಹಾಗೂ ಎಂದು ಅಥವಾ ಇದು ರ ಅವರು ಎಂಬ ಮೇಲೆ ಅವರ ತನ್ನ ಆದರೆ ತಮ್ಮ ನಂತರ ಮೂಲಕ ಹೆಚ್ಚು ನ ಆ ಕೆಲವು ಅನೇಕ ಎರಡು ಹಾಗು ಪ್ರಮುಖ ಇದನ್ನು ಇದರ ಸುಮಾರು ಅದರ ಅದು ಮೊದಲ ಬಗ್ಗೆ ನಲ್ಲಿ ರಂದು ಇತರ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ನೇ ಹಲವಾರು ಹೊಸ ದಿ ಕಡಿಮೆ ಯಾವುದೇ ಹೊಂದಿದೆ ದೊಡ್ಡ ಅನ್ನು ಇವರು ಪ್ರಕಾರ ಇದೆ ಮಾತ್ರ ಕೂಡ ಇಲ್ಲಿ ಎಲ್ಲಾ ವಿವಿಧ ಅದನ್ನು ಹಲವು ರಿಂದ ಕೇವಲ ದ ದಕ್ಷಿಣ ಗೆ ಅವನ ಅತಿ ನೆಯ ಬಹಳ ಕೆಲಸ ಎಲ್ಲ ಪ್ರತಿ ಇತ್ಯಾದಿ ಇವು ಬೇರೆ ಹೀಗೆ ನಡುವೆ ಇದಕ್ಕೆ ಎಸ್ ಇವರ ಮೊದಲು ಶ್ರೀ ಮಾಡುವ ಇದರಲ್ಲಿ ರೀತಿಯ ಮಾಡಿದ ಕಾಲ ಅಲ್ಲಿ ಮಾಡಲು ಅದೇ ಈಗ ಅವು ಗಳು ಎ ಎಂಬುದು ಅವನು ಅಂದರೆ ಅವರಿಗೆ ಇರುವ ವಿಶೇಷ ಮುಂದೆ ಅವುಗಳ ಮುಂತಾದ ಮೂಲ ಬಿ ಮೀ ಒಂದೇ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿ ಮಾಡಿ ಅವರನ್ನು ಇದೇ ಯ ರೀತಿಯಲ್ಲಿ ಜೊತೆ ಅದರಲ್ಲಿ ಮಾಡಿದರು ನಡೆದ ಆಗ ಮತ್ತೆ ಪೂರ್ವ ಆತ ಬಂದ ಯಾವ ಒಟ್ಟು ಇತರೆ ಹಿಂದೆ ಪ್ರಮಾಣದ ಗಳನ್ನು ಕುರಿತು ಯು ಆದ್ದರಿಂದ ಅಲ್ಲದೆ ನಗರದ ಮೇಲಿನ ಏಕೆಂದರೆ ರಷ್ಟು ಎಂಬುದನ್ನು ಬಾರಿ ಎಂದರೆ ಹಿಂದಿನ ಆದರೂ ಆದ ಸಂಬಂಧಿಸಿದ ಮತ್ತೊಂದು ಸಿ ಆತನ ".split(" ")),e.kn.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.kn.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var n=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(n).split("|")},e.Pipeline.registerFunction(e.kn.stemmer,"stemmer-kn"),e.Pipeline.registerFunction(e.kn.stopWordFilter,"stopWordFilter-kn")}});

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,18 @@
/*!
* Lunr languages, `Norwegian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA--",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWordFilter,e.sa.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sa.stemmer))},e.sa.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿ꣠-꣱ꣲ-ꣷ꣸-ꣻ꣼-ꣽꣾ-ꣿᆰ0-ᆰ9",e.sa.trimmer=e.trimmerSupport.generateTrimmer(e.sa.wordCharacters),e.Pipeline.registerFunction(e.sa.trimmer,"trimmer-sa"),e.sa.stopWordFilter=e.generateStopWordFilter('तथा अयम्‌ एकम्‌ इत्यस्मिन्‌ तथा तत्‌ वा अयम्‌ इत्यस्य ते आहूत उपरि तेषाम्‌ किन्तु तेषाम्‌ तदा इत्यनेन अधिकः इत्यस्य तत्‌ केचन बहवः द्वि तथा महत्वपूर्णः अयम्‌ अस्य विषये अयं अस्ति तत्‌ प्रथमः विषये इत्युपरि इत्युपरि इतर अधिकतमः अधिकः अपि सामान्यतया ठ इतरेतर नूतनम्‌ द न्यूनम्‌ कश्चित्‌ वा विशालः द सः अस्ति तदनुसारम् तत्र अस्ति केवलम्‌ अपि अत्र सर्वे विविधाः तत्‌ बहवः यतः इदानीम्‌ द दक्षिण इत्यस्मै तस्य उपरि नथ अतीव कार्यम्‌ सर्वे एकैकम्‌ इत्यादि। एते सन्ति उत इत्थम्‌ मध्ये एतदर्थं . स कस्य प्रथमः श्री. करोति अस्मिन् प्रकारः निर्मिता कालः तत्र कर्तुं समान अधुना ते सन्ति स एकः अस्ति सः अर्थात् तेषां कृते . स्थितम् विशेषः अग्रिम तेषाम्‌ समान स्रोतः ख म समान इदानीमपि अधिकतया करोतु ते समान इत्यस्य वीथी सह यस्मिन् कृतवान्‌ धृतः तदा पुनः पूर्वं सः आगतः किम्‌ कुल इतर पुरा मात्रा स विषये उ अतएव अपि नगरस्य उपरि यतः प्रतिशतं कतरः कालः साधनानि भूत तथापि जात सम्बन्धि अन्यत्‌ ग अतः अस्माकं स्वकीयाः अस्माकं इदानीं अन्तः इत्यादयः भवन्तः इत्यादयः एते एताः तस्य अस्य इदम् एते तेषां तेषां तेषां तान् तेषां तेषां तेषां समानः सः एकः च तादृशाः बहवः अन्ये च वदन्ति यत् कियत् कस्मै कस्मै यस्मै यस्मै यस्मै यस्मै न अतिनीचः किन्तु प्रथमं सम्पूर्णतया ततः चिरकालानन्तरं पुस्तकं सम्पूर्णतया अन्तः किन्तु अत्र वा इह इव श्रद्धाय अवशिष्यते परन्तु अन्ये वर्गाः सन्ति ते सन्ति शक्नुवन्ति सर्वे मिलित्वा सर्वे एकत्र"'.split(" ")),e.sa.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.sa.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var i=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(i).split("|")},e.Pipeline.registerFunction(e.sa.stemmer,"stemmer-sa"),e.Pipeline.registerFunction(e.sa.stopWordFilter,"stopWordFilter-sa")}});

View file

@ -0,0 +1 @@
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});

View file

@ -0,0 +1,18 @@
/*!
* Lunr languages, `Swedish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA--",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});

View file

@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="஀-உஊ-ஏஐ-ஙச-ட஠-னப-யர-ஹ஺-ிீ-௉ொ-௏ௐ-௙௚-௟௠-௩௪-௯௰-௹௺-௿a-zA-Z--0-9-",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});

View file

@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWordFilter,e.te.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.te.stemmer))},e.te.wordCharacters="ఀ-ఄఅ-ఔక-హా-ౌౕ-ౖౘ-ౚౠ-ౡౢ-ౣ౦-౯౸-౿఼ఽ్ౝ౷౤౥",e.te.trimmer=e.trimmerSupport.generateTrimmer(e.te.wordCharacters),e.Pipeline.registerFunction(e.te.trimmer,"trimmer-te"),e.te.stopWordFilter=e.generateStopWordFilter("అందరూ అందుబాటులో అడగండి అడగడం అడ్డంగా అనుగుణంగా అనుమతించు అనుమతిస్తుంది అయితే ఇప్పటికే ఉన్నారు ఎక్కడైనా ఎప్పుడు ఎవరైనా ఎవరో ఏ ఏదైనా ఏమైనప్పటికి ఒక ఒకరు కనిపిస్తాయి కాదు కూడా గా గురించి చుట్టూ చేయగలిగింది తగిన తర్వాత దాదాపు దూరంగా నిజంగా పై ప్రకారం ప్రక్కన మధ్య మరియు మరొక మళ్ళీ మాత్రమే మెచ్చుకో వద్ద వెంట వేరుగా వ్యతిరేకంగా సంబంధం".split(" ")),e.te.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.te.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.te.stemmer,"stemmer-te"),e.Pipeline.registerFunction(e.te.stopWordFilter,"stopWordFilter-te")}});

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});

View file

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 為 以 于 於 上 他 而 后 後 之 来 來 及 了 因 下 可 到 由 这 這 与 與 也 此 但 并 並 个 個 其 已 无 無 小 我 们 們 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 當 从 從 得 打 凡 儿 兒 尔 爾 该 該 各 给 給 跟 和 何 还 還 即 几 幾 既 看 据 據 距 靠 啦 另 么 麽 每 嘛 拿 哪 您 凭 憑 且 却 卻 让 讓 仍 啥 如 若 使 谁 誰 虽 雖 随 隨 同 所 她 哇 嗡 往 些 向 沿 哟 喲 用 咱 则 則 怎 曾 至 致 着 著 诸 諸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});

View file

@ -0,0 +1,206 @@
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
// (c) 2008 Taku Kudo <taku@chasen.org>
// TinySegmenter is freely distributable under the terms of a new BSD licence.
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
function TinySegmenter() {
var patterns = {
"[一二三四五六七八九十百千万億兆]":"M",
"[一-龠々〆ヵヶ]":"H",
"[ぁ-ん]":"I",
"[ァ-ヴーア-ン゙ー]":"K",
"[a-zA-Z--]":"A",
"[0-9-]":"N"
}
this.chartype_ = [];
for (var i in patterns) {
var regexp = new RegExp(i);
this.chartype_.push([regexp, patterns[i]]);
}
this.BIAS__ = -332
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
this.BP2__ = {"BO":60,"OO":-1762};
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"":-669};
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
this.TW1__ = {"につい":-4681,"東京都":2026};
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
this.UC3__ = {"A":-1370,"I":2311};
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
this.UP1__ = {"O":-214};
this.UP2__ = {"B":69,"O":935};
this.UP3__ = {"B":189};
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
this.UW2__ = {",":-829,"、":-829,"":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
this.UW3__ = {",":4889,"1":-800,"":-1723,"、":4889,"々":-2311,"":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"":-514,"":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"":-270,"":306,"ル":-673,"ン":-496};
return this;
}
TinySegmenter.prototype.ctype_ = function(str) {
for (var i in this.chartype_) {
if (str.match(this.chartype_[i][0])) {
return this.chartype_[i][1];
}
}
return "O";
}
TinySegmenter.prototype.ts_ = function(v) {
if (v) { return v; }
return 0;
}
TinySegmenter.prototype.segment = function(input) {
if (input == null || input == undefined || input == "") {
return [];
}
var result = [];
var seg = ["B3","B2","B1"];
var ctype = ["O","O","O"];
var o = input.split("");
for (i = 0; i < o.length; ++i) {
seg.push(o[i]);
ctype.push(this.ctype_(o[i]))
}
seg.push("E1");
seg.push("E2");
seg.push("E3");
ctype.push("O");
ctype.push("O");
ctype.push("O");
var word = seg[3];
var p1 = "U";
var p2 = "U";
var p3 = "U";
for (var i = 4; i < seg.length - 3; ++i) {
var score = this.BIAS__;
var w1 = seg[i-3];
var w2 = seg[i-2];
var w3 = seg[i-1];
var w4 = seg[i];
var w5 = seg[i+1];
var w6 = seg[i+2];
var c1 = ctype[i-3];
var c2 = ctype[i-2];
var c3 = ctype[i-1];
var c4 = ctype[i];
var c5 = ctype[i+1];
var c6 = ctype[i+2];
score += this.ts_(this.UP1__[p1]);
score += this.ts_(this.UP2__[p2]);
score += this.ts_(this.UP3__[p3]);
score += this.ts_(this.BP1__[p1 + p2]);
score += this.ts_(this.BP2__[p2 + p3]);
score += this.ts_(this.UW1__[w1]);
score += this.ts_(this.UW2__[w2]);
score += this.ts_(this.UW3__[w3]);
score += this.ts_(this.UW4__[w4]);
score += this.ts_(this.UW5__[w5]);
score += this.ts_(this.UW6__[w6]);
score += this.ts_(this.BW1__[w2 + w3]);
score += this.ts_(this.BW2__[w3 + w4]);
score += this.ts_(this.BW3__[w4 + w5]);
score += this.ts_(this.TW1__[w1 + w2 + w3]);
score += this.ts_(this.TW2__[w2 + w3 + w4]);
score += this.ts_(this.TW3__[w3 + w4 + w5]);
score += this.ts_(this.TW4__[w4 + w5 + w6]);
score += this.ts_(this.UC1__[c1]);
score += this.ts_(this.UC2__[c2]);
score += this.ts_(this.UC3__[c3]);
score += this.ts_(this.UC4__[c4]);
score += this.ts_(this.UC5__[c5]);
score += this.ts_(this.UC6__[c6]);
score += this.ts_(this.BC1__[c2 + c3]);
score += this.ts_(this.BC2__[c3 + c4]);
score += this.ts_(this.BC3__[c4 + c5]);
score += this.ts_(this.TC1__[c1 + c2 + c3]);
score += this.ts_(this.TC2__[c2 + c3 + c4]);
score += this.ts_(this.TC3__[c3 + c4 + c5]);
score += this.ts_(this.TC4__[c4 + c5 + c6]);
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
score += this.ts_(this.UQ1__[p1 + c1]);
score += this.ts_(this.UQ2__[p2 + c2]);
score += this.ts_(this.UQ3__[p3 + c3]);
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
var p = "O";
if (score > 0) {
result.push(word);
word = "";
p = "B";
}
p1 = p2;
p2 = p3;
p3 = p;
word += seg[i];
}
result.push(word);
return result;
}
lunr.TinySegmenter = TinySegmenter;
};
}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAQE,YAAA,CAGA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,gDAAA,CACA,gDAAA,CAGA,4BAAA,CACA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,iCAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,wDAAA,CAGA,0DAAA,CAKA,8DAAA,CAKA,0DAAA,CAzEA,iBCeF,CD+DE,kHAEE,YC7DJ,CDoFE,yDACE,4BClFJ,CDiFE,2DACE,4BC/EJ,CD8EE,gEACE,4BC5EJ,CD2EE,2DACE,4BCzEJ,CDwEE,yDACE,4BCtEJ,CDqEE,0DACE,4BCnEJ,CDkEE,gEACE,4BChEJ,CD+DE,0DACE,4BC7DJ,CD4DE,2OACE,4BCjDJ,CDwDA,+FAGE,iCCtDF,CACF,CC/CE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD2CN,CCrDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDkDN,CC5DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDyDN,CCnEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDgEN,CC1EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuEN,CCjFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8EN,CCxFE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqFN,CC/FE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4FN,CCtGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmGN,CC7GE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD0GN,CCpHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDiHN,CC3HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD2HN,CClIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDkIN,CCzIE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDyIN,CChJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDgJN,CCvJE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoJN,CEzJE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsJN,CEjKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8JN,CEzKE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsKN,CEjLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8KN,CEzLE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsLN,CEjME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8LN,CEzME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsMN,CEjNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8MN,CEzNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsNN,CEjOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8NN,CEzOE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsON,CEjPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiPN,CEzPE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyPN,CEjQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiQN,CEzQE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyQN,CEjRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8QN,CEzRE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsRN,CEjSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF0RN,CE1SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFmSN,CEpRE,sEACE,4BFuRJ,CExRE,+DACE,4BF2RJ,CE5RE,iEACE,4BF+RJ,CEhSE,gEACE,4BFmSJ,CEpSE,iEACE,4BFuSJ,CE9RA,8BACE,0BAAA,CACA,sCAAA,CACA,qCAAA,CACA,+BAAA,CACA,sCAAA,CAGA,4BF+RF,CE5RE,yCACE,+BF8RJ,CE3RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,UF+RN,CG3MI,mCD1EA,+CACE,0BFwRJ,CErRI,qDACE,0BFuRN,CElRE,iEACE,eFoRJ,CACF,CGtNI,sCDvDA,uCACE,oCFgRJ,CACF,CEvQA,8BACE,0BAAA,CACA,sCAAA,CACA,gCAAA,CACA,0BAAA,CACA,sCAAA,CAGA,4BFwQF,CErQE,yCACE,+BFuQJ,CEpQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,UFwQN,CEjQE,yCACE,qBFmQJ,CG5NI,wCDhCA,8CACE,0BF+PJ,CACF,CGpPI,mCDJA,+CACE,0BF2PJ,CExPI,qDACE,0BF0PN,CACF,CGzOI,wCDTA,iFACE,qBFqPJ,CACF,CGjQI,sCDmBA,uCACE,qBFiPJ,CACF","file":"palette.css"}

621
cli/index.html Normal file
View file

@ -0,0 +1,621 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://viv.dayl.in/cli/">
<link rel="prev" href="..">
<link rel="icon" href="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg">
<meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.15">
<title>cli - viv</title>
<link rel="stylesheet" href="../assets/stylesheets/main.26e3688c.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.ecc896b0.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto 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>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="indigo">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<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="#cli" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="viv" class="md-header__button md-logo" aria-label="viv" data-md-component="logo">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/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">
viv
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
cli
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="deep-purple" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
</form>
<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" 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://github.com/daylinmorgan/viv" 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 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
daylinmorgan/viv
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<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" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="viv" class="md-nav__button md-logo" aria-label="viv" data-md-component="logo">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg" alt="logo">
</a>
viv
</label>
<div class="md-nav__source">
<a href="https://github.com/daylinmorgan/viv" 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 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
daylinmorgan/viv
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
viv
</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">
cli
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
cli
</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="#list" class="md-nav__link">
list
</a>
</li>
<li class="md-nav__item">
<a href="#exe" class="md-nav__link">
exe
</a>
<nav class="md-nav" aria-label="exe">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#exe-python" class="md-nav__link">
exe python
</a>
</li>
<li class="md-nav__item">
<a href="#exe-pip" class="md-nav__link">
exe pip
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#remove" class="md-nav__link">
remove
</a>
</li>
<li class="md-nav__item">
<a href="#manage" class="md-nav__link">
manage
</a>
<nav class="md-nav" aria-label="manage">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#manage-update" class="md-nav__link">
manage update
</a>
</li>
<li class="md-nav__item">
<a href="#manage-purge" class="md-nav__link">
manage purge
</a>
</li>
<li class="md-nav__item">
<a href="#manage-show" class="md-nav__link">
manage show
</a>
</li>
<li class="md-nav__item">
<a href="#manage-install" class="md-nav__link">
manage install
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#freeze" class="md-nav__link">
freeze
</a>
</li>
<li class="md-nav__item">
<a href="#shim" class="md-nav__link">
shim
</a>
</li>
<li class="md-nav__item">
<a href="#run" class="md-nav__link">
run
</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="#list" class="md-nav__link">
list
</a>
</li>
<li class="md-nav__item">
<a href="#exe" class="md-nav__link">
exe
</a>
<nav class="md-nav" aria-label="exe">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#exe-python" class="md-nav__link">
exe python
</a>
</li>
<li class="md-nav__item">
<a href="#exe-pip" class="md-nav__link">
exe pip
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#remove" class="md-nav__link">
remove
</a>
</li>
<li class="md-nav__item">
<a href="#manage" class="md-nav__link">
manage
</a>
<nav class="md-nav" aria-label="manage">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#manage-update" class="md-nav__link">
manage update
</a>
</li>
<li class="md-nav__item">
<a href="#manage-purge" class="md-nav__link">
manage purge
</a>
</li>
<li class="md-nav__item">
<a href="#manage-show" class="md-nav__link">
manage show
</a>
</li>
<li class="md-nav__item">
<a href="#manage-install" class="md-nav__link">
manage install
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#freeze" class="md-nav__link">
freeze
</a>
</li>
<li class="md-nav__item">
<a href="#shim" class="md-nav__link">
shim
</a>
</li>
<li class="md-nav__item">
<a href="#run" class="md-nav__link">
run
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="cli">cli</h1>
<p><img alt="help" src="/svgs/viv-help.svg" /></p>
<h2 id="list">list</h2>
<p><img alt="cmd" src="/svgs/viv-list-help.svg" /></p>
<h2 id="exe">exe</h2>
<p><img alt="cmd" src="/svgs/viv-exe-help.svg" /></p>
<h3 id="exe-python">exe python</h3>
<p><img alt="cmd" src="/svgs/viv-exe-python-help.svg" /></p>
<h3 id="exe-pip">exe pip</h3>
<p><img alt="cmd" src="/svgs/viv-exe-pip-help.svg" /></p>
<h2 id="remove">remove</h2>
<p><img alt="cmd" src="/svgs/viv-remove-help.svg" /></p>
<h2 id="manage">manage</h2>
<p><img alt="cmd" src="/svgs/viv-manage-help.svg" /></p>
<h3 id="manage-update">manage update</h3>
<p><img alt="cmd" src="/svgs/viv-manage-update-help.svg" /></p>
<h3 id="manage-purge">manage purge</h3>
<p><img alt="cmd" src="/svgs/viv-manage-purge-help.svg" /></p>
<h3 id="manage-show">manage show</h3>
<p><img alt="cmd" src="/svgs/viv-manage-show-help.svg" /></p>
<h3 id="manage-install">manage install</h3>
<p><img alt="cmd" src="/svgs/viv-manage-install-help.svg" /></p>
<h2 id="freeze">freeze</h2>
<p><img alt="cmd" src="/svgs/viv-freeze-help.svg" /></p>
<h2 id="shim">shim</h2>
<p><img alt="cmd" src="/svgs/viv-shim-help.svg" /></p>
<h2 id="run">run</h2>
<p><img alt="cmd" src="/svgs/viv-run-help.svg" /></p>
</article>
</div>
</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">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</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": ["navigation.indexes"], "search": "../assets/javascripts/workers/search.208ed371.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.b4d07000.min.js"></script>
</body>
</html>

View file

@ -1,9 +1,598 @@
<!DOCTYPE html>
<html>
<!doctype html>
<html lang="en" class="no-js">
<head>
<link rel="canonical" href="https://github.com/daylinmorgan/viv"/>
<meta name="robots" content="noindex">
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta http-equiv="refresh" content="0; url=https://github.com/daylinmorgan/viv"/>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://viv.dayl.in/">
<link rel="next" href="cli/">
<link rel="icon" href="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg">
<meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.15">
<title>viv</title>
<link rel="stylesheet" href="assets/stylesheets/main.26e3688c.min.css">
<link rel="stylesheet" href="assets/stylesheets/palette.ecc896b0.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto 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>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="indigo">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<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="#viv" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="." title="viv" class="md-header__button md-logo" aria-label="viv" data-md-component="logo">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/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">
viv
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
viv
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="deep-purple" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
</form>
<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" 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://github.com/daylinmorgan/viv" 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 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
daylinmorgan/viv
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<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" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="." title="viv" class="md-nav__button md-logo" aria-label="viv" data-md-component="logo">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg" alt="logo">
</a>
viv
</label>
<div class="md-nav__source">
<a href="https://github.com/daylinmorgan/viv" 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 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
daylinmorgan/viv
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<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">
viv
<span class="md-nav__icon md-icon"></span>
</label>
<a href="." class="md-nav__link md-nav__link--active">
viv
</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="#setup" class="md-nav__link">
Setup
</a>
<nav class="md-nav" aria-label="Setup">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pypi-not-recommended" class="md-nav__link">
Pypi (Not Recommended)
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#usage" class="md-nav__link">
Usage
</a>
</li>
<li class="md-nav__item">
<a href="#additional-features" class="md-nav__link">
Additional Features
</a>
</li>
<li class="md-nav__item">
<a href="#alternatives" class="md-nav__link">
Alternatives
</a>
<nav class="md-nav" aria-label="Alternatives">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pip-run" class="md-nav__link">
pip-run
</a>
</li>
<li class="md-nav__item">
<a href="#pipx" class="md-nav__link">
pipx
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="cli/" class="md-nav__link">
cli
</a>
</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="#setup" class="md-nav__link">
Setup
</a>
<nav class="md-nav" aria-label="Setup">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pypi-not-recommended" class="md-nav__link">
Pypi (Not Recommended)
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#usage" class="md-nav__link">
Usage
</a>
</li>
<li class="md-nav__item">
<a href="#additional-features" class="md-nav__link">
Additional Features
</a>
</li>
<li class="md-nav__item">
<a href="#alternatives" class="md-nav__link">
Alternatives
</a>
<nav class="md-nav" aria-label="Alternatives">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pip-run" class="md-nav__link">
pip-run
</a>
</li>
<li class="md-nav__item">
<a href="#pipx" class="md-nav__link">
pipx
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="viv">viv</h1>
<div align="center">
<a href="https://github.com/daylinmorgan/viv">
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg" alt="Logo" width=500 >
</a>
<p align="center">
viv isn't venv
</p>
<p align="center">
<a href="viv.dayl.in">Documentation</a>
</p>
</div>
<p>Try before you buy!</p>
<pre><code class="language-sh">python3 &lt;(curl -fsSL viv.dayl.in/viv.py) run pycowsay -- &quot;viv isn't venv\!&quot;
</code></pre>
<hr />
<p><code>Viv</code> is a standalone dependency-free <code>venv</code> creator.</p>
<p>These <code>venvs</code> can be identified by name or by their specification.
In any case they will be re-used across scripts (and generated on-demand, if needed).</p>
<p><strong>Importantly</strong>, <code>viv</code> will also remove your user site directory.
(view with: <code>python -m 'import site;print(site.USER_SITE)'</code>).</p>
<p><code>Viv</code>'s uncompromising insistence on portability means that it will always (1) only use the standard library (2) never exceed a single script.</p>
<p>For that reason any usage of the <code>CLI</code> can be accomplished using a remote copy as seen in the below install command.</p>
<h2 id="setup">Setup</h2>
<p>Run the below command to install <code>viv</code>.</p>
<pre><code class="language-sh">python3 &lt;(curl -fsSL viv.dayl.in/viv.py) manage install
</code></pre>
<p>To access <code>viv</code> from within scripts you should add it's location to your <code>PYTHONPATH</code>.
By default <code>viv</code> will be installed to <code>$XDG_DATA_HOME/viv</code> or <code>~/.local/share/viv</code> you can customize this with <code>--src</code>.</p>
<pre><code class="language-sh">export PYTHONPATH=&quot;$PYTHONPATH:$HOME/.local/share/viv&quot;
</code></pre>
<p>Advanced users may recognize that principally,
the module just needs to be recognized at run time
and the single script <a href="https://github.com/daylinmorgan/viv/blob/main/src/viv/viv.py"><code>viv.py</code></a> can be invoked directly for the CLI.
How you accomplish these options is ultimately up to you but the above instructions can get you started.</p>
<h3 id="pypi-not-recommended">Pypi (Not Recommended)</h3>
<pre><code class="language-sh">pip install viv
</code></pre>
<p>Why is this <em>not recommended</em>? Mainly, because <code>viv</code> is all about hacking your <code>sys.path</code>.
Placing it in it's own virtual environment or installing in a user site directory may complicate this endeavor.</p>
<h2 id="usage">Usage</h2>
<p>In any python script with external dependencies you can add this line,
to automate <code>vivenv</code> creation and installation of dependencies.</p>
<pre><code class="language-python">__import__(&quot;viv&quot;).use(&quot;click&quot;)
</code></pre>
<p>To remove all <code>vivenvs</code> you can use the below command:</p>
<pre><code class="language-sh">viv remove $(viv list -q)
</code></pre>
<p>To remove <code>viv</code> all together you can use the included <code>purge</code> command:</p>
<pre><code class="language-sh">python3 &lt;(curl -fsSL viv.dayl.in/viv.py) manage purge
</code></pre>
<h2 id="additional-features">Additional Features</h2>
<p>An experimental feature of <code>viv</code> is generating shim's that leverage the principles of <code>viv</code>.
These shims would operate similar to <code>pipx</code> in which you can specify a command line app to "install".</p>
<p><em>Note</em> that <code>--standalone</code> will auto-generate a code-golfed minified version of <code>viv</code> to accomplish the same basic task as using a local copy of <code>viv</code>.
After generating this a standalone <code>shim</code> you can freely use this script across unix machines which have <code>python&gt;3.8</code>.
See <a href="https://github.com/daylinmorgan/viv/blob/dev/examples/black">examples/black</a> for output of below command.</p>
<pre><code class="language-sh">python3 &lt;(curl -fsSL viv.dayl.in/viv.py) shim black -o ./black --standalone --freeze
</code></pre>
<h2 id="alternatives">Alternatives</h2>
<h3 id="pip-run"><a href="https://github.com/jaraco/pip-run">pip-run</a></h3>
<pre><code class="language-sh">pip-run (10.0.5)
├── autocommand (2.2.2)
├── jaraco-context (4.3.0)
├── jaraco-functools (3.6.0)
│ └── more-itertools (9.1.0)
├── jaraco-text (3.11.1)
│ ├── autocommand (2.2.2)
│ ├── inflect (6.0.2)
│ │ └── pydantic&gt;=1.9.1 (1.10.5)
│ │ └── typing-extensions&gt;=4.2.0 (4.5.0)
│ ├── jaraco-context&gt;=4.1 (4.3.0)
│ ├── jaraco-functools (3.6.0)
│ │ └── more-itertools (9.1.0)
│ └── more-itertools (9.1.0)
├── more-itertools&gt;=8.3 (9.1.0)
├── packaging (23.0)
├── path&gt;=15.1 (16.6.0)
├── pip&gt;=19.3 (23.0.1)
└── platformdirs (3.1.0)
</code></pre>
<h3 id="pipx"><a href="https://github.com/pypa/pipx/">pipx</a></h3>
<pre><code class="language-sh">pipx (1.1.0)
├── argcomplete&gt;=1.9.4 (2.1.1)
├── packaging&gt;=20.0 (23.0)
└── userpath&gt;=1.6.0 (1.8.0)
└── click (8.1.3)
</code></pre>
</article>
</div>
</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">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</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": ["navigation.indexes"], "search": "assets/javascripts/workers/search.208ed371.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.b4d07000.min.js"></script>
</body>
</html>

1
search/search_index.json Normal file

File diff suppressed because one or more lines are too long

13
sitemap.xml Normal file
View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://viv.dayl.in/</loc>
<lastmod>2023-06-01</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://viv.dayl.in/cli/</loc>
<lastmod>2023-06-01</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

BIN
sitemap.xml.gz Normal file

Binary file not shown.

104
svgs/viv-exe-help.svg Normal file
View file

@ -0,0 +1,104 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 350.7333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-3871055805-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-3871055805-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-3871055805-r1 { fill: #94e2d5;font-weight: bold }
.terminal-3871055805-r2 { fill: #c6d0f5 }
.terminal-3871055805-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-3871055805-clip-terminal">
<rect x="0" y="0" width="853.0" height="267.4" />
</clipPath>
<clipPath id="terminal-3871055805-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3871055805-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="316.4" rx="8"/><text class="terminal-3871055805-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;exe&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-3871055805-clip-terminal)">
<g class="terminal-3871055805-matrix">
<text class="terminal-3871055805-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-3871055805-line-0)">usage</text><text class="terminal-3871055805-r2" x="61" y="20" textLength="341.6" clip-path="url(#terminal-3871055805-line-0)">:&#160;viv&#160;exe&#160;[-h]&#160;&lt;sub-cmd&gt;&#160;...</text><text class="terminal-3871055805-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-3871055805-line-0)">
</text><text class="terminal-3871055805-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-3871055805-line-1)">
</text><text class="terminal-3871055805-r2" x="0" y="68.8" textLength="402.6" clip-path="url(#terminal-3871055805-line-2)">run&#160;python/pip&#160;in&#160;existing&#160;vivenv</text><text class="terminal-3871055805-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-3871055805-line-2)">
</text><text class="terminal-3871055805-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-3871055805-line-3)">
</text><text class="terminal-3871055805-r1" x="0" y="117.6" textLength="85.4" clip-path="url(#terminal-3871055805-line-4)">options</text><text class="terminal-3871055805-r2" x="85.4" y="117.6" textLength="12.2" clip-path="url(#terminal-3871055805-line-4)">:</text><text class="terminal-3871055805-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-3871055805-line-4)">
</text><text class="terminal-3871055805-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-3871055805-line-5)">-h</text><text class="terminal-3871055805-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-3871055805-line-5)">,&#160;</text><text class="terminal-3871055805-r3" x="73.2" y="142" textLength="73.2" clip-path="url(#terminal-3871055805-line-5)">--help</text><text class="terminal-3871055805-r2" x="146.4" y="142" textLength="427" clip-path="url(#terminal-3871055805-line-5)">&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-3871055805-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-3871055805-line-5)">
</text><text class="terminal-3871055805-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-3871055805-line-6)">
</text><text class="terminal-3871055805-r1" x="0" y="190.8" textLength="122" clip-path="url(#terminal-3871055805-line-7)">subcommand</text><text class="terminal-3871055805-r2" x="122" y="190.8" textLength="12.2" clip-path="url(#terminal-3871055805-line-7)">:</text><text class="terminal-3871055805-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-3871055805-line-7)">
</text><text class="terminal-3871055805-r3" x="24.4" y="215.2" textLength="109.8" clip-path="url(#terminal-3871055805-line-8)">&lt;sub-cmd&gt;</text><text class="terminal-3871055805-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-3871055805-line-8)">
</text><text class="terminal-3871055805-r3" x="48.8" y="239.6" textLength="73.2" clip-path="url(#terminal-3871055805-line-9)">python</text><text class="terminal-3871055805-r2" x="122" y="239.6" textLength="353.8" clip-path="url(#terminal-3871055805-line-9)">&#160;&#160;&#160;&#160;&#160;&#160;run&#160;command&#160;with&#160;python</text><text class="terminal-3871055805-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-3871055805-line-9)">
</text><text class="terminal-3871055805-r3" x="48.8" y="264" textLength="36.6" clip-path="url(#terminal-3871055805-line-10)">pip</text><text class="terminal-3871055805-r2" x="85.4" y="264" textLength="353.8" clip-path="url(#terminal-3871055805-line-10)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;run&#160;command&#160;with&#160;pip</text><text class="terminal-3871055805-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-3871055805-line-10)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

92
svgs/viv-exe-pip-help.svg Normal file
View file

@ -0,0 +1,92 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 277.5333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-2240111166-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-2240111166-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-2240111166-r1 { fill: #94e2d5;font-weight: bold }
.terminal-2240111166-r2 { fill: #c6d0f5 }
.terminal-2240111166-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-2240111166-clip-terminal">
<rect x="0" y="0" width="853.0" height="194.2" />
</clipPath>
<clipPath id="terminal-2240111166-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2240111166-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2240111166-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2240111166-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2240111166-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2240111166-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2240111166-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="243.2" rx="8"/><text class="terminal-2240111166-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;exe&#160;pip&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2240111166-clip-terminal)">
<g class="terminal-2240111166-matrix">
<text class="terminal-2240111166-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2240111166-line-0)">usage</text><text class="terminal-2240111166-r2" x="61" y="20" textLength="427" clip-path="url(#terminal-2240111166-line-0)">:&#160;viv&#160;exe&#160;pip&#160;[-h]&#160;vivenv&#160;[cmd&#160;...]</text><text class="terminal-2240111166-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2240111166-line-0)">
</text><text class="terminal-2240111166-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2240111166-line-1)">
</text><text class="terminal-2240111166-r1" x="0" y="68.8" textLength="244" clip-path="url(#terminal-2240111166-line-2)">positional&#160;arguments</text><text class="terminal-2240111166-r2" x="244" y="68.8" textLength="12.2" clip-path="url(#terminal-2240111166-line-2)">:</text><text class="terminal-2240111166-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2240111166-line-2)">
</text><text class="terminal-2240111166-r3" x="24.4" y="93.2" textLength="73.2" clip-path="url(#terminal-2240111166-line-3)">vivenv</text><text class="terminal-2240111166-r2" x="97.6" y="93.2" textLength="329.4" clip-path="url(#terminal-2240111166-line-3)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;name/hash&#160;of&#160;vivenv</text><text class="terminal-2240111166-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2240111166-line-3)">
</text><text class="terminal-2240111166-r3" x="24.4" y="117.6" textLength="36.6" clip-path="url(#terminal-2240111166-line-4)">cmd</text><text class="terminal-2240111166-r2" x="61" y="117.6" textLength="390.4" clip-path="url(#terminal-2240111166-line-4)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;command&#160;to&#160;to&#160;execute</text><text class="terminal-2240111166-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2240111166-line-4)">
</text><text class="terminal-2240111166-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2240111166-line-5)">
</text><text class="terminal-2240111166-r1" x="0" y="166.4" textLength="85.4" clip-path="url(#terminal-2240111166-line-6)">options</text><text class="terminal-2240111166-r2" x="85.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2240111166-line-6)">:</text><text class="terminal-2240111166-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2240111166-line-6)">
</text><text class="terminal-2240111166-r3" x="24.4" y="190.8" textLength="24.4" clip-path="url(#terminal-2240111166-line-7)">-h</text><text class="terminal-2240111166-r2" x="48.8" y="190.8" textLength="24.4" clip-path="url(#terminal-2240111166-line-7)">,&#160;</text><text class="terminal-2240111166-r3" x="73.2" y="190.8" textLength="73.2" clip-path="url(#terminal-2240111166-line-7)">--help</text><text class="terminal-2240111166-r2" x="146.4" y="190.8" textLength="427" clip-path="url(#terminal-2240111166-line-7)">&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-2240111166-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2240111166-line-7)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -0,0 +1,92 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 277.5333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-1517577456-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-1517577456-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-1517577456-r1 { fill: #94e2d5;font-weight: bold }
.terminal-1517577456-r2 { fill: #c6d0f5 }
.terminal-1517577456-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-1517577456-clip-terminal">
<rect x="0" y="0" width="853.0" height="194.2" />
</clipPath>
<clipPath id="terminal-1517577456-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1517577456-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1517577456-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1517577456-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1517577456-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1517577456-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1517577456-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="243.2" rx="8"/><text class="terminal-1517577456-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;exe&#160;python&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1517577456-clip-terminal)">
<g class="terminal-1517577456-matrix">
<text class="terminal-1517577456-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1517577456-line-0)">usage</text><text class="terminal-1517577456-r2" x="61" y="20" textLength="463.6" clip-path="url(#terminal-1517577456-line-0)">:&#160;viv&#160;exe&#160;python&#160;[-h]&#160;vivenv&#160;[cmd&#160;...]</text><text class="terminal-1517577456-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1517577456-line-0)">
</text><text class="terminal-1517577456-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1517577456-line-1)">
</text><text class="terminal-1517577456-r1" x="0" y="68.8" textLength="244" clip-path="url(#terminal-1517577456-line-2)">positional&#160;arguments</text><text class="terminal-1517577456-r2" x="244" y="68.8" textLength="12.2" clip-path="url(#terminal-1517577456-line-2)">:</text><text class="terminal-1517577456-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1517577456-line-2)">
</text><text class="terminal-1517577456-r3" x="24.4" y="93.2" textLength="73.2" clip-path="url(#terminal-1517577456-line-3)">vivenv</text><text class="terminal-1517577456-r2" x="97.6" y="93.2" textLength="329.4" clip-path="url(#terminal-1517577456-line-3)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;name/hash&#160;of&#160;vivenv</text><text class="terminal-1517577456-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1517577456-line-3)">
</text><text class="terminal-1517577456-r3" x="24.4" y="117.6" textLength="36.6" clip-path="url(#terminal-1517577456-line-4)">cmd</text><text class="terminal-1517577456-r2" x="61" y="117.6" textLength="390.4" clip-path="url(#terminal-1517577456-line-4)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;command&#160;to&#160;to&#160;execute</text><text class="terminal-1517577456-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1517577456-line-4)">
</text><text class="terminal-1517577456-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1517577456-line-5)">
</text><text class="terminal-1517577456-r1" x="0" y="166.4" textLength="85.4" clip-path="url(#terminal-1517577456-line-6)">options</text><text class="terminal-1517577456-r2" x="85.4" y="166.4" textLength="12.2" clip-path="url(#terminal-1517577456-line-6)">:</text><text class="terminal-1517577456-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1517577456-line-6)">
</text><text class="terminal-1517577456-r3" x="24.4" y="190.8" textLength="24.4" clip-path="url(#terminal-1517577456-line-7)">-h</text><text class="terminal-1517577456-r2" x="48.8" y="190.8" textLength="24.4" clip-path="url(#terminal-1517577456-line-7)">,&#160;</text><text class="terminal-1517577456-r3" x="73.2" y="190.8" textLength="73.2" clip-path="url(#terminal-1517577456-line-7)">--help</text><text class="terminal-1517577456-r2" x="146.4" y="190.8" textLength="427" clip-path="url(#terminal-1517577456-line-7)">&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-1517577456-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-1517577456-line-7)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

113
svgs/viv-freeze-help.svg Normal file
View file

@ -0,0 +1,113 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 399.5333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-2232683120-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-2232683120-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-2232683120-r1 { fill: #94e2d5;font-weight: bold }
.terminal-2232683120-r2 { fill: #c6d0f5 }
.terminal-2232683120-r3 { fill: #f9e2af;font-weight: bold }
.terminal-2232683120-r4 { fill: #f9e2af }
</style>
<defs>
<clipPath id="terminal-2232683120-clip-terminal">
<rect x="0" y="0" width="853.0" height="316.2" />
</clipPath>
<clipPath id="terminal-2232683120-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-10">
<rect x="0" y="245.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2232683120-line-11">
<rect x="0" y="269.9" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="365.2" rx="8"/><text class="terminal-2232683120-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;freeze&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2232683120-clip-terminal)">
<g class="terminal-2232683120-matrix">
<text class="terminal-2232683120-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2232683120-line-0)">usage</text><text class="terminal-2232683120-r2" x="61" y="20" textLength="793" clip-path="url(#terminal-2232683120-line-0)">:&#160;viv&#160;freeze&#160;[-h]&#160;[-p&#160;{abs,rel}]&#160;[-r&#160;&lt;path&gt;]&#160;[-k]&#160;[-s]&#160;[reqs&#160;...]</text><text class="terminal-2232683120-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2232683120-line-0)">
</text><text class="terminal-2232683120-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2232683120-line-1)">
</text><text class="terminal-2232683120-r2" x="0" y="68.8" textLength="500.2" clip-path="url(#terminal-2232683120-line-2)">create&#160;import&#160;statement&#160;from&#160;package&#160;spec</text><text class="terminal-2232683120-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2232683120-line-2)">
</text><text class="terminal-2232683120-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2232683120-line-3)">
</text><text class="terminal-2232683120-r1" x="0" y="117.6" textLength="244" clip-path="url(#terminal-2232683120-line-4)">positional&#160;arguments</text><text class="terminal-2232683120-r2" x="244" y="117.6" textLength="12.2" clip-path="url(#terminal-2232683120-line-4)">:</text><text class="terminal-2232683120-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2232683120-line-4)">
</text><text class="terminal-2232683120-r3" x="24.4" y="142" textLength="48.8" clip-path="url(#terminal-2232683120-line-5)">reqs</text><text class="terminal-2232683120-r2" x="73.2" y="142" textLength="585.6" clip-path="url(#terminal-2232683120-line-5)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;requirements&#160;specifiers</text><text class="terminal-2232683120-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2232683120-line-5)">
</text><text class="terminal-2232683120-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2232683120-line-6)">
</text><text class="terminal-2232683120-r1" x="0" y="190.8" textLength="85.4" clip-path="url(#terminal-2232683120-line-7)">options</text><text class="terminal-2232683120-r2" x="85.4" y="190.8" textLength="12.2" clip-path="url(#terminal-2232683120-line-7)">:</text><text class="terminal-2232683120-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2232683120-line-7)">
</text><text class="terminal-2232683120-r3" x="24.4" y="215.2" textLength="24.4" clip-path="url(#terminal-2232683120-line-8)">-h</text><text class="terminal-2232683120-r2" x="48.8" y="215.2" textLength="24.4" clip-path="url(#terminal-2232683120-line-8)">,&#160;</text><text class="terminal-2232683120-r3" x="73.2" y="215.2" textLength="73.2" clip-path="url(#terminal-2232683120-line-8)">--help</text><text class="terminal-2232683120-r2" x="146.4" y="215.2" textLength="610" clip-path="url(#terminal-2232683120-line-8)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-2232683120-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-2232683120-line-8)">
</text><text class="terminal-2232683120-r3" x="24.4" y="239.6" textLength="24.4" clip-path="url(#terminal-2232683120-line-9)">-p</text><text class="terminal-2232683120-r2" x="48.8" y="239.6" textLength="24.4" clip-path="url(#terminal-2232683120-line-9)">,&#160;</text><text class="terminal-2232683120-r3" x="73.2" y="239.6" textLength="73.2" clip-path="url(#terminal-2232683120-line-9)">--path</text><text class="terminal-2232683120-r4" x="146.4" y="239.6" textLength="122" clip-path="url(#terminal-2232683120-line-9)">&#160;{abs,rel}</text><text class="terminal-2232683120-r2" x="268.4" y="239.6" textLength="549" clip-path="url(#terminal-2232683120-line-9)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;generate&#160;line&#160;to&#160;add&#160;viv&#160;to&#160;sys.path</text><text class="terminal-2232683120-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-2232683120-line-9)">
</text><text class="terminal-2232683120-r3" x="24.4" y="264" textLength="24.4" clip-path="url(#terminal-2232683120-line-10)">-r</text><text class="terminal-2232683120-r2" x="48.8" y="264" textLength="24.4" clip-path="url(#terminal-2232683120-line-10)">,&#160;</text><text class="terminal-2232683120-r3" x="73.2" y="264" textLength="170.8" clip-path="url(#terminal-2232683120-line-10)">--requirements</text><text class="terminal-2232683120-r4" x="244" y="264" textLength="85.4" clip-path="url(#terminal-2232683120-line-10)">&#160;&lt;path&gt;</text><text class="terminal-2232683120-r2" x="329.4" y="264" textLength="402.6" clip-path="url(#terminal-2232683120-line-10)">&#160;&#160;&#160;&#160;path/to/requirements.txt&#160;file</text><text class="terminal-2232683120-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-2232683120-line-10)">
</text><text class="terminal-2232683120-r3" x="24.4" y="288.4" textLength="24.4" clip-path="url(#terminal-2232683120-line-11)">-k</text><text class="terminal-2232683120-r2" x="48.8" y="288.4" textLength="24.4" clip-path="url(#terminal-2232683120-line-11)">,&#160;</text><text class="terminal-2232683120-r3" x="73.2" y="288.4" textLength="73.2" clip-path="url(#terminal-2232683120-line-11)">--keep</text><text class="terminal-2232683120-r2" x="146.4" y="288.4" textLength="475.8" clip-path="url(#terminal-2232683120-line-11)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;preserve&#160;environment</text><text class="terminal-2232683120-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-2232683120-line-11)">
</text><text class="terminal-2232683120-r3" x="24.4" y="312.8" textLength="24.4" clip-path="url(#terminal-2232683120-line-12)">-s</text><text class="terminal-2232683120-r2" x="48.8" y="312.8" textLength="24.4" clip-path="url(#terminal-2232683120-line-12)">,&#160;</text><text class="terminal-2232683120-r3" x="73.2" y="312.8" textLength="146.4" clip-path="url(#terminal-2232683120-line-12)">--standalone</text><text class="terminal-2232683120-r2" x="219.6" y="312.8" textLength="634.4" clip-path="url(#terminal-2232683120-line-12)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;generate&#160;standalone&#160;activation&#160;function</text><text class="terminal-2232683120-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-2232683120-line-12)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

146
svgs/viv-help.svg Normal file
View file

@ -0,0 +1,146 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 594.7333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-1825138163-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-1825138163-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-1825138163-r1 { fill: #94e2d5;font-weight: bold }
.terminal-1825138163-r2 { fill: #c6d0f5 }
.terminal-1825138163-r3 { fill: #f5c2e7;font-weight: bold }
.terminal-1825138163-r4 { fill: #c6d0f5;font-weight: bold }
.terminal-1825138163-r5 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-1825138163-clip-terminal">
<rect x="0" y="0" width="853.0" height="511.4" />
</clipPath>
<clipPath id="terminal-1825138163-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-10">
<rect x="0" y="245.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-11">
<rect x="0" y="269.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-12">
<rect x="0" y="294.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-13">
<rect x="0" y="318.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-14">
<rect x="0" y="343.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-15">
<rect x="0" y="367.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-16">
<rect x="0" y="391.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-17">
<rect x="0" y="416.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-18">
<rect x="0" y="440.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1825138163-line-19">
<rect x="0" y="465.1" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="560.4" rx="8"/><text class="terminal-1825138163-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1825138163-clip-terminal)">
<g class="terminal-1825138163-matrix">
<text class="terminal-1825138163-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1825138163-line-0)">usage</text><text class="terminal-1825138163-r2" x="61" y="20" textLength="353.8" clip-path="url(#terminal-1825138163-line-0)">:&#160;viv&#160;[-h]&#160;[-V]&#160;&lt;sub-cmd&gt;&#160;...</text><text class="terminal-1825138163-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1825138163-line-0)">
</text><text class="terminal-1825138163-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-1)">
</text><text class="terminal-1825138163-r3" x="0" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">v</text><text class="terminal-1825138163-r1" x="12.2" y="68.8" textLength="24.4" clip-path="url(#terminal-1825138163-line-2)">iv</text><text class="terminal-1825138163-r3" x="48.8" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">i</text><text class="terminal-1825138163-r1" x="61" y="68.8" textLength="48.8" clip-path="url(#terminal-1825138163-line-2)">sn&#x27;t</text><text class="terminal-1825138163-r3" x="122" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">v</text><text class="terminal-1825138163-r1" x="134.2" y="68.8" textLength="48.8" clip-path="url(#terminal-1825138163-line-2)">env!</text><text class="terminal-1825138163-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">
</text><text class="terminal-1825138163-r2" x="0" y="93.2" textLength="341.6" clip-path="url(#terminal-1825138163-line-3)">to&#160;create/activate&#160;a&#160;vivenv:</text><text class="terminal-1825138163-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-3)">
</text><text class="terminal-1825138163-r2" x="0" y="117.6" textLength="268.4" clip-path="url(#terminal-1825138163-line-4)">-&#160;from&#160;command&#160;line:&#160;`</text><text class="terminal-1825138163-r4" x="268.4" y="117.6" textLength="73.2" clip-path="url(#terminal-1825138163-line-4)">viv&#160;-h</text><text class="terminal-1825138163-r2" x="341.6" y="117.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-4)">`</text><text class="terminal-1825138163-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-4)">
</text><text class="terminal-1825138163-r2" x="0" y="142" textLength="292.8" clip-path="url(#terminal-1825138163-line-5)">-&#160;within&#160;python&#160;script:&#160;</text><text class="terminal-1825138163-r4" x="292.8" y="142" textLength="536.8" clip-path="url(#terminal-1825138163-line-5)">__import__(&quot;viv&quot;).use(&quot;typer&quot;,&#160;&quot;rich-click&quot;)</text><text class="terminal-1825138163-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1825138163-line-5)">
</text><text class="terminal-1825138163-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-6)">
</text><text class="terminal-1825138163-r1" x="0" y="190.8" textLength="85.4" clip-path="url(#terminal-1825138163-line-7)">options</text><text class="terminal-1825138163-r2" x="85.4" y="190.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-7)">:</text><text class="terminal-1825138163-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-7)">
</text><text class="terminal-1825138163-r5" x="24.4" y="215.2" textLength="24.4" clip-path="url(#terminal-1825138163-line-8)">-h</text><text class="terminal-1825138163-r2" x="48.8" y="215.2" textLength="24.4" clip-path="url(#terminal-1825138163-line-8)">,&#160;</text><text class="terminal-1825138163-r5" x="73.2" y="215.2" textLength="73.2" clip-path="url(#terminal-1825138163-line-8)">--help</text><text class="terminal-1825138163-r2" x="146.4" y="215.2" textLength="463.6" clip-path="url(#terminal-1825138163-line-8)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-1825138163-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-8)">
</text><text class="terminal-1825138163-r5" x="24.4" y="239.6" textLength="24.4" clip-path="url(#terminal-1825138163-line-9)">-V</text><text class="terminal-1825138163-r2" x="48.8" y="239.6" textLength="24.4" clip-path="url(#terminal-1825138163-line-9)">,&#160;</text><text class="terminal-1825138163-r5" x="73.2" y="239.6" textLength="109.8" clip-path="url(#terminal-1825138163-line-9)">--version</text><text class="terminal-1825138163-r2" x="183" y="239.6" textLength="512.4" clip-path="url(#terminal-1825138163-line-9)">&#160;&#160;&#160;&#160;show&#160;program&#x27;s&#160;version&#160;number&#160;and&#160;exit</text><text class="terminal-1825138163-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-9)">
</text><text class="terminal-1825138163-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-1825138163-line-10)">
</text><text class="terminal-1825138163-r1" x="0" y="288.4" textLength="134.2" clip-path="url(#terminal-1825138163-line-11)">subcommands</text><text class="terminal-1825138163-r2" x="134.2" y="288.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-11)">:</text><text class="terminal-1825138163-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-11)">
</text><text class="terminal-1825138163-r5" x="24.4" y="312.8" textLength="109.8" clip-path="url(#terminal-1825138163-line-12)">&lt;sub-cmd&gt;</text><text class="terminal-1825138163-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-12)">
</text><text class="terminal-1825138163-r5" x="48.8" y="337.2" textLength="97.6" clip-path="url(#terminal-1825138163-line-13)">list&#160;(l)</text><text class="terminal-1825138163-r2" x="146.4" y="337.2" textLength="280.6" clip-path="url(#terminal-1825138163-line-13)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;list&#160;all&#160;vivenvs</text><text class="terminal-1825138163-r2" x="854" y="337.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-13)">
</text><text class="terminal-1825138163-r5" x="48.8" y="361.6" textLength="85.4" clip-path="url(#terminal-1825138163-line-14)">exe&#160;(e)</text><text class="terminal-1825138163-r2" x="134.2" y="361.6" textLength="500.2" clip-path="url(#terminal-1825138163-line-14)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;run&#160;python/pip&#160;in&#160;existing&#160;vivenv</text><text class="terminal-1825138163-r2" x="854" y="361.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-14)">
</text><text class="terminal-1825138163-r5" x="48.8" y="386" textLength="134.2" clip-path="url(#terminal-1825138163-line-15)">remove&#160;(rm)</text><text class="terminal-1825138163-r2" x="183" y="386" textLength="231.8" clip-path="url(#terminal-1825138163-line-15)">&#160;&#160;&#160;&#160;remove&#160;a&#160;vivenv</text><text class="terminal-1825138163-r2" x="854" y="386" textLength="12.2" clip-path="url(#terminal-1825138163-line-15)">
</text><text class="terminal-1825138163-r5" x="48.8" y="410.4" textLength="122" clip-path="url(#terminal-1825138163-line-16)">freeze&#160;(f)</text><text class="terminal-1825138163-r2" x="170.8" y="410.4" textLength="561.2" clip-path="url(#terminal-1825138163-line-16)">&#160;&#160;&#160;&#160;&#160;create&#160;import&#160;statement&#160;from&#160;package&#160;spec</text><text class="terminal-1825138163-r2" x="854" y="410.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-16)">
</text><text class="terminal-1825138163-r5" x="48.8" y="434.8" textLength="97.6" clip-path="url(#terminal-1825138163-line-17)">info&#160;(i)</text><text class="terminal-1825138163-r2" x="146.4" y="434.8" textLength="414.8" clip-path="url(#terminal-1825138163-line-17)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;get&#160;metadata&#160;about&#160;a&#160;vivenv</text><text class="terminal-1825138163-r2" x="854" y="434.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-17)">
</text><text class="terminal-1825138163-r5" x="48.8" y="459.2" textLength="122" clip-path="url(#terminal-1825138163-line-18)">manage&#160;(m)</text><text class="terminal-1825138163-r2" x="170.8" y="459.2" textLength="268.4" clip-path="url(#terminal-1825138163-line-18)">&#160;&#160;&#160;&#160;&#160;manage&#160;viv&#160;itself</text><text class="terminal-1825138163-r2" x="854" y="459.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-18)">
</text><text class="terminal-1825138163-r5" x="48.8" y="483.6" textLength="97.6" clip-path="url(#terminal-1825138163-line-19)">shim&#160;(s)</text><text class="terminal-1825138163-r2" x="146.4" y="483.6" textLength="439.2" clip-path="url(#terminal-1825138163-line-19)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;generate&#160;viv-powered&#160;cli&#160;apps</text><text class="terminal-1825138163-r2" x="854" y="483.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-19)">
</text><text class="terminal-1825138163-r5" x="48.8" y="508" textLength="85.4" clip-path="url(#terminal-1825138163-line-20)">run&#160;(r)</text><text class="terminal-1825138163-r2" x="134.2" y="508" textLength="500.2" clip-path="url(#terminal-1825138163-line-20)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;run&#160;an&#160;app&#160;with&#160;an&#160;on-demand&#160;venv</text><text class="terminal-1825138163-r2" x="854" y="508" textLength="12.2" clip-path="url(#terminal-1825138163-line-20)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

92
svgs/viv-list-help.svg Normal file
View file

@ -0,0 +1,92 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 277.5333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-3499396704-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-3499396704-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-3499396704-r1 { fill: #94e2d5;font-weight: bold }
.terminal-3499396704-r2 { fill: #c6d0f5 }
.terminal-3499396704-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-3499396704-clip-terminal">
<rect x="0" y="0" width="853.0" height="194.2" />
</clipPath>
<clipPath id="terminal-3499396704-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3499396704-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3499396704-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3499396704-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3499396704-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3499396704-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3499396704-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="243.2" rx="8"/><text class="terminal-3499396704-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;list&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-3499396704-clip-terminal)">
<g class="terminal-3499396704-matrix">
<text class="terminal-3499396704-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-3499396704-line-0)">usage</text><text class="terminal-3499396704-r2" x="61" y="20" textLength="305" clip-path="url(#terminal-3499396704-line-0)">:&#160;viv&#160;list&#160;[-h]&#160;[-v]&#160;[-q]</text><text class="terminal-3499396704-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-3499396704-line-0)">
</text><text class="terminal-3499396704-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-3499396704-line-1)">
</text><text class="terminal-3499396704-r2" x="0" y="68.8" textLength="195.2" clip-path="url(#terminal-3499396704-line-2)">list&#160;all&#160;vivenvs</text><text class="terminal-3499396704-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-3499396704-line-2)">
</text><text class="terminal-3499396704-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-3499396704-line-3)">
</text><text class="terminal-3499396704-r1" x="0" y="117.6" textLength="85.4" clip-path="url(#terminal-3499396704-line-4)">options</text><text class="terminal-3499396704-r2" x="85.4" y="117.6" textLength="12.2" clip-path="url(#terminal-3499396704-line-4)">:</text><text class="terminal-3499396704-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-3499396704-line-4)">
</text><text class="terminal-3499396704-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-3499396704-line-5)">-h</text><text class="terminal-3499396704-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-3499396704-line-5)">,&#160;</text><text class="terminal-3499396704-r3" x="73.2" y="142" textLength="73.2" clip-path="url(#terminal-3499396704-line-5)">--help</text><text class="terminal-3499396704-r2" x="146.4" y="142" textLength="463.6" clip-path="url(#terminal-3499396704-line-5)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-3499396704-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-3499396704-line-5)">
</text><text class="terminal-3499396704-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-3499396704-line-6)">-v</text><text class="terminal-3499396704-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-3499396704-line-6)">,&#160;</text><text class="terminal-3499396704-r3" x="73.2" y="166.4" textLength="109.8" clip-path="url(#terminal-3499396704-line-6)">--verbose</text><text class="terminal-3499396704-r2" x="183" y="166.4" textLength="414.8" clip-path="url(#terminal-3499396704-line-6)">&#160;&#160;&#160;&#160;show&#160;full&#160;metadata&#160;for&#160;vivenvs</text><text class="terminal-3499396704-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-3499396704-line-6)">
</text><text class="terminal-3499396704-r3" x="24.4" y="190.8" textLength="24.4" clip-path="url(#terminal-3499396704-line-7)">-q</text><text class="terminal-3499396704-r2" x="48.8" y="190.8" textLength="24.4" clip-path="url(#terminal-3499396704-line-7)">,&#160;</text><text class="terminal-3499396704-r3" x="73.2" y="190.8" textLength="85.4" clip-path="url(#terminal-3499396704-line-7)">--quiet</text><text class="terminal-3499396704-r2" x="158.6" y="190.8" textLength="427" clip-path="url(#terminal-3499396704-line-7)">&#160;&#160;&#160;&#160;&#160;&#160;suppress&#160;non-essential&#160;output</text><text class="terminal-3499396704-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-3499396704-line-7)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

112
svgs/viv-manage-help.svg Normal file
View file

@ -0,0 +1,112 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 399.5333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-3127839659-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-3127839659-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-3127839659-r1 { fill: #94e2d5;font-weight: bold }
.terminal-3127839659-r2 { fill: #c6d0f5 }
.terminal-3127839659-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-3127839659-clip-terminal">
<rect x="0" y="0" width="853.0" height="316.2" />
</clipPath>
<clipPath id="terminal-3127839659-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-10">
<rect x="0" y="245.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3127839659-line-11">
<rect x="0" y="269.9" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="365.2" rx="8"/><text class="terminal-3127839659-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;manage&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-3127839659-clip-terminal)">
<g class="terminal-3127839659-matrix">
<text class="terminal-3127839659-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-3127839659-line-0)">usage</text><text class="terminal-3127839659-r2" x="61" y="20" textLength="378.2" clip-path="url(#terminal-3127839659-line-0)">:&#160;viv&#160;manage&#160;[-h]&#160;&lt;sub-cmd&gt;&#160;...</text><text class="terminal-3127839659-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-3127839659-line-0)">
</text><text class="terminal-3127839659-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-3127839659-line-1)">
</text><text class="terminal-3127839659-r2" x="0" y="68.8" textLength="207.4" clip-path="url(#terminal-3127839659-line-2)">manage&#160;viv&#160;itself</text><text class="terminal-3127839659-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-3127839659-line-2)">
</text><text class="terminal-3127839659-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-3127839659-line-3)">
</text><text class="terminal-3127839659-r1" x="0" y="117.6" textLength="85.4" clip-path="url(#terminal-3127839659-line-4)">options</text><text class="terminal-3127839659-r2" x="85.4" y="117.6" textLength="12.2" clip-path="url(#terminal-3127839659-line-4)">:</text><text class="terminal-3127839659-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-3127839659-line-4)">
</text><text class="terminal-3127839659-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-3127839659-line-5)">-h</text><text class="terminal-3127839659-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-3127839659-line-5)">,&#160;</text><text class="terminal-3127839659-r3" x="73.2" y="142" textLength="73.2" clip-path="url(#terminal-3127839659-line-5)">--help</text><text class="terminal-3127839659-r2" x="146.4" y="142" textLength="439.2" clip-path="url(#terminal-3127839659-line-5)">&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-3127839659-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-3127839659-line-5)">
</text><text class="terminal-3127839659-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-3127839659-line-6)">
</text><text class="terminal-3127839659-r1" x="0" y="190.8" textLength="122" clip-path="url(#terminal-3127839659-line-7)">subcommand</text><text class="terminal-3127839659-r2" x="122" y="190.8" textLength="12.2" clip-path="url(#terminal-3127839659-line-7)">:</text><text class="terminal-3127839659-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-3127839659-line-7)">
</text><text class="terminal-3127839659-r3" x="24.4" y="215.2" textLength="109.8" clip-path="url(#terminal-3127839659-line-8)">&lt;sub-cmd&gt;</text><text class="terminal-3127839659-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-3127839659-line-8)">
</text><text class="terminal-3127839659-r3" x="48.8" y="239.6" textLength="134.2" clip-path="url(#terminal-3127839659-line-9)">install&#160;(i)</text><text class="terminal-3127839659-r2" x="183" y="239.6" textLength="158.6" clip-path="url(#terminal-3127839659-line-9)">&#160;&#160;install&#160;viv</text><text class="terminal-3127839659-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-3127839659-line-9)">
</text><text class="terminal-3127839659-r3" x="48.8" y="264" textLength="122" clip-path="url(#terminal-3127839659-line-10)">update&#160;(u)</text><text class="terminal-3127839659-r2" x="170.8" y="264" textLength="256.2" clip-path="url(#terminal-3127839659-line-10)">&#160;&#160;&#160;update&#160;viv&#160;version</text><text class="terminal-3127839659-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-3127839659-line-10)">
</text><text class="terminal-3127839659-r3" x="48.8" y="288.4" textLength="97.6" clip-path="url(#terminal-3127839659-line-11)">show&#160;(s)</text><text class="terminal-3127839659-r2" x="146.4" y="288.4" textLength="427" clip-path="url(#terminal-3127839659-line-11)">&#160;&#160;&#160;&#160;&#160;show&#160;current&#160;installation&#160;info</text><text class="terminal-3127839659-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-3127839659-line-11)">
</text><text class="terminal-3127839659-r3" x="48.8" y="312.8" textLength="109.8" clip-path="url(#terminal-3127839659-line-12)">purge&#160;(p)</text><text class="terminal-3127839659-r2" x="158.6" y="312.8" textLength="292.8" clip-path="url(#terminal-3127839659-line-12)">&#160;&#160;&#160;&#160;remove&#160;traces&#160;of&#160;viv</text><text class="terminal-3127839659-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-3127839659-line-12)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -0,0 +1,89 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 253.13333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-201533399-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-201533399-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-201533399-r1 { fill: #94e2d5;font-weight: bold }
.terminal-201533399-r2 { fill: #c6d0f5 }
.terminal-201533399-r3 { fill: #f9e2af;font-weight: bold }
.terminal-201533399-r4 { fill: #f9e2af }
</style>
<defs>
<clipPath id="terminal-201533399-clip-terminal">
<rect x="0" y="0" width="853.0" height="169.79999999999998" />
</clipPath>
<clipPath id="terminal-201533399-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-201533399-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-201533399-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-201533399-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-201533399-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-201533399-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="218.8" rx="8"/><text class="terminal-201533399-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;manage&#160;install&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-201533399-clip-terminal)">
<g class="terminal-201533399-matrix">
<text class="terminal-201533399-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-201533399-line-0)">usage</text><text class="terminal-201533399-r2" x="61" y="20" textLength="707.6" clip-path="url(#terminal-201533399-line-0)">:&#160;viv&#160;manage&#160;install&#160;[-h]&#160;[-r&#160;&lt;ref&gt;]&#160;[-s&#160;&lt;src&gt;]&#160;[-c&#160;&lt;cli&gt;]</text><text class="terminal-201533399-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-201533399-line-0)">
</text><text class="terminal-201533399-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-201533399-line-1)">
</text><text class="terminal-201533399-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-201533399-line-2)">options</text><text class="terminal-201533399-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-201533399-line-2)">:</text><text class="terminal-201533399-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-201533399-line-2)">
</text><text class="terminal-201533399-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-201533399-line-3)">-h</text><text class="terminal-201533399-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-201533399-line-3)">,&#160;</text><text class="terminal-201533399-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-201533399-line-3)">--help</text><text class="terminal-201533399-r2" x="146.4" y="93.2" textLength="488" clip-path="url(#terminal-201533399-line-3)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-201533399-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-201533399-line-3)">
</text><text class="terminal-201533399-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-201533399-line-4)">-r</text><text class="terminal-201533399-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-201533399-line-4)">,&#160;</text><text class="terminal-201533399-r3" x="73.2" y="117.6" textLength="61" clip-path="url(#terminal-201533399-line-4)">--ref</text><text class="terminal-201533399-r4" x="134.2" y="117.6" textLength="73.2" clip-path="url(#terminal-201533399-line-4)">&#160;&lt;ref&gt;</text><text class="terminal-201533399-r2" x="207.4" y="117.6" textLength="451.4" clip-path="url(#terminal-201533399-line-4)">&#160;&#160;&#160;&#160;git&#160;reference&#160;(branch/tag/commit)</text><text class="terminal-201533399-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-201533399-line-4)">
</text><text class="terminal-201533399-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-201533399-line-5)">-s</text><text class="terminal-201533399-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-201533399-line-5)">,&#160;</text><text class="terminal-201533399-r3" x="73.2" y="142" textLength="61" clip-path="url(#terminal-201533399-line-5)">--src</text><text class="terminal-201533399-r4" x="134.2" y="142" textLength="73.2" clip-path="url(#terminal-201533399-line-5)">&#160;&lt;src&gt;</text><text class="terminal-201533399-r2" x="207.4" y="142" textLength="280.6" clip-path="url(#terminal-201533399-line-5)">&#160;&#160;&#160;&#160;path/to/source_file</text><text class="terminal-201533399-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-201533399-line-5)">
</text><text class="terminal-201533399-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-201533399-line-6)">-c</text><text class="terminal-201533399-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-201533399-line-6)">,&#160;</text><text class="terminal-201533399-r3" x="73.2" y="166.4" textLength="61" clip-path="url(#terminal-201533399-line-6)">--cli</text><text class="terminal-201533399-r4" x="134.2" y="166.4" textLength="73.2" clip-path="url(#terminal-201533399-line-6)">&#160;&lt;cli&gt;</text><text class="terminal-201533399-r2" x="207.4" y="166.4" textLength="390.4" clip-path="url(#terminal-201533399-line-6)">&#160;&#160;&#160;&#160;path/to/cli&#160;(symlink&#160;to&#160;src)</text><text class="terminal-201533399-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-201533399-line-6)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -0,0 +1,89 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 253.13333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-1044063791-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-1044063791-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-1044063791-r1 { fill: #94e2d5;font-weight: bold }
.terminal-1044063791-r2 { fill: #c6d0f5 }
.terminal-1044063791-r3 { fill: #f9e2af;font-weight: bold }
.terminal-1044063791-r4 { fill: #f9e2af }
</style>
<defs>
<clipPath id="terminal-1044063791-clip-terminal">
<rect x="0" y="0" width="853.0" height="169.79999999999998" />
</clipPath>
<clipPath id="terminal-1044063791-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1044063791-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1044063791-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1044063791-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1044063791-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-1044063791-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="218.8" rx="8"/><text class="terminal-1044063791-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;manage&#160;purge&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1044063791-clip-terminal)">
<g class="terminal-1044063791-matrix">
<text class="terminal-1044063791-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1044063791-line-0)">usage</text><text class="terminal-1044063791-r2" x="61" y="20" textLength="683.2" clip-path="url(#terminal-1044063791-line-0)">:&#160;viv&#160;manage&#160;purge&#160;[-h]&#160;[-r&#160;&lt;ref&gt;]&#160;[-s&#160;&lt;src&gt;]&#160;[-c&#160;&lt;cli&gt;]</text><text class="terminal-1044063791-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1044063791-line-0)">
</text><text class="terminal-1044063791-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1044063791-line-1)">
</text><text class="terminal-1044063791-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-1044063791-line-2)">options</text><text class="terminal-1044063791-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-1044063791-line-2)">:</text><text class="terminal-1044063791-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1044063791-line-2)">
</text><text class="terminal-1044063791-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-1044063791-line-3)">-h</text><text class="terminal-1044063791-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-1044063791-line-3)">,&#160;</text><text class="terminal-1044063791-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-1044063791-line-3)">--help</text><text class="terminal-1044063791-r2" x="146.4" y="93.2" textLength="488" clip-path="url(#terminal-1044063791-line-3)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-1044063791-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1044063791-line-3)">
</text><text class="terminal-1044063791-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-1044063791-line-4)">-r</text><text class="terminal-1044063791-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-1044063791-line-4)">,&#160;</text><text class="terminal-1044063791-r3" x="73.2" y="117.6" textLength="61" clip-path="url(#terminal-1044063791-line-4)">--ref</text><text class="terminal-1044063791-r4" x="134.2" y="117.6" textLength="73.2" clip-path="url(#terminal-1044063791-line-4)">&#160;&lt;ref&gt;</text><text class="terminal-1044063791-r2" x="207.4" y="117.6" textLength="451.4" clip-path="url(#terminal-1044063791-line-4)">&#160;&#160;&#160;&#160;git&#160;reference&#160;(branch/tag/commit)</text><text class="terminal-1044063791-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1044063791-line-4)">
</text><text class="terminal-1044063791-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-1044063791-line-5)">-s</text><text class="terminal-1044063791-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-1044063791-line-5)">,&#160;</text><text class="terminal-1044063791-r3" x="73.2" y="142" textLength="61" clip-path="url(#terminal-1044063791-line-5)">--src</text><text class="terminal-1044063791-r4" x="134.2" y="142" textLength="73.2" clip-path="url(#terminal-1044063791-line-5)">&#160;&lt;src&gt;</text><text class="terminal-1044063791-r2" x="207.4" y="142" textLength="280.6" clip-path="url(#terminal-1044063791-line-5)">&#160;&#160;&#160;&#160;path/to/source_file</text><text class="terminal-1044063791-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1044063791-line-5)">
</text><text class="terminal-1044063791-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-1044063791-line-6)">-c</text><text class="terminal-1044063791-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-1044063791-line-6)">,&#160;</text><text class="terminal-1044063791-r3" x="73.2" y="166.4" textLength="61" clip-path="url(#terminal-1044063791-line-6)">--cli</text><text class="terminal-1044063791-r4" x="134.2" y="166.4" textLength="73.2" clip-path="url(#terminal-1044063791-line-6)">&#160;&lt;cli&gt;</text><text class="terminal-1044063791-r2" x="207.4" y="166.4" textLength="390.4" clip-path="url(#terminal-1044063791-line-6)">&#160;&#160;&#160;&#160;path/to/cli&#160;(symlink&#160;to&#160;src)</text><text class="terminal-1044063791-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1044063791-line-6)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,80 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 204.33333333333334" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-991960897-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-991960897-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-991960897-r1 { fill: #94e2d5;font-weight: bold }
.terminal-991960897-r2 { fill: #c6d0f5 }
.terminal-991960897-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-991960897-clip-terminal">
<rect x="0" y="0" width="853.0" height="121.0" />
</clipPath>
<clipPath id="terminal-991960897-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-991960897-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-991960897-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-991960897-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="170" rx="8"/><text class="terminal-991960897-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;manage&#160;show&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-991960897-clip-terminal)">
<g class="terminal-991960897-matrix">
<text class="terminal-991960897-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-991960897-line-0)">usage</text><text class="terminal-991960897-r2" x="61" y="20" textLength="329.4" clip-path="url(#terminal-991960897-line-0)">:&#160;viv&#160;manage&#160;show&#160;[-h]&#160;[-p]</text><text class="terminal-991960897-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-991960897-line-0)">
</text><text class="terminal-991960897-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-991960897-line-1)">
</text><text class="terminal-991960897-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-991960897-line-2)">options</text><text class="terminal-991960897-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-991960897-line-2)">:</text><text class="terminal-991960897-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-991960897-line-2)">
</text><text class="terminal-991960897-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-991960897-line-3)">-h</text><text class="terminal-991960897-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-991960897-line-3)">,&#160;</text><text class="terminal-991960897-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-991960897-line-3)">--help</text><text class="terminal-991960897-r2" x="146.4" y="93.2" textLength="500.2" clip-path="url(#terminal-991960897-line-3)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-991960897-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-991960897-line-3)">
</text><text class="terminal-991960897-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-991960897-line-4)">-p</text><text class="terminal-991960897-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-991960897-line-4)">,&#160;</text><text class="terminal-991960897-r3" x="73.2" y="117.6" textLength="146.4" clip-path="url(#terminal-991960897-line-4)">--pythonpath</text><text class="terminal-991960897-r2" x="219.6" y="117.6" textLength="341.6" clip-path="url(#terminal-991960897-line-4)">&#160;&#160;&#160;&#160;show&#160;the&#160;path/to/install</text><text class="terminal-991960897-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-991960897-line-4)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

@ -0,0 +1,89 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 253.13333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-3845269231-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-3845269231-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-3845269231-r1 { fill: #94e2d5;font-weight: bold }
.terminal-3845269231-r2 { fill: #c6d0f5 }
.terminal-3845269231-r3 { fill: #f9e2af;font-weight: bold }
.terminal-3845269231-r4 { fill: #f9e2af }
</style>
<defs>
<clipPath id="terminal-3845269231-clip-terminal">
<rect x="0" y="0" width="853.0" height="169.79999999999998" />
</clipPath>
<clipPath id="terminal-3845269231-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3845269231-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3845269231-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3845269231-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3845269231-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-3845269231-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="218.8" rx="8"/><text class="terminal-3845269231-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;manage&#160;update&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-3845269231-clip-terminal)">
<g class="terminal-3845269231-matrix">
<text class="terminal-3845269231-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-3845269231-line-0)">usage</text><text class="terminal-3845269231-r2" x="61" y="20" textLength="695.4" clip-path="url(#terminal-3845269231-line-0)">:&#160;viv&#160;manage&#160;update&#160;[-h]&#160;[-r&#160;&lt;ref&gt;]&#160;[-s&#160;&lt;src&gt;]&#160;[-c&#160;&lt;cli&gt;]</text><text class="terminal-3845269231-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-3845269231-line-0)">
</text><text class="terminal-3845269231-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-3845269231-line-1)">
</text><text class="terminal-3845269231-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-3845269231-line-2)">options</text><text class="terminal-3845269231-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-3845269231-line-2)">:</text><text class="terminal-3845269231-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-3845269231-line-2)">
</text><text class="terminal-3845269231-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-3845269231-line-3)">-h</text><text class="terminal-3845269231-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-3845269231-line-3)">,&#160;</text><text class="terminal-3845269231-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-3845269231-line-3)">--help</text><text class="terminal-3845269231-r2" x="146.4" y="93.2" textLength="488" clip-path="url(#terminal-3845269231-line-3)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-3845269231-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-3845269231-line-3)">
</text><text class="terminal-3845269231-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-3845269231-line-4)">-r</text><text class="terminal-3845269231-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-3845269231-line-4)">,&#160;</text><text class="terminal-3845269231-r3" x="73.2" y="117.6" textLength="61" clip-path="url(#terminal-3845269231-line-4)">--ref</text><text class="terminal-3845269231-r4" x="134.2" y="117.6" textLength="73.2" clip-path="url(#terminal-3845269231-line-4)">&#160;&lt;ref&gt;</text><text class="terminal-3845269231-r2" x="207.4" y="117.6" textLength="451.4" clip-path="url(#terminal-3845269231-line-4)">&#160;&#160;&#160;&#160;git&#160;reference&#160;(branch/tag/commit)</text><text class="terminal-3845269231-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-3845269231-line-4)">
</text><text class="terminal-3845269231-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-3845269231-line-5)">-s</text><text class="terminal-3845269231-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-3845269231-line-5)">,&#160;</text><text class="terminal-3845269231-r3" x="73.2" y="142" textLength="61" clip-path="url(#terminal-3845269231-line-5)">--src</text><text class="terminal-3845269231-r4" x="134.2" y="142" textLength="73.2" clip-path="url(#terminal-3845269231-line-5)">&#160;&lt;src&gt;</text><text class="terminal-3845269231-r2" x="207.4" y="142" textLength="280.6" clip-path="url(#terminal-3845269231-line-5)">&#160;&#160;&#160;&#160;path/to/source_file</text><text class="terminal-3845269231-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-3845269231-line-5)">
</text><text class="terminal-3845269231-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-3845269231-line-6)">-c</text><text class="terminal-3845269231-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-3845269231-line-6)">,&#160;</text><text class="terminal-3845269231-r3" x="73.2" y="166.4" textLength="61" clip-path="url(#terminal-3845269231-line-6)">--cli</text><text class="terminal-3845269231-r4" x="134.2" y="166.4" textLength="73.2" clip-path="url(#terminal-3845269231-line-6)">&#160;&lt;cli&gt;</text><text class="terminal-3845269231-r2" x="207.4" y="166.4" textLength="390.4" clip-path="url(#terminal-3845269231-line-6)">&#160;&#160;&#160;&#160;path/to/cli&#160;(symlink&#160;to&#160;src)</text><text class="terminal-3845269231-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-3845269231-line-6)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

108
svgs/viv-remove-help.svg Normal file
View file

@ -0,0 +1,108 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 375.13333333333327" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-2078172828-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-2078172828-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-2078172828-r1 { fill: #94e2d5;font-weight: bold }
.terminal-2078172828-r2 { fill: #c6d0f5 }
.terminal-2078172828-r3 { fill: #f9e2af;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-2078172828-clip-terminal">
<rect x="0" y="0" width="853.0" height="291.79999999999995" />
</clipPath>
<clipPath id="terminal-2078172828-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2078172828-line-10">
<rect x="0" y="245.5" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="340.8" rx="8"/><text class="terminal-2078172828-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;remove&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2078172828-clip-terminal)">
<g class="terminal-2078172828-matrix">
<text class="terminal-2078172828-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2078172828-line-0)">usage</text><text class="terminal-2078172828-r2" x="61" y="20" textLength="366" clip-path="url(#terminal-2078172828-line-0)">:&#160;viv&#160;remove&#160;[-h]&#160;[vivenv&#160;...]</text><text class="terminal-2078172828-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2078172828-line-0)">
</text><text class="terminal-2078172828-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2078172828-line-1)">
</text><text class="terminal-2078172828-r2" x="0" y="68.8" textLength="183" clip-path="url(#terminal-2078172828-line-2)">remove&#160;a&#160;vivenv</text><text class="terminal-2078172828-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2078172828-line-2)">
</text><text class="terminal-2078172828-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2078172828-line-3)">
</text><text class="terminal-2078172828-r2" x="0" y="117.6" textLength="292.8" clip-path="url(#terminal-2078172828-line-4)">To&#160;remove&#160;all&#160;viv&#160;venvs:</text><text class="terminal-2078172828-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2078172828-line-4)">
</text><text class="terminal-2078172828-r2" x="0" y="142" textLength="244" clip-path="url(#terminal-2078172828-line-5)">`viv&#160;rm&#160;$(viv&#160;l&#160;-q)`</text><text class="terminal-2078172828-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2078172828-line-5)">
</text><text class="terminal-2078172828-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2078172828-line-6)">
</text><text class="terminal-2078172828-r1" x="0" y="190.8" textLength="244" clip-path="url(#terminal-2078172828-line-7)">positional&#160;arguments</text><text class="terminal-2078172828-r2" x="244" y="190.8" textLength="12.2" clip-path="url(#terminal-2078172828-line-7)">:</text><text class="terminal-2078172828-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2078172828-line-7)">
</text><text class="terminal-2078172828-r3" x="24.4" y="215.2" textLength="73.2" clip-path="url(#terminal-2078172828-line-8)">vivenv</text><text class="terminal-2078172828-r2" x="97.6" y="215.2" textLength="329.4" clip-path="url(#terminal-2078172828-line-8)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;name/hash&#160;of&#160;vivenv</text><text class="terminal-2078172828-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-2078172828-line-8)">
</text><text class="terminal-2078172828-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-2078172828-line-9)">
</text><text class="terminal-2078172828-r1" x="0" y="264" textLength="85.4" clip-path="url(#terminal-2078172828-line-10)">options</text><text class="terminal-2078172828-r2" x="85.4" y="264" textLength="12.2" clip-path="url(#terminal-2078172828-line-10)">:</text><text class="terminal-2078172828-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-2078172828-line-10)">
</text><text class="terminal-2078172828-r3" x="24.4" y="288.4" textLength="24.4" clip-path="url(#terminal-2078172828-line-11)">-h</text><text class="terminal-2078172828-r2" x="48.8" y="288.4" textLength="24.4" clip-path="url(#terminal-2078172828-line-11)">,&#160;</text><text class="terminal-2078172828-r3" x="73.2" y="288.4" textLength="73.2" clip-path="url(#terminal-2078172828-line-11)">--help</text><text class="terminal-2078172828-r2" x="146.4" y="288.4" textLength="427" clip-path="url(#terminal-2078172828-line-11)">&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-2078172828-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-2078172828-line-11)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

125
svgs/viv-run-help.svg Normal file
View file

@ -0,0 +1,125 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 472.7333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-946329781-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-946329781-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-946329781-r1 { fill: #94e2d5;font-weight: bold }
.terminal-946329781-r2 { fill: #c6d0f5 }
.terminal-946329781-r3 { fill: #f9e2af;font-weight: bold }
.terminal-946329781-r4 { fill: #f9e2af }
</style>
<defs>
<clipPath id="terminal-946329781-clip-terminal">
<rect x="0" y="0" width="853.0" height="389.4" />
</clipPath>
<clipPath id="terminal-946329781-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-10">
<rect x="0" y="245.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-11">
<rect x="0" y="269.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-12">
<rect x="0" y="294.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-13">
<rect x="0" y="318.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-946329781-line-14">
<rect x="0" y="343.1" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="438.4" rx="8"/><text class="terminal-946329781-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;run&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-946329781-clip-terminal)">
<g class="terminal-946329781-matrix">
<text class="terminal-946329781-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-946329781-line-0)">usage</text><text class="terminal-946329781-r2" x="61" y="20" textLength="646.6" clip-path="url(#terminal-946329781-line-0)">:&#160;viv&#160;run&#160;[-h]&#160;[-r&#160;&lt;path&gt;]&#160;[-k]&#160;[-b&#160;&lt;bin&gt;]&#160;[reqs&#160;...]</text><text class="terminal-946329781-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-946329781-line-0)">
</text><text class="terminal-946329781-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-946329781-line-1)">
</text><text class="terminal-946329781-r2" x="0" y="68.8" textLength="402.6" clip-path="url(#terminal-946329781-line-2)">run&#160;an&#160;app&#160;with&#160;an&#160;on-demand&#160;venv</text><text class="terminal-946329781-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-946329781-line-2)">
</text><text class="terminal-946329781-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-946329781-line-3)">
</text><text class="terminal-946329781-r2" x="0" y="117.6" textLength="109.8" clip-path="url(#terminal-946329781-line-4)">examples:</text><text class="terminal-946329781-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-946329781-line-4)">
</text><text class="terminal-946329781-r2" x="0" y="142" textLength="463.6" clip-path="url(#terminal-946329781-line-5)">&#160;&#160;viv&#160;r&#160;pycowsay&#160;--&#160;&quot;viv&#160;isn&#x27;t&#160;venv\!&quot;</text><text class="terminal-946329781-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-946329781-line-5)">
</text><text class="terminal-946329781-r2" x="0" y="166.4" textLength="402.6" clip-path="url(#terminal-946329781-line-6)">&#160;&#160;viv&#160;r&#160;rich&#160;-b&#160;python&#160;--&#160;-m&#160;rich</text><text class="terminal-946329781-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-946329781-line-6)">
</text><text class="terminal-946329781-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-946329781-line-7)">
</text><text class="terminal-946329781-r1" x="0" y="215.2" textLength="244" clip-path="url(#terminal-946329781-line-8)">positional&#160;arguments</text><text class="terminal-946329781-r2" x="244" y="215.2" textLength="12.2" clip-path="url(#terminal-946329781-line-8)">:</text><text class="terminal-946329781-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-946329781-line-8)">
</text><text class="terminal-946329781-r3" x="24.4" y="239.6" textLength="48.8" clip-path="url(#terminal-946329781-line-9)">reqs</text><text class="terminal-946329781-r2" x="73.2" y="239.6" textLength="585.6" clip-path="url(#terminal-946329781-line-9)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;requirements&#160;specifiers</text><text class="terminal-946329781-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-946329781-line-9)">
</text><text class="terminal-946329781-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-946329781-line-10)">
</text><text class="terminal-946329781-r1" x="0" y="288.4" textLength="85.4" clip-path="url(#terminal-946329781-line-11)">options</text><text class="terminal-946329781-r2" x="85.4" y="288.4" textLength="12.2" clip-path="url(#terminal-946329781-line-11)">:</text><text class="terminal-946329781-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-946329781-line-11)">
</text><text class="terminal-946329781-r3" x="24.4" y="312.8" textLength="24.4" clip-path="url(#terminal-946329781-line-12)">-h</text><text class="terminal-946329781-r2" x="48.8" y="312.8" textLength="24.4" clip-path="url(#terminal-946329781-line-12)">,&#160;</text><text class="terminal-946329781-r3" x="73.2" y="312.8" textLength="73.2" clip-path="url(#terminal-946329781-line-12)">--help</text><text class="terminal-946329781-r2" x="146.4" y="312.8" textLength="610" clip-path="url(#terminal-946329781-line-12)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-946329781-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-946329781-line-12)">
</text><text class="terminal-946329781-r3" x="24.4" y="337.2" textLength="24.4" clip-path="url(#terminal-946329781-line-13)">-r</text><text class="terminal-946329781-r2" x="48.8" y="337.2" textLength="24.4" clip-path="url(#terminal-946329781-line-13)">,&#160;</text><text class="terminal-946329781-r3" x="73.2" y="337.2" textLength="170.8" clip-path="url(#terminal-946329781-line-13)">--requirements</text><text class="terminal-946329781-r4" x="244" y="337.2" textLength="85.4" clip-path="url(#terminal-946329781-line-13)">&#160;&lt;path&gt;</text><text class="terminal-946329781-r2" x="329.4" y="337.2" textLength="402.6" clip-path="url(#terminal-946329781-line-13)">&#160;&#160;&#160;&#160;path/to/requirements.txt&#160;file</text><text class="terminal-946329781-r2" x="854" y="337.2" textLength="12.2" clip-path="url(#terminal-946329781-line-13)">
</text><text class="terminal-946329781-r3" x="24.4" y="361.6" textLength="24.4" clip-path="url(#terminal-946329781-line-14)">-k</text><text class="terminal-946329781-r2" x="48.8" y="361.6" textLength="24.4" clip-path="url(#terminal-946329781-line-14)">,&#160;</text><text class="terminal-946329781-r3" x="73.2" y="361.6" textLength="73.2" clip-path="url(#terminal-946329781-line-14)">--keep</text><text class="terminal-946329781-r2" x="146.4" y="361.6" textLength="475.8" clip-path="url(#terminal-946329781-line-14)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;preserve&#160;environment</text><text class="terminal-946329781-r2" x="854" y="361.6" textLength="12.2" clip-path="url(#terminal-946329781-line-14)">
</text><text class="terminal-946329781-r3" x="24.4" y="386" textLength="24.4" clip-path="url(#terminal-946329781-line-15)">-b</text><text class="terminal-946329781-r2" x="48.8" y="386" textLength="24.4" clip-path="url(#terminal-946329781-line-15)">,&#160;</text><text class="terminal-946329781-r3" x="73.2" y="386" textLength="61" clip-path="url(#terminal-946329781-line-15)">--bin</text><text class="terminal-946329781-r4" x="134.2" y="386" textLength="73.2" clip-path="url(#terminal-946329781-line-15)">&#160;&lt;bin&gt;</text><text class="terminal-946329781-r2" x="207.4" y="386" textLength="549" clip-path="url(#terminal-946329781-line-15)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;console_script/script&#160;to&#160;invoke</text><text class="terminal-946329781-r2" x="854" y="386" textLength="12.2" clip-path="url(#terminal-946329781-line-15)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

145
svgs/viv-shim-help.svg Normal file
View file

@ -0,0 +1,145 @@
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 594.7333333333333" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-2493160879-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-2493160879-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.shadow {
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
}
.terminal-2493160879-r1 { fill: #94e2d5;font-weight: bold }
.terminal-2493160879-r2 { fill: #c6d0f5 }
.terminal-2493160879-r3 { fill: #f9e2af;font-weight: bold }
.terminal-2493160879-r4 { fill: #f9e2af }
</style>
<defs>
<clipPath id="terminal-2493160879-clip-terminal">
<rect x="0" y="0" width="853.0" height="511.4" />
</clipPath>
<clipPath id="terminal-2493160879-line-0">
<rect x="0" y="1.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-1">
<rect x="0" y="25.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-2">
<rect x="0" y="50.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-3">
<rect x="0" y="74.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-4">
<rect x="0" y="99.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-5">
<rect x="0" y="123.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-6">
<rect x="0" y="147.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-7">
<rect x="0" y="172.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-8">
<rect x="0" y="196.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-9">
<rect x="0" y="221.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-10">
<rect x="0" y="245.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-11">
<rect x="0" y="269.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-12">
<rect x="0" y="294.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-13">
<rect x="0" y="318.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-14">
<rect x="0" y="343.1" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-15">
<rect x="0" y="367.5" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-16">
<rect x="0" y="391.9" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-17">
<rect x="0" y="416.3" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-18">
<rect x="0" y="440.7" width="854" height="24.65"/>
</clipPath>
<clipPath id="terminal-2493160879-line-19">
<rect x="0" y="465.1" width="854" height="24.65"/>
</clipPath>
</defs>
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="560.4" rx="8"/><text class="terminal-2493160879-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv&#160;shim&#160;--help</text>
<g transform="translate(32,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2493160879-clip-terminal)">
<g class="terminal-2493160879-matrix">
<text class="terminal-2493160879-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2493160879-line-0)">usage</text><text class="terminal-2493160879-r2" x="61" y="20" textLength="756.4" clip-path="url(#terminal-2493160879-line-0)">:&#160;viv&#160;shim&#160;[-h]&#160;[-p&#160;{abs,rel}]&#160;[-r&#160;&lt;path&gt;]&#160;[-k]&#160;[-s]&#160;[-f]&#160;[-o&#160;</text><text class="terminal-2493160879-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2493160879-line-0)">
</text><text class="terminal-2493160879-r2" x="0" y="44.4" textLength="353.8" clip-path="url(#terminal-2493160879-line-1)">&lt;path&gt;]&#160;[-b&#160;&lt;bin&gt;]&#160;[reqs&#160;...]</text><text class="terminal-2493160879-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2493160879-line-1)">
</text><text class="terminal-2493160879-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2493160879-line-2)">
</text><text class="terminal-2493160879-r2" x="0" y="93.2" textLength="353.8" clip-path="url(#terminal-2493160879-line-3)">generate&#160;viv-powered&#160;cli&#160;apps</text><text class="terminal-2493160879-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2493160879-line-3)">
</text><text class="terminal-2493160879-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2493160879-line-4)">
</text><text class="terminal-2493160879-r2" x="0" y="142" textLength="109.8" clip-path="url(#terminal-2493160879-line-5)">examples:</text><text class="terminal-2493160879-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2493160879-line-5)">
</text><text class="terminal-2493160879-r2" x="0" y="166.4" textLength="195.2" clip-path="url(#terminal-2493160879-line-6)">&#160;&#160;viv&#160;shim&#160;black</text><text class="terminal-2493160879-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2493160879-line-6)">
</text><text class="terminal-2493160879-r2" x="0" y="190.8" textLength="561.2" clip-path="url(#terminal-2493160879-line-7)">&#160;&#160;viv&#160;shim&#160;yartsu&#160;-o&#160;~/bin/yartsu&#160;--standalone</text><text class="terminal-2493160879-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2493160879-line-7)">
</text><text class="terminal-2493160879-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-2493160879-line-8)">
</text><text class="terminal-2493160879-r1" x="0" y="239.6" textLength="244" clip-path="url(#terminal-2493160879-line-9)">positional&#160;arguments</text><text class="terminal-2493160879-r2" x="244" y="239.6" textLength="12.2" clip-path="url(#terminal-2493160879-line-9)">:</text><text class="terminal-2493160879-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-2493160879-line-9)">
</text><text class="terminal-2493160879-r3" x="24.4" y="264" textLength="48.8" clip-path="url(#terminal-2493160879-line-10)">reqs</text><text class="terminal-2493160879-r2" x="73.2" y="264" textLength="585.6" clip-path="url(#terminal-2493160879-line-10)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;requirements&#160;specifiers</text><text class="terminal-2493160879-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-2493160879-line-10)">
</text><text class="terminal-2493160879-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-2493160879-line-11)">
</text><text class="terminal-2493160879-r1" x="0" y="312.8" textLength="85.4" clip-path="url(#terminal-2493160879-line-12)">options</text><text class="terminal-2493160879-r2" x="85.4" y="312.8" textLength="12.2" clip-path="url(#terminal-2493160879-line-12)">:</text><text class="terminal-2493160879-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-2493160879-line-12)">
</text><text class="terminal-2493160879-r3" x="24.4" y="337.2" textLength="24.4" clip-path="url(#terminal-2493160879-line-13)">-h</text><text class="terminal-2493160879-r2" x="48.8" y="337.2" textLength="24.4" clip-path="url(#terminal-2493160879-line-13)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="337.2" textLength="73.2" clip-path="url(#terminal-2493160879-line-13)">--help</text><text class="terminal-2493160879-r2" x="146.4" y="337.2" textLength="610" clip-path="url(#terminal-2493160879-line-13)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;show&#160;this&#160;help&#160;message&#160;and&#160;exit</text><text class="terminal-2493160879-r2" x="854" y="337.2" textLength="12.2" clip-path="url(#terminal-2493160879-line-13)">
</text><text class="terminal-2493160879-r3" x="24.4" y="361.6" textLength="24.4" clip-path="url(#terminal-2493160879-line-14)">-p</text><text class="terminal-2493160879-r2" x="48.8" y="361.6" textLength="24.4" clip-path="url(#terminal-2493160879-line-14)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="361.6" textLength="73.2" clip-path="url(#terminal-2493160879-line-14)">--path</text><text class="terminal-2493160879-r4" x="146.4" y="361.6" textLength="122" clip-path="url(#terminal-2493160879-line-14)">&#160;{abs,rel}</text><text class="terminal-2493160879-r2" x="268.4" y="361.6" textLength="549" clip-path="url(#terminal-2493160879-line-14)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;generate&#160;line&#160;to&#160;add&#160;viv&#160;to&#160;sys.path</text><text class="terminal-2493160879-r2" x="854" y="361.6" textLength="12.2" clip-path="url(#terminal-2493160879-line-14)">
</text><text class="terminal-2493160879-r3" x="24.4" y="386" textLength="24.4" clip-path="url(#terminal-2493160879-line-15)">-r</text><text class="terminal-2493160879-r2" x="48.8" y="386" textLength="24.4" clip-path="url(#terminal-2493160879-line-15)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="386" textLength="170.8" clip-path="url(#terminal-2493160879-line-15)">--requirements</text><text class="terminal-2493160879-r4" x="244" y="386" textLength="85.4" clip-path="url(#terminal-2493160879-line-15)">&#160;&lt;path&gt;</text><text class="terminal-2493160879-r2" x="329.4" y="386" textLength="402.6" clip-path="url(#terminal-2493160879-line-15)">&#160;&#160;&#160;&#160;path/to/requirements.txt&#160;file</text><text class="terminal-2493160879-r2" x="854" y="386" textLength="12.2" clip-path="url(#terminal-2493160879-line-15)">
</text><text class="terminal-2493160879-r3" x="24.4" y="410.4" textLength="24.4" clip-path="url(#terminal-2493160879-line-16)">-k</text><text class="terminal-2493160879-r2" x="48.8" y="410.4" textLength="24.4" clip-path="url(#terminal-2493160879-line-16)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="410.4" textLength="73.2" clip-path="url(#terminal-2493160879-line-16)">--keep</text><text class="terminal-2493160879-r2" x="146.4" y="410.4" textLength="475.8" clip-path="url(#terminal-2493160879-line-16)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;preserve&#160;environment</text><text class="terminal-2493160879-r2" x="854" y="410.4" textLength="12.2" clip-path="url(#terminal-2493160879-line-16)">
</text><text class="terminal-2493160879-r3" x="24.4" y="434.8" textLength="24.4" clip-path="url(#terminal-2493160879-line-17)">-s</text><text class="terminal-2493160879-r2" x="48.8" y="434.8" textLength="24.4" clip-path="url(#terminal-2493160879-line-17)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="434.8" textLength="146.4" clip-path="url(#terminal-2493160879-line-17)">--standalone</text><text class="terminal-2493160879-r2" x="219.6" y="434.8" textLength="634.4" clip-path="url(#terminal-2493160879-line-17)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;generate&#160;standalone&#160;activation&#160;function</text><text class="terminal-2493160879-r2" x="854" y="434.8" textLength="12.2" clip-path="url(#terminal-2493160879-line-17)">
</text><text class="terminal-2493160879-r3" x="24.4" y="459.2" textLength="24.4" clip-path="url(#terminal-2493160879-line-18)">-f</text><text class="terminal-2493160879-r2" x="48.8" y="459.2" textLength="24.4" clip-path="url(#terminal-2493160879-line-18)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="459.2" textLength="97.6" clip-path="url(#terminal-2493160879-line-18)">--freeze</text><text class="terminal-2493160879-r2" x="170.8" y="459.2" textLength="585.6" clip-path="url(#terminal-2493160879-line-18)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;freeze/resolve&#160;all&#160;dependencies</text><text class="terminal-2493160879-r2" x="854" y="459.2" textLength="12.2" clip-path="url(#terminal-2493160879-line-18)">
</text><text class="terminal-2493160879-r3" x="24.4" y="483.6" textLength="24.4" clip-path="url(#terminal-2493160879-line-19)">-o</text><text class="terminal-2493160879-r2" x="48.8" y="483.6" textLength="24.4" clip-path="url(#terminal-2493160879-line-19)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="483.6" textLength="97.6" clip-path="url(#terminal-2493160879-line-19)">--output</text><text class="terminal-2493160879-r4" x="170.8" y="483.6" textLength="85.4" clip-path="url(#terminal-2493160879-line-19)">&#160;&lt;path&gt;</text><text class="terminal-2493160879-r2" x="256.2" y="483.6" textLength="353.8" clip-path="url(#terminal-2493160879-line-19)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;path/to/output&#160;file</text><text class="terminal-2493160879-r2" x="854" y="483.6" textLength="12.2" clip-path="url(#terminal-2493160879-line-19)">
</text><text class="terminal-2493160879-r3" x="24.4" y="508" textLength="24.4" clip-path="url(#terminal-2493160879-line-20)">-b</text><text class="terminal-2493160879-r2" x="48.8" y="508" textLength="24.4" clip-path="url(#terminal-2493160879-line-20)">,&#160;</text><text class="terminal-2493160879-r3" x="73.2" y="508" textLength="61" clip-path="url(#terminal-2493160879-line-20)">--bin</text><text class="terminal-2493160879-r4" x="134.2" y="508" textLength="73.2" clip-path="url(#terminal-2493160879-line-20)">&#160;&lt;bin&gt;</text><text class="terminal-2493160879-r2" x="207.4" y="508" textLength="549" clip-path="url(#terminal-2493160879-line-20)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;console_script/script&#160;to&#160;invoke</text><text class="terminal-2493160879-r2" x="854" y="508" textLength="12.2" clip-path="url(#terminal-2493160879-line-20)">
</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

402
viv.py Executable file → Normal file
View file

@ -9,6 +9,7 @@
from __future__ import annotations
import hashlib
import inspect
import itertools
import json
import os
@ -31,19 +32,17 @@ from argparse import (
_SubParsersAction,
)
from argparse import ArgumentParser as StdArgParser
from dataclasses import dataclass
from datetime import datetime
from itertools import zip_longest
from pathlib import Path
from textwrap import dedent, fill, wrap
from textwrap import dedent, fill
from types import TracebackType
from typing import (
Any,
Dict,
Generator,
List,
NoReturn,
Optional,
Sequence,
TextIO,
Tuple,
Type,
@ -51,7 +50,7 @@ from typing import (
from urllib.error import HTTPError
from urllib.request import urlopen
__version__ = "23.5a4-13-ga6bd81d-dev"
__version__ = "23.5a4-21-gf5c91fe-dev"
class Config:
@ -149,16 +148,6 @@ class Spinner:
class Ansi:
"""control ouptut of ansi(VT100) control codes"""
BOX: Dict[str, str] = {
"v": "",
"h": "",
"tl": "",
"tr": "",
"bl": "",
"br": "",
"sep": "",
}
def __init__(self) -> None:
self.bold: str = "\033[1m"
self.dim: str = "\033[2m"
@ -229,104 +218,9 @@ class Ansi:
new_output = [f"{self.red}->{self.end} {line}" for line in output.splitlines()]
sys.stdout.write("\n".join(new_output) + "\n")
def _get_column_sizes(
self, rows: Tuple[Tuple[str, Sequence[str]], ...]
) -> List[int]:
"""convert list of rows to list of columns sizes
First convert rows into list of columns,
then get max string length for each column.
"""
return list(max(map(len, lst)) for lst in map(list, zip(*rows))) # type: ignore
def _make_row(self, row: Generator[Any, None, None]) -> str:
return (
f" {self.BOX['v']} "
+ f" {self.BOX['sep']} ".join(row)
+ f" {self.BOX['v']}"
)
def _sanitize_row(
self, sizes: List[int], row: Tuple[str, Sequence[str]]
) -> Tuple[Tuple[str, Sequence[str]], ...]:
if len(row[1]) > sizes[1]:
return tuple(
zip_longest(
(row[0],),
wrap(str(row[1]), break_on_hyphens=False, width=sizes[1]),
fillvalue="",
)
)
else:
return (row,)
def viv_preamble(self, style: str = "magenta", sep: str = "::") -> str:
return f"{self.cyan}viv{self.end}{self.__dict__[style]}{sep}{self.end}"
def table(
self, rows: Tuple[Tuple[str, Sequence[str]], ...], header_style: str = "cyan"
) -> None:
"""generate a table with outline and styled header assumes two columns
Args:
rows: sequence of the rows, first item assumed to be header
header_style: color/style for header row
"""
sizes = self._get_column_sizes(rows)
col2_limit = shutil.get_terminal_size().columns - 20
if col2_limit < 20:
error("increase screen size to view table", code=1)
elif sizes[1] > col2_limit:
sizes[1] = col2_limit
header, rows = rows[0], rows[1:]
# this is maybe taking comprehensions too far....
table_rows = (
self._make_row(row)
for row in (
# header row
(
self.__dict__[header_style] + f"{cell:<{sizes[i]}}" + self.end
for i, cell in enumerate(header)
),
# rest of the rows
*(
(f"{cell:<{sizes[i]}}" for i, cell in enumerate(row))
for row in (
newrow
for row in rows
for newrow in self._sanitize_row(sizes, row)
)
),
)
)
sys.stderr.write(
"".join(
(
" ",
self.BOX["tl"],
self.BOX["h"] * (sum(sizes) + 5),
self.BOX["tr"],
"\n",
)
)
)
sys.stderr.write("\n".join(table_rows) + "\n")
sys.stderr.write(
"".join(
(
" ",
self.BOX["bl"],
self.BOX["h"] * (sum(sizes) + 5),
self.BOX["br"],
"\n",
)
)
)
a = Ansi()
@ -339,26 +233,45 @@ to create/activate a vivenv:
- from command line: `{a.style("viv -h","bold")}`
- within python script: {a.style('__import__("viv").use("typer", "rich-click")','bold')}
"""
_standalone_func = r"""def _viv_use(*pkgs, track_exe=False, name=""):
T,F,N=True,False,None;i,s,m,spec=__import__,str,map,[*pkgs]
e,w=lambda x: T if x else F,lambda p,t: p.write_text(t)
if not {*m(type,pkgs)}=={s}: raise ValueError(f"spec: {pkgs} is invalid")
ge,sys,P,ew=i("os").getenv,i("sys"),i("pathlib").Path,i("sys").stderr.write
(cache:=(P(ge("XDG_CACHE_HOME",P.home()/".cache"))/"viv"/"venvs")).mkdir(parents=T,exist_ok=T)
((sha256:=i("hashlib").sha256()).update((s(spec)+
(((exe:=("N/A",s(P(i("sys").executable).resolve()))[e(track_exe)])))).encode()))
if {env:=cache/(((_id:=sha256.hexdigest()),name)[e(name)])}-{*cache.glob("*/")} or ge("VIV_FORCE"):
v=e(ge("VIV_VERBOSE"));ew(f"generating new vivenv -> {env.name}\n")
i("venv").EnvBuilder(with_pip=T,clear=T).create(env)
w(env/"pip.conf","[global]\ndisable-pip-version-check=true")
if (rc:=(p:=i("subprocess").run([env/"bin"/"pip","install","--force-reinstall",*spec],text=T,
stdout=(-1,N)[v],stderr=(-2,N)[v])).returncode)!=0:
if env.is_dir():i("shutil").rmtree(env)
ew(f"pip had non zero exit ({rc})\n{p.stdout}\n");sys.exit(rc)
w(env/"viv-info.json",i("json").dumps(
{"created":s(i("datetime").datetime.today()),"id":_id,"spec":spec,"exe":exe}))
sys.path=[p for p in (*sys.path,s(*(env/"lib").glob("py*/si*")))if p!=i("site").USER_SITE]
return env""" # noqa
import hashlib, json, os, site, shutil, sys, venv # noqa
from pathlib import Path # noqa
from datetime import datetime # noqa
from subprocess import run # noqa
if not {*map(type, pkgs)} == {str}:
raise ValueError(f"spec: {pkgs} is invalid")
meta = dict.fromkeys(("created", "accessed"), (t := str(datetime.today())))
runner = str(Path(__file__).absolute().resolve())
force, verbose, xdg = map(os.getenv, ("VIV_FORCE", "VIV_VERBOSE", "XDG_CACHE_HOME"))
cache = (Path(xdg) if xdg else Path.home() / ".cache") / "viv" / "venvs"
cache.mkdir(parents=True, exist_ok=True)
exe = str(Path(sys.executable).resolve()) if track_exe else "N/A"
(sha256 := hashlib.sha256()).update((str(spec := [*pkgs]) + exe).encode())
_id = sha256.hexdigest()
if (env := cache / (name if name else _id)) not in cache.glob("*/") or force:
sys.stderr.write(f"generating new vivenv -> {env.name}\n")
venv.EnvBuilder(with_pip=True, clear=True).create(env)
(env / "pip.conf").write_text("[global]\ndisable-pip-version-check=true")
run_kw = dict(zip(("stdout", "stderr"), ((None,) * 2 if verbose else (-1, 2))))
p = run([env / "bin" / "pip", "install", "--force-reinstall", *spec], **run_kw)
if (rc := p.returncode) != 0:
if env.is_dir():
shutil.rmtree(env)
sys.stderr.write(f"pip had non zero exit ({rc})\n{p.stdout.decode()}\n")
sys.exit(rc)
meta.update(dict(id=_id, spec=spec, exe=exe, name=name, files=[runner]))
else:
meta = json.loads((env / "vivmeta.json").read_text())
meta.update(dict(accessed=t, files=sorted({*meta["files"],runner})))
(env / "vivmeta.json").write_text(json.dumps(meta))
sys.path = [p for p in sys.path if not p != site.USER_SITE]
site.addsitedir(str(*(env / "lib").glob("py*/si*")))
return env
"""
def noqa(self, txt: str) -> str:
max_length = max(map(len, txt.splitlines()))
@ -372,16 +285,13 @@ to create/activate a vivenv:
return f"""__import__("viv").use({spec_str})"""
def standalone(self, spec: List[str]) -> str:
func_use = self.noqa(
"\n".join((self._standalone_func, self._use_str(spec, standalone=True)))
func_use = "\n".join(
(self._standalone_func, self.noqa(self._use_str(spec, standalone=True)))
)
return f"""
# see `python3 <(curl -fsSL gh.dayl.in/viv/viv.py) --help`
# <<<<< auto-generated by viv (v{__version__})
# fmt: off
# see `python3 <(curl -fsSL viv.dayl.in/viv.py) --help`
# AUTOGENERATED by viv (v{__version__})
{func_use}
# fmt: on
# >>>>> code golfed with <3
"""
def _rel_import(self, local_source: Optional[Path]) -> str:
@ -426,9 +336,7 @@ to create/activate a vivenv:
bin: str,
) -> str:
if standalone:
imports = "\n".join(
("# fmt: off", self.noqa(self._standalone_func), "# fmt: on")
)
imports = self._standalone_func
elif path == "abs":
imports = self._absolute_import(local_source)
elif path == "rel":
@ -724,37 +632,78 @@ def get_hash(spec: Tuple[str, ...] | List[str], track_exe: bool = False) -> str:
return sha256.hexdigest()
@dataclass
class Meta:
name: str
id: str
spec: List[str]
files: List[str]
exe: str
created: str = ""
accessed: str = ""
@classmethod
def load(cls, name: str) -> "Meta":
if not (c.venvcache / name / "vivmeta.json").exists():
warn(f"possibly corrupted vivenv: {name}")
# add empty values for corrupted vivenvs so it will still load
return cls(name=name, spec=[""], files=[""], exe="", id="")
else:
meta = json.loads((c.venvcache / name / "vivmeta.json").read_text())
return cls(**meta)
def write(self, p: Path | None = None) -> None:
if not p:
p = (c.venvcache) / self.name / "vivmeta.json"
p.write_text(json.dumps(self.__dict__))
def addfile(self, f: Path) -> None:
self.accessed = str(datetime.today())
self.files = sorted({*self.files, str(f.absolute().resolve())})
class ViVenv:
def __init__(
self,
spec: List[str],
spec: List[str] = [""],
track_exe: bool = False,
id: str | None = None,
name: str = "",
path: Path | None = None,
skip_load: bool = False,
metadata: Meta | None = None,
) -> None:
self.spec = self._validate_spec(spec)
self.exe = str(Path(sys.executable).resolve()) if track_exe else "N/A"
self.id = id if id else get_hash(spec, track_exe)
self.name = name if name else self.id
self.loaded = False
spec = self._validate_spec(spec)
id = id if id else get_hash(spec, track_exe)
self.name = name if name else id
self.path = path if path else c.venvcache / self.name
self.exists = self.name in [d.name for d in c.venvcache.iterdir()]
if not metadata:
if self.name in (d.name for d in c.venvcache.iterdir()):
self.loaded = True
self.meta = Meta.load(self.name)
else:
self.meta = Meta(
spec=spec,
name=self.name,
id=id,
files=[],
exe=str(Path(sys.executable).resolve()) if track_exe else "N/A",
)
else:
self.meta = metadata
@classmethod
def load(cls, name: str) -> "ViVenv":
"""generate a vivenv from a viv-info.json file
"""generate a vivenv from a vivmeta.json
Args:
name: used as lookup in the vivenv cache
"""
if not (c.venvcache / name / "viv-info.json").is_file():
warn(f"possibly corrupted vivenv: {name}")
return cls(name=name, spec=[""])
else:
with (c.venvcache / name / "viv-info.json").open("r") as f:
venvconfig = json.load(f)
vivenv = cls(name=name, spec=venvconfig["spec"], id=venvconfig["id"])
vivenv.exe = venvconfig["exe"]
vivenv = cls(name=name, metadata=Meta.load(name))
return vivenv
@ -781,12 +730,14 @@ class ViVenv:
with (self.path / "pip.conf").open("w") as f:
f.write("[global]\ndisable-pip-version-check = true")
self.meta.created = str(datetime.today())
def install_pkgs(self) -> None:
cmd: List[str] = [
str(self.path / "bin" / "pip"),
"install",
"--force-reinstall",
] + self.spec
] + self.meta.spec
run(
cmd,
@ -795,24 +746,57 @@ class ViVenv:
verbose=bool(os.getenv("VIV_VERBOSE")),
)
def dump_info(self, write: bool = False) -> None:
# TODO: include associated files in 'info'
# means it needs to be loaded first
# or keep a seperate file hash in c.share?
info = {
"created": str(datetime.today()),
"id": self.id,
"spec": self.spec,
"exe": self.exe,
}
def show(self, verbose: bool = False) -> None:
if not verbose:
_id = (
self.meta.id[:8]
if self.meta.id == self.name
else (self.name[:5] + "..." if len(self.name) > 8 else self.name)
)
# save metadata to json file
if write:
with (self.path / "viv-info.json").open("w") as f:
json.dump(info, f)
sys.stdout.write(
f"""{a.bold}{a.cyan}{_id}{a.end} """
f"""{a.style(", ".join(self.meta.spec),'dim')}\n"""
)
else:
info["spec"] = ", ".join(self.spec)
a.table((("key", "value"), *((k, v) for k, v in info.items())))
self.tree()
def _tree_leaves(self, items: List[str], indent: str = "") -> str:
tree_chars = [""] * (len(items) - 1) + [""]
return "\n".join(
(f"{indent}{a.yellow}{c}{a.end} {i}" for c, i in zip(tree_chars, items))
)
def tree(self) -> None:
_id = self.meta.id if self.meta.id == self.name else self.name
# TODO: generarlize and loop this or make a template..
items = [
f"{a.magenta}{k}{a.end}: {v}"
for k, v in {
**{
"spec": ", ".join(self.meta.spec),
"created": self.meta.created,
"accessed": self.meta.accessed,
},
**({"exe": self.meta.exe} if self.meta.exe != "N/A" else {}),
**({"files": ""} if self.meta.files else {}),
}.items()
]
rows = [f"\n{a.bold}{a.cyan}{_id}{a.end}", self._tree_leaves(items)]
if self.meta.files:
rows += (self._tree_leaves(self.meta.files, indent=" "),)
sys.stdout.write("\n".join(rows) + "\n")
def get_caller_path() -> Path:
"""get callers callers file path"""
# viv.py is fist in stack since function is used in `viv.use()`
frame_info = inspect.stack()[2]
filepath = frame_info.filename # in python 3.5+, you can use frame_info.filename
del frame_info # drop the reference to the stack frame to avoid reference cycles
return Path(filepath).absolute()
def use(*packages: str, track_exe: bool = False, name: str = "") -> Path:
@ -823,26 +807,22 @@ def use(*packages: str, track_exe: bool = False, name: str = "") -> Path:
track_exe: if true make env python exe specific
name: use as vivenv name, if not provided id is used
"""
vivenv = ViVenv(list(packages), track_exe=track_exe, name=name)
if not vivenv.exists or os.getenv("VIV_FORCE"):
vivenv = ViVenv(list(packages), track_exe=track_exe, name=name)
if not vivenv.loaded or os.getenv("VIV_FORCE"):
vivenv.create()
vivenv.install_pkgs()
vivenv.dump_info(write=True)
vivenv.meta.addfile(get_caller_path())
vivenv.meta.write()
modify_sys_path(vivenv.path)
return vivenv.path
def modify_sys_path(new_path: Path) -> None:
# remove user-site
for i, path in enumerate(sys.path):
if path == site.USER_SITE:
sys.path.pop(i)
sys.path.append(
str([p for p in (new_path / "lib").glob("python*/site-packages")][0])
)
sys.path = [p for p in sys.path if p is not site.USER_SITE]
site.addsitedir(str(*(new_path / "lib").glob("python*/site-packages")))
def get_venvs() -> Dict[str, ViVenv]:
@ -923,9 +903,7 @@ class Viv:
def __init__(self) -> None:
self.vivenvs = get_venvs()
self._get_sources()
self.name = (
"viv" if self.local else "python3 <(curl -fsSL gh.dayl.in/viv/viv.py)"
)
self.name = "viv" if self.local else "python3 <(curl -fsSL viv.dayl.in/viv.py)"
def _get_sources(self) -> None:
self.local_source: Optional[Path] = None
@ -954,7 +932,9 @@ class Viv:
for k, v in self.vivenvs.items():
if name_id == k or v.name == name_id:
matches.append(v)
elif k.startswith(name_id) or (v.id.startswith(name_id) and v.id == v.name):
elif k.startswith(name_id) or (
v.meta.id.startswith(name_id) and v.meta.id == v.name
):
matches.append(v)
elif v.name.startswith(name_id):
matches.append(v)
@ -994,11 +974,10 @@ class Viv:
# re-create env again since path's are hard-coded
vivenv = ViVenv(spec)
if not vivenv.exists or os.getenv("VIV_FORCE"):
if not vivenv.loaded or os.getenv("VIV_FORCE"):
vivenv.create()
vivenv.install_pkgs()
vivenv.dump_info(write=True)
vivenv.meta.write()
else:
echo("re-using existing vivenv")
@ -1021,19 +1000,8 @@ class Viv:
elif len(self.vivenvs) == 0:
echo("no vivenvs setup")
else:
rows = (
("vivenv", "spec"),
*(
(
f"{vivenv.name[:6]}..."
if len(vivenv.name) > 9
else vivenv.name,
", ".join(vivenv.spec),
)
for vivenv in self.vivenvs.values()
),
)
a.table(rows)
for _, vivenv in self.vivenvs.items():
vivenv.show(args.verbose)
def exe(self, args: Namespace) -> None:
"""run python/pip in existing vivenv"""
@ -1056,14 +1024,12 @@ class Viv:
def info(self, args: Namespace) -> None:
"""get metadata about a vivenv"""
vivenv = self._match_vivenv(args.vivenv)
metadata_file = vivenv.path / "viv-info.json"
metadata_file = vivenv.path / "vivmeta.json"
if not metadata_file.is_file():
error(f"Unable to find metadata for vivenv: {args.vivenv}", code=1)
echo(f"more info about {vivenv.name}:")
vivenv.dump_info()
vivenv.show(verbose=True)
def _install_local_src(self, sha256: str, src: Path, cli: Path) -> None:
echo("updating local source copy of viv")
@ -1071,10 +1037,9 @@ class Viv:
make_executable(src)
echo("symlinking cli")
if cli.is_file() and confirm(
f"Existing file at {a.style(str(cli),'bold')}, "
"would you like to overwrite it?"
):
if cli.is_file():
echo(f"Existing file at {a.style(str(cli),'bold')}")
if confirm("Would you like to overwrite it?"):
cli.unlink()
cli.symlink_to(src)
else:
@ -1172,7 +1137,7 @@ class Viv:
echo(
"to re-install use: "
"`python3 <(curl -fsSL gh.dayl.in/viv/viv.py) manage install`"
"`python3 <(curl -fsSL viv.dayl.in/viv.py) manage install`"
)
def _pick_bin(self, args: Namespace) -> Tuple[str, str]:
@ -1227,7 +1192,7 @@ class Viv:
# ephemeral (default), semi-ephemeral (persist inside /tmp), or
# persist (use c.cache)
if not vivenv.exists or os.getenv("VIV_FORCE"):
if not vivenv.loaded or os.getenv("VIV_FORCE"):
if not args.keep:
with tempfile.TemporaryDirectory(prefix="viv-") as tmpdir:
vivenv.path = Path(tmpdir)
@ -1241,7 +1206,7 @@ class Viv:
else:
vivenv.create()
vivenv.install_pkgs()
vivenv.dump_info(write=True)
vivenv.meta.write()
sys.exit(subprocess.run([vivenv.path / "bin" / bin, *args.rest]).returncode)
@ -1265,7 +1230,7 @@ class Viv:
return parser
def _validate_args(self, args):
def _validate_args(self, args: Namespace) -> None:
if args.func.__name__ in ("freeze", "shim", "run"):
if not args.reqs:
error("must specify a requirement", code=1)
@ -1326,6 +1291,13 @@ class Viv:
p_vivenv_arg.add_argument("vivenv", help="name/hash of vivenv")
p_list = self._get_subcmd_parser(subparsers, "list")
p_list.add_argument(
"-v",
"--verbose",
help="show full metadata for vivenvs",
default=False,
action="store_true",
)
p_list.add_argument(
"-q",
"--quiet",