Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fiche Build Status
- Command line pastebin for sharing terminal output.
- Client-side usage
- Self-explanatory live examples (using public server):
- echo just testing! | nc termbin.com 9999
- cat file.txt | nc termbin.com 9999
- In case you installed and started fiche on localhost:
- ls -la | nc localhost 9999
- You will get an url to your paste as a response, e.g.:
- http://termbin.com/ydxh
- You can use our beautification service to get any paste colored and numbered. Just ask for it using l.termbin.com subdomain, e.g.:
- http://l.termbin.com/ydxh
- Useful aliases
- You can make your life easier by adding a termbin alias to your rc file. We list some of them here:
- Pure-bash alternative to netcat
- Linux/macOS:
- alias tb="(exec 3<>/dev/tcp/termbin.com/9999; cat >&3; cat <&3; exec 3<&-)"
- echo less typing now! | tb
- See #42, #43 for more info.
- tb alias
- Linux (Bash):
- echo 'alias tb="nc termbin.com 9999"' >> .bashrc
- echo less typing now! | tb
- macOS:
- echo 'alias tb="nc termbin.com 9999"' >> .bash_profile
- echo less typing now! | tb
- Copy output to clipboard
- Linux (Bash):
- echo 'alias tbc="netcat termbin.com 9999 | xclip -selection c"' >> .bashrc
- echo less typing now! | tbc
- macOS:
- echo 'alias tbc="nc termbin.com 9999 | pbcopy"' >> .bash_profile
- echo less typing now! | tbc
- Remember to reload the shell with source ~/.bashrc or source ~/.bash_profile after adding any of provided above!
- Requirements
- To use fiche you have to have netcat installed. You probably already have it - try typing nc or netcat into your terminal!
- Server-side usage
- Installation
- Clone:
- git clone https://github.com/solusipse/fiche.git
- Build:
- make
- Install:
- sudo make install
- Using Ports on FreeBSD
- To install the port: cd /usr/ports/net/fiche/ && make install clean. To add the package: pkg install fiche.
- See #86 for more info.
- Usage
- usage: fiche [-D6epbsdSolBuw].
- [-d domain] [-L listen_addr ] [-p port] [-s slug size]
- [-o output directory] [-B buffer size] [-u user name]
- [-l log file] [-b banlist] [-w whitelist] [-S]
- These are command line arguments. You don't have to provide any of them to run the application. Default settings will be used in such case. See section below for more info.
- Settings
- Output directory -o
- Relative or absolute path to the directory where you want to store user-posted pastes.
- fiche -o ./code
- fiche -o /home/www/code/
- Default value: ./code
- Domain -d
- This will be used as a prefix for an output received by the client. Value will be prepended with http.
- fiche -d domain.com
- fiche -d subdomain.domain.com
- fiche -d subdomain.domain.com/some_directory
- Default value: localhost
- Slug size -s
- This will force slugs to be of required length:
- fiche -s 6
- Output url with default value: http://localhost/xxxx, where x is a randomized character
- Output url with example value 6: http://localhost/xxxxxx, where x is a randomized character
- Default value: 4
- HTTPS -S
- If set, fiche returns url with https prefix instead of http
- fiche -S
- Output url with this parameter: https://localhost/xxxx, where x is a randomized character
- User name -u
- Fiche will try to switch to the requested user on startup if any is provided.
- fiche -u _fiche
- Default value: not set
- WARNING: This requires that fiche is started as a root.
- Buffer size -B
- This parameter defines size of the buffer used for getting data from the user. Maximum size (in bytes) of all input files is defined by this value.
- fiche -B 2048
- Default value: 32768
- Log file -l
- fiche -l /home/www/fiche-log.txt
- Default value: not set
- WARNING: this file has to be user-writable
- Ban list -b
- Relative or absolute path to a file containing IP addresses of banned users.
- fiche -b fiche-bans.txt
- Format of the file: this file should contain only addresses, one per line.
- Default value: not set
- WARNING: not implemented yet
- White list -w
- If whitelist mode is enabled, only addresses from the list will be able to upload files.
- fiche -w fiche-whitelist.txt
- Format of the file: this file should contain only addresses, one per line.
- Default value: not set
- WARNING: not implemented yet
- Running as a service
- There's a simple systemd example:
- [Unit]
- Description=FICHE-SERVER
- [Service]
- ExecStart=/usr/local/bin/fiche -d yourdomain.com -o /path/to/output -l /path/to/log -u youruser
- [Install]
- WantedBy=multi-user.target
- WARNING: In service mode you have to set output directory with -o parameter.
- Example nginx config
- Fiche has no http server built-in, thus you need to setup one if you want to make files available through http.
- There's a sample configuration for nginx:
- server {
- listen 80;
- server_name mysite.com www.mysite.com;
- charset utf-8;
- location / {
- root /home/www/code/;
- index index.txt index.html;
- }
- }
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <link rel="dns-prefetch" href="https://github.githubassets.com">
- <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
- <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
- <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
- <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
- <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
- <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
- <link crossorigin="anonymous" media="all" integrity="sha512-7uoDIEGQ8zTwUS9KjTP+/2I13FQPHvJ9EKoeUThfin5R1+27bcUC08VQzUo4CIjCdhvJM4zxuI+3HcSycAUTCg==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-abba74d6e28a6842788159fec056bf26.css" />
- <link crossorigin="anonymous" media="all" integrity="sha512-nZcL+1Szltbs1e7IMsmzRupcqmH76PIz0/h4jLIAVX74TKAU11YfzKPWpkO/H9OmtVyKnkpjDXItEWBdT3BPtQ==" rel="stylesheet" href="https://github.githubassets.com/assets/site-16d020fbc43a8c23c1f051eac510157b.css" />
- <link crossorigin="anonymous" media="all" integrity="sha512-MW+ZMyZsppet8jpCeuRf6R6ep2YA21uRlAaPeUHmlRvWDbX08i+17kchJwAVY4kws762vLl2VtxFx3kOq0nvGg==" rel="stylesheet" href="https://github.githubassets.com/assets/github-7b38ea66ce7a8e79d6a0cad4c9d34684.css" />
- <meta name="viewport" content="width=device-width">
- <title>GitHub - solusipse/fiche: Command line pastebin for sharing terminal output.</title>
- <meta name="description" content="Command line pastebin for sharing terminal output. - solusipse/fiche">
- <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
- <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
- <meta property="fb:app_id" content="1401488693436528">
- <meta property="og:image" content="https://avatars3.githubusercontent.com/u/3392430?s=400&v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="solusipse/fiche" /><meta property="og:url" content="https://github.com/solusipse/fiche" /><meta property="og:description" content="Command line pastebin for sharing terminal output. - solusipse/fiche" />
- <link rel="assets" href="https://github.githubassets.com/">
- <meta name="pjax-timeout" content="1000">
- <meta name="request-id" content="5DB3:1CCE:1816FC:2DAC7E:5C9FC773" data-pjax-transient>
- <meta name="selected-link" value="repo_source" data-pjax-transient>
- <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
- <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
- <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
- <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="5DB3:1CCE:1816FC:2DAC7E:5C9FC773" /><meta name="octolytics-dimension-region_edge" content="iad" /><meta name="octolytics-dimension-region_render" content="iad" />
- <meta name="analytics-location" content="/<user-name>/<repo-name>" data-pjax-transient="true" />
- <meta class="js-ga-set" name="dimension1" content="Logged Out">
- <meta name="hostname" content="github.com">
- <meta name="user-login" content="">
- <meta name="expected-hostname" content="github.com">
- <meta name="js-proxy-site-detection-payload" content="ZmM4ZjI3NGFlZWI2M2Y4MTBhZjIyMDU4NGJmOGJiMWVkYjMwMGU3ZGJiMGU1MWM1NmRkZTlmMDVlNjNjODI5ZHx7InJlbW90ZV9hZGRyZXNzIjoiMTc0LjI1NC42Ni45MSIsInJlcXVlc3RfaWQiOiI1REIzOjFDQ0U6MTgxNkZDOjJEQUM3RTo1QzlGQzc3MyIsInRpbWVzdGFtcCI6MTU1Mzk3NTE1NSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==">
- <meta name="enabled-features" content="UNIVERSE_BANNER,MARKETPLACE_SOCIAL_PROOF,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_UNVERIFIED_LISTINGS,MARKETPLACE_PLAN_RESTRICTION_EDITOR">
- <meta name="html-safe-nonce" content="834db6bfcc3d5aa62981c7b806d039501f86dbc6">
- <meta http-equiv="x-pjax-version" content="0fe86af0669e69ffd4e01406c614081e">
- <link href="https://github.com/solusipse/fiche/commits/master.atom" rel="alternate" title="Recent Commits to fiche:master" type="application/atom+xml">
- <meta name="go-import" content="github.com/solusipse/fiche git https://github.com/solusipse/fiche.git">
- <meta name="octolytics-dimension-user_id" content="3392430" /><meta name="octolytics-dimension-user_login" content="solusipse" /><meta name="octolytics-dimension-repository_id" content="12633603" /><meta name="octolytics-dimension-repository_nwo" content="solusipse/fiche" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="12633603" /><meta name="octolytics-dimension-repository_network_root_nwo" content="solusipse/fiche" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
- <link rel="canonical" href="https://github.com/solusipse/fiche" data-pjax-transient>
- <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
- <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
- <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">
- <meta name="theme-color" content="#1e2327">
- <meta name="u2f-enabled" content="true">
- <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
- </head>
- <body class="logged-out env-production">
- <div class="position-relative js-header-wrapper ">
- <a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
- <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>
- <header class="Header-old header-logged-out position-relative f4 py-2" role="banner">
- <div class="container-lg d-flex px-3">
- <div class="d-flex flex-justify-between flex-items-center">
- <a class="mr-4" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
- <svg height="32" class="octicon octicon-mark-github text-white" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
- </a>
- </div>
- <div class="HeaderMenu HeaderMenu--logged-out d-flex flex-justify-between flex-items-center flex-auto">
- <div class="d-none">
- <button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
- <svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
- </button>
- </div>
- <nav class="mt-0" aria-label="Global">
- <ul class="d-flex list-style-none">
- <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
- <details class="HeaderMenu-details details-overlay details-reset width-full">
- <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-inline-block">
- Why GitHub?
- <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
- <path d="M1,1l6.2,6L13,1"></path>
- </svg>
- </summary>
- <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 mt-0 p-4 left-n4 position-absolute">
- <a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a>
- <ul class="list-style-none f5 pb-3">
- <li class="edge-item-fix"><a href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code review</a></li>
- <li class="edge-item-fix"><a href="/features/project-management/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project management">Project management</a></li>
- <li class="edge-item-fix"><a href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Integrations">Integrations</a></li>
- <li class="edge-item-fix"><a href="/features/actions" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Actions">Actions</a>
- <li class="edge-item-fix"><a href="/features#team-management" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team management">Team management</a></li>
- <li class="edge-item-fix"><a href="/features#social-coding" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Social coding">Social coding</a></li>
- <li class="edge-item-fix"><a href="/features#documentation" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Documentation">Documentation</a></li>
- <li class="edge-item-fix"><a href="/features#code-hosting" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code hosting">Code hosting</a></li>
- </ul>
- <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
- <li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
- <li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
- </ul>
- </div>
- </details>
- </li>
- <li class=" mr-3 mr-lg-3">
- <a href="/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a>
- </li>
- <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
- <details class="HeaderMenu-details details-overlay details-reset width-full">
- <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-inline-block">
- Explore
- <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
- <path d="M1,1l6.2,6L13,1"></path>
- </svg>
- </summary>
- <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-0 mt-0 p-4 left-n4 position-absolute">
- <ul class="list-style-none mb-3">
- <li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
- </ul>
- <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-top pt-3">Learn & contribute</h4>
- <ul class="list-style-none mb-3">
- <li class="edge-item-fix"><a href="/topics" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Topics">Topics</a></li>
- <li class="edge-item-fix"><a href="/collections" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
- <li class="edge-item-fix"><a href="/trending" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Trending">Trending</a></li>
- <li class="edge-item-fix"><a href="https://lab.github.com/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab</a></li>
- <li class="edge-item-fix"><a href="https://opensource.guide" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides</a></li>
- </ul>
- <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-top pt-3">Connect with others</h4>
- <ul class="list-style-none mb-0">
- <li class="edge-item-fix"><a href="https://github.com/events" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Events">Events</a></li>
- <li class="edge-item-fix"><a href="https://github.community" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community forum">Community forum</a></li>
- <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education</a></li>
- </ul>
- </div>
- </details>
- </li>
- <li class=" mr-3 mr-lg-3">
- <a href="/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a>
- </li>
- <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
- <details class="HeaderMenu-details details-overlay details-reset width-full">
- <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-inline-block">
- Pricing
- <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
- <path d="M1,1l6.2,6L13,1"></path>
- </svg>
- </summary>
- <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-4 mt-0 p-4 left-n4 position-absolute">
- <a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a>
- <ul class="list-style-none mb-3">
- <li class="edge-item-fix"><a href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans</a></li>
- <li class="edge-item-fix"><a href="https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales</a></li>
- </ul>
- <ul class="list-style-none mb-0 border-top pt-3">
- <li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
- <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
- </ul>
- </div>
- </details>
- </li>
- </ul>
- </nav>
- <div class="d-flex flex-items-center px-0 text-center text-left">
- <div class="d-lg-flex ">
- <div class="header-search mr-3 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
- role="combobox"
- aria-owns="jump-to-results"
- aria-label="Search or jump to"
- aria-haspopup="listbox"
- aria-expanded="false"
- >
- <div class="position-relative">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="12633603" data-scoped-search-url="/solusipse/fiche/search" data-unscoped-search-url="/search" action="/solusipse/fiche/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
- <label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
- <input type="text"
- class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
- data-hotkey="s,/"
- name="q"
- value=""
- placeholder="Search"
- data-unscoped-placeholder="Search GitHub"
- data-scoped-placeholder="Search"
- autocapitalize="off"
- aria-autocomplete="list"
- aria-controls="jump-to-results"
- aria-label="Search"
- data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=i/F/mlj+Twd5PBc2D1dgAh73rEDsp9fRQ1Ta0yh3qbDrOg9+hqk7rtlVCetZDO2AO8b522UEQoEBzASvX9pUIQ=="
- spellcheck="false"
- autocomplete="off"
- >
- <input type="hidden" class="js-site-search-type-field" name="type" >
- <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
- <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
- <ul class="d-none js-jump-to-suggestions-template-container">
- <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
- <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
- <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
- <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
- <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
- <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
- </div>
- <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
- <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
- </div>
- <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
- <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
- In this repository
- </span>
- <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
- All GitHub
- </span>
- <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
- </div>
- <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
- Jump to
- <span class="d-inline-block ml-1 v-align-middle">↵</span>
- </div>
- </a>
- </li>
- </ul>
- <ul class="d-none js-jump-to-no-results-template-container">
- <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
- <span class="text-gray">No suggested jump to results</span>
- </li>
- </ul>
- <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
- <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
- <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
- <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
- <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
- <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
- <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
- </div>
- <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
- <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
- </div>
- <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
- <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
- In this repository
- </span>
- <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
- All GitHub
- </span>
- <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
- </div>
- <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
- Jump to
- <span class="d-inline-block ml-1 v-align-middle">↵</span>
- </div>
- </a>
- </li>
- <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
- <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
- <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
- <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
- <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
- <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
- </div>
- <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
- <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
- </div>
- <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
- <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
- In this repository
- </span>
- <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
- All GitHub
- </span>
- <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
- </div>
- <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
- Jump to
- <span class="d-inline-block ml-1 v-align-middle">↵</span>
- </div>
- </a>
- </li>
- </ul>
- </div>
- </label>
- </form> </div>
- </div>
- </div>
- <a class="HeaderMenu-link no-underline mr-3" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"LOG_IN","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="49312006ee7c9413ef5f66f3ed67fb853317a296e804e739288fc2c66263d0f6" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in" href="/login?return_to=%2Fsolusipse%2Ffiche">
- Sign in
- </a> <a class="HeaderMenu-link d-inline-block no-underline border border-gray-dark rounded-1 px-2 py-1" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="602f75e41a506f32b2e7bbb54e2ced3fcd3e2ee39493d525bae625ac7c7c2020" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up" href="/join">
- Sign up
- </a> </div>
- </div>
- </div>
- </header>
- </div>
- <div id="start-of-content" class="show-on-focus"></div>
- <div id="js-flash-container">
- </div>
- <div class="application-main " data-commit-hovercards-enabled>
- <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
- <main id="js-repo-pjax-container" data-pjax-container >
- <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav ">
- <div class="repohead-details-container clearfix container">
- <ul class="pagehead-actions">
- <li>
- <a class="tooltipped tooltipped-s btn btn-sm btn-with-count" aria-label="You must be signed in to watch a repository" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="55b0b08050327133ed0978e21b62c883d08066cd08aa54f58b7915cc845d9c4f" href="/login?return_to=%2Fsolusipse%2Ffiche">
- <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
- Watch
- </a> <a class="social-count" href="/solusipse/fiche/watchers"
- aria-label="37 users are watching this repository">
- 37
- </a>
- </li>
- <li>
- <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":12633603,"auth_type":"LOG_IN","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="74e3f782152ae3e0bf30426c870fcb8b2964ac6323954219b171d7d2c87a43e3" href="/login?return_to=%2Fsolusipse%2Ffiche">
- <svg class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
- Star
- </a>
- <a class="social-count js-social-count" href="/solusipse/fiche/stargazers"
- aria-label="589 users starred this repository">
- 589
- </a>
- </li>
- <li>
- <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":12633603,"auth_type":"LOG_IN","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="6d1a4e52335ad23d2b7e81eed0c97ce4a0481dbb2ba2daee3f9ab4df46950ef8" href="/login?return_to=%2Fsolusipse%2Ffiche">
- <svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
- Fork
- </a>
- <a href="/solusipse/fiche/network/members" class="social-count"
- aria-label="77 users forked this repository">
- 77
- </a>
- </li>
- </ul>
- <h1 class="public ">
- <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
- <span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=3392430" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/solusipse">solusipse</a></span><!--
- --><span class="path-divider">/</span><!--
- --><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/solusipse/fiche">fiche</a></strong>
- </h1>
- </div>
- <nav class="reponav js-repo-nav js-sidenav-container-pjax container"
- itemscope
- itemtype="http://schema.org/BreadcrumbList"
- aria-label="Repository"
- data-pjax="#js-repo-pjax-container">
- <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
- <a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /solusipse/fiche" href="/solusipse/fiche">
- <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
- <span itemprop="name">Code</span>
- <meta itemprop="position" content="1">
- </a> </span>
- <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
- <a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /solusipse/fiche/issues" href="/solusipse/fiche/issues">
- <svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>
- <span itemprop="name">Issues</span>
- <span class="Counter">5</span>
- <meta itemprop="position" content="2">
- </a> </span>
- <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
- <a data-hotkey="g p" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /solusipse/fiche/pulls" href="/solusipse/fiche/pulls">
- <svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
- <span itemprop="name">Pull requests</span>
- <span class="Counter">8</span>
- <meta itemprop="position" content="3">
- </a> </span>
- <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /solusipse/fiche/projects" href="/solusipse/fiche/projects">
- <svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
- Projects
- <span class="Counter" >0</span>
- </a>
- <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse alerts security people /solusipse/fiche/pulse" href="/solusipse/fiche/pulse">
- <svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
- Insights
- </a>
- </nav>
- </div>
- <div class="container new-discussion-timeline experiment-repo-nav ">
- <div class="repository-content ">
- <div class="signup-prompt-bg rounded-1">
- <div class="signup-prompt p-4 text-center mb-4 rounded-1">
- <div class="position-relative">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/site/dismiss_signup_prompt" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="v802G2YIO3TPwMZOLPHQKJER9guf5DfSJFMhwhiJ5gD8iayBbSlLL2oCid12AigAX8+NOGgjeMq56KYIRxZC1w==" />
- <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
- Dismiss
- </button>
- </form> <h3 class="pt-2">Join GitHub today</h3>
- <p class="col-6 mx-auto">GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.</p>
- <a class="btn btn-primary" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"files signup prompt","repository_id":null,"auth_type":"SIGN_UP","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="919f3545dc4d131053771a47181a4c5d750a3641048631a4accd1d1e06b1f9bd" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up" href="/join?source=prompt-code">Sign up</a>
- </div>
- </div>
- </div>
- <div class="mb-3"> <div class="f4">
- <span class="text-gray-dark mr-2" itemprop="about">
- Command line pastebin for sharing terminal output.
- </span>
- <span itemprop="url"><a rel="nofollow" href="http://termbin.com">http://termbin.com</a></span>
- </div>
- </div>
- <div class="overall-summary overall-summary-bottomless">
- <div class="stats-switcher-viewport js-stats-switcher-viewport">
- <div class="stats-switcher-wrapper">
- <ul class="numbers-summary">
- <li class="commits">
- <a data-pjax href="/solusipse/fiche/commits/master">
- <svg class="octicon octicon-history" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z"/></svg>
- <span class="num text-emphasized">
- 123
- </span>
- commits
- </a>
- </li>
- <li>
- <a data-pjax href="/solusipse/fiche/branches">
- <svg class="octicon octicon-git-branch" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 0 0-1-3.72C.88 1 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
- <span class="num text-emphasized">
- 3
- </span>
- branches
- </a>
- </li>
- <li>
- <a href="/solusipse/fiche/releases">
- <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 0 0 0-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
- <span class="num text-emphasized">
- 2
- </span>
- releases
- </a>
- </li>
- <li>
- <include-fragment src="/solusipse/fiche/contributors_size">
- <a href="/solusipse/fiche/graphs/contributors">
- <svg class="octicon octicon-organization" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z"/></svg>
- <span class="num text-emphasized"></span>
- Fetching contributors
- </a>
- </include-fragment> </li>
- <li>
- <a href="/solusipse/fiche/blob/master/LICENSE">
- <svg class="octicon octicon-law" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z"/></svg>
- MIT
- </a>
- </li>
- </ul>
- <div class="repository-lang-stats">
- <ol class="repository-lang-stats-numbers">
- <li>
- <a href="/solusipse/fiche/search?l=c" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#555555;"></span>
- <span class="lang">C</span>
- <span class="percent">93.7%</span>
- </a>
- </li>
- <li>
- <a href="/solusipse/fiche/search?l=python" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#3572A5;"></span>
- <span class="lang">Python</span>
- <span class="percent">5.2%</span>
- </a>
- </li>
- <li>
- <a href="/solusipse/fiche/search?l=makefile" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#427819;"></span>
- <span class="lang">Makefile</span>
- <span class="percent">1.1%</span>
- </a>
- </li>
- </ol>
- </div>
- </div>
- </div>
- </div>
- <button type="button" class="d-flex p-0 repository-lang-stats-graph js-toggle-lang-stats" title="Click for language details" data-ga-click="Repository, language bar stats toggle, location:repo overview">
- <span class="language-color" aria-label="C 93.7%" style="width:93.7%; background-color:#555555;" itemprop="keywords">C</span>
- <span class="language-color" aria-label="Python 5.2%" style="width:5.2%; background-color:#3572A5;" itemprop="keywords">Python</span>
- <span class="language-color" aria-label="Makefile 1.1%" style="width:1.1%; background-color:#427819;" itemprop="keywords">Makefile</span>
- </button>
- <div class="file-navigation in-mid-page d-flex flex-items-start">
- <details class="details-reset details-overlay select-menu branch-select-menu">
- <summary class="btn btn-sm select-menu-button css-truncate"
- data-hotkey="w"
- title="Switch branches or tags">
- <i>Branch:</i>
- <span class="css-truncate-target">master</span>
- </summary>
- <details-menu class="select-menu-modal position-absolute" style="z-index: 99;" src="/solusipse/fiche/ref-list/master?source_action=disambiguate&source_controller=files" preload>
- <include-fragment class="select-menu-loading-overlay anim-pulse">
- <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
- </include-fragment>
- </details-menu>
- </details>
- <button type="button" class="btn btn-sm disabled tooltipped tooltipped-n new-pull-request-btn" aria-label="You must be signed in to create a pull request">
- New pull request
- </button>
- <div class="breadcrumb flex-auto">
- </div>
- <div class="BtnGroup">
- <a class="btn btn-sm empty-icon float-right BtnGroup-item" data-hydro-click="{"event_type":"repository.click","payload":{"target":"FIND_FILE_BUTTON","repository_id":12633603,"client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="bb36a6e31e0543bf9e81d83b88cdf0779c44fbef88cc89a5a27d88a8b7494fcc" data-ga-click="Repository, find file, location:repo overview" data-hotkey="t" data-pjax="true" href="/solusipse/fiche/find/master">Find File</a>
- </div>
- <details class="get-repo-select-menu js-get-repo-select-menu js-anon-get-repo-select-menu position-relative details-overlay details-reset">
- <summary class="btn btn-sm btn-primary" data-hydro-click="{"event_type":"repository.click","payload":{"repository_id":12633603,"target":"CLONE_OR_DOWNLOAD_BUTTON","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="c259c504725ac6e7563785aa45618e1d07fb0edbcaa9fdc397ed10255b35064d">
- Clone or download
- <span class="dropdown-caret"></span>
- </summary> <div class="position-relative">
- <div class="get-repo-modal dropdown-menu dropdown-menu-sw pb-0 js-toggler-container js-get-repo-modal">
- <div class="get-repo-modal-options">
- <div class="clone-options https-clone-options">
- <h4 class="mb-1">
- Clone with HTTPS
- <a class="muted-link" href="https://help.github.com/articles/which-remote-url-should-i-use" target="_blank" title="Which remote URL should I use?">
- <svg class="octicon octicon-question" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"/></svg>
- </a>
- </h4>
- <p class="mb-2 get-repo-decription-text">
- Use Git or checkout with SVN using the web URL.
- </p>
- <div class="input-group">
- <input type="text" class="form-control input-monospace input-sm" data-autoselect value="https://github.com/solusipse/fiche.git" aria-label="Clone this repository at https://github.com/solusipse/fiche.git" readonly>
- <div class="input-group-button">
- <clipboard-copy value="https://github.com/solusipse/fiche.git" aria-label="Copy to clipboard" class="btn btn-sm" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"COPY_URL","git_repository_type":"REPOSITORY","repository_id":12633603,"client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="e9b0f7c43fef0f929b88327f3f35a25cf8f1a1a393d6a0d628f01bca2e23c912"><svg class="octicon octicon-clippy" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg></clipboard-copy>
- </div>
- </div>
- </div>
- <div class="mt-2">
- <a class="btn btn-outline get-repo-btn tooltipped tooltipped-s tooltipped-multiline js-get-repo" aria-label="Clone solusipse/fiche to your computer and use it in GitHub Desktop." data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"OPEN_IN_DESKTOP","git_repository_type":"REPOSITORY","repository_id":12633603,"client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="0c5a29926e6ff6f7e662dbe68c991fb5493aae685d109dc8088e2f6010c74a94" data-open-app="windows" href="https://desktop.github.com">Open in Desktop</a>
- <a class="btn btn-outline get-repo-btn js-anon-download-zip-link " rel="nofollow" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"DOWNLOAD_ZIP","git_repository_type":"REPOSITORY","repository_id":12633603,"client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="b485c0a6bb1eaa4fa7b1793651dfc3b0fb052b4aacb22d60c8236b33e69a60d3" data-ga-click="Repository, download zip, location:repo overview" href="/solusipse/fiche/archive/master.zip">Download ZIP</a>
- </div>
- </div>
- <div class="js-modal-downloading" hidden>
- <div class="py-2 px-3">
- <h4 class="lh-condensed mb-3">Downloading<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">
- Want to be notified of new releases in
- <span class="text-bold">solusipse/fiche</span>?
- </p>
- </div>
- <div class="width-full d-flex">
- <a rel="nofollow" class="get-repo-btn btn btn-outline" style="width: 50%" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"download popover","repository_id":12633603,"auth_type":"LOG_IN","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="a4a1fd6c3aa7db2a99fb26bc7f4cfcaa3d3fc0019cd4626680c8fa22b9462e2e" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fsolusipse%2Ffiche">Sign in</a>
- <a rel="nofollow" class="get-repo-btn btn btn-primary" style="width: 50%" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"download popover","repository_id":12633603,"auth_type":"SIGN_UP","client_id":"307825538.1552045959","originating_request_id":"5DB3:1CCE:1816FC:2DAC7E:5C9FC773","originating_url":"https://github.com/solusipse/fiche","referrer":null,"user_id":null}}" data-hydro-click-hmac="bacccc4a3be6768f1de83b0519d5842e5dcc0c2da3e48469e25cdc98927248b3" href="/join?return_to=%2Fsolusipse%2Ffiche">Sign up</a>
- </div>
- </div>
- <div class="js-modal-download-mac py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- <div class="js-modal-download-windows py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- <div class="js-modal-download-xcode py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching Xcode<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://developer.apple.com/xcode/">download Xcode</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- <div class="js-modal-download-visual-studio py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching Visual Studio<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://visualstudio.github.com/">download the GitHub extension for Visual Studio</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- </div>
- </div>
- </details>
- </div>
- <div class="commit-tease js-details-container Details d-flex rounded-top-1" data-issue-and-pr-hovercards-enabled>
- <div class="AvatarStack flex-self-start ">
- <div class="AvatarStack-body" aria-label="solusipse">
- <a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=3392430" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/solusipse">
- <img height="20" width="20" alt="@solusipse" src="https://avatars1.githubusercontent.com/u/3392430?s=60&v=4" />
- </a> </div>
- </div>
- <div class="flex-auto f6 mr-3">
- <a href="/solusipse/fiche/commits?author=solusipse"
- class="commit-author tooltipped tooltipped-s user-mention"
- aria-label="View all commits by solusipse">solusipse</a>
- <a data-pjax="true" title="Added instructions for FreeBSD Ports" class="message" href="/solusipse/fiche/commit/4bba916e0f4a54d98a3947df7e2d0714d92a8bab">Added instructions for FreeBSD Ports</a>
- </div>
- <div class="no-wrap">
- Latest commit
- <a class="commit-tease-sha" href="/solusipse/fiche/commit/4bba916e0f4a54d98a3947df7e2d0714d92a8bab" data-pjax>
- 4bba916
- </a>
- <span itemprop="dateModified"><relative-time datetime="2018-12-20T13:15:52Z">Dec 20, 2018</relative-time></span>
- </div>
- </div>
- <include-fragment class="file-wrap" src="/solusipse/fiche/file-list/master">
- <a class="d-none js-permalink-shortcut" data-hotkey="y" href="/solusipse/fiche/tree/4bba916e0f4a54d98a3947df7e2d0714d92a8bab">Permalink</a>
- <table class="files js-navigation-container js-active-navigation-container" data-pjax>
- <thead>
- <tr>
- <th><span class="sr-only">Type</span></th>
- <th><span class="sr-only">Name</span></th>
- <th><span class="sr-only">Latest commit message</span></th>
- <th><span class="sr-only">Commit time</span></th>
- </tr>
- </thead>
- <tbody>
- <tr class="warning include-fragment-error">
- <td class="icon"><svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg></td>
- <td class="content" colspan="3">Failed to load latest commit information.</td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="This path skips through empty directories" id="e72e2b33ca232c25dc4b645d6bfac167-a0021304129bd58aee4d201bc45e529c14eb0919" href="/solusipse/fiche/tree/master/extras/lines"><span class="simplified-path">extras/</span>lines</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Blocked dir traversal" class="link-gray" href="/solusipse/fiche/commit/680bb77f2c2cd4e39344502268f4552932052881">Blocked dir traversal</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2017-10-09T18:15:22Z">Oct 9, 2017</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitignore" id="a084b794bc0759e7a6b77810e01874f2-60faeb7076f4b65c9a77a590df30c08e4123a59d" href="/solusipse/fiche/blob/master/.gitignore">.gitignore</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".travis.yml" id="354f30a63fb0907d4ad57269548329e3-45092f73d708d2a461791eb2fe7dba3aab79b54b" href="/solusipse/fiche/blob/master/.travis.yml">.travis.yml</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Adding lacking dependency for python's port of scan-build" class="link-gray" href="/solusipse/fiche/commit/1cba8ad493da3874fa0cc9735192398e77a99fb7">Adding lacking dependency for python's port of scan-build</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2017-09-05T23:13:57Z">Sep 5, 2017</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="LICENSE" id="9879d6db96fd29134fc802214163b95a-40010d64f91c42a318f75d0efdbc763152eb4255" itemprop="license" href="/solusipse/fiche/blob/master/LICENSE">LICENSE</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="Makefile" id="b67911656ef5d18c4ae36cb6741b7965-752336fd09670130237fdaf88ff4f8273498f7a5" href="/solusipse/fiche/blob/master/Makefile">Makefile</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Move /bin suffix to $prefix
- This makes it a lot more portable. For example, on NixOS, there is no `bin` directory." class="link-gray" href="/solusipse/fiche/commit/e3f7005180ed6e965ff9899ea30d897543a8b636">Move /bin suffix to $prefix</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2017-10-02T17:03:43Z">Oct 2, 2017</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="README.md" id="04c6e90faac2675aa89e2176d2eec7d8-e3922d50807556a9ca1014e15a9b7afee5076652" href="/solusipse/fiche/blob/master/README.md">README.md</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Added instructions for FreeBSD Ports" class="link-gray" href="/solusipse/fiche/commit/4bba916e0f4a54d98a3947df7e2d0714d92a8bab">Added instructions for FreeBSD Ports</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-12-20T13:15:52Z">Dec 20, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="fiche.c" id="b019266a421450906420d86fcf34b69a-99d140deb1ddf9df56e2b9083f5f2ebd7dc2a701" href="/solusipse/fiche/blob/master/fiche.c">fiche.c</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="teach fiche about binding to a specific address
- Add the -L <listen_addr> option which permits fiche to bind to a
- specific local address rather than INADDR_ANY." class="link-gray" href="/solusipse/fiche/commit/441debc4c7ac19fb3d3305a5aff21c3bb989c9b9">teach fiche about binding to a specific address</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-02-27T16:24:58Z">Feb 27, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="fiche.h" id="c2a91414eb880d18b258cc1a4ccd1ff5-b1c97a262066deb7372539030d15b7b4d423d932" href="/solusipse/fiche/blob/master/fiche.h">fiche.h</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="teach fiche about binding to a specific address
- Add the -L <listen_addr> option which permits fiche to bind to a
- specific local address rather than INADDR_ANY." class="link-gray" href="/solusipse/fiche/commit/441debc4c7ac19fb3d3305a5aff21c3bb989c9b9">teach fiche about binding to a specific address</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-02-27T16:24:58Z">Feb 27, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="main.c" id="2045016cb90d1e65d71c2407a2570927-da503c07b2aa1aeb774eae25fdaec54eaf0c5cc6" href="/solusipse/fiche/blob/master/main.c">main.c</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="teach fiche about binding to a specific address
- Add the -L <listen_addr> option which permits fiche to bind to a
- specific local address rather than INADDR_ANY." class="link-gray" href="/solusipse/fiche/commit/441debc4c7ac19fb3d3305a5aff21c3bb989c9b9">teach fiche about binding to a specific address</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-02-27T16:24:58Z">Feb 27, 2018</time-ago></span>
- </td>
- </tr>
- </tbody>
- </table>
- </include-fragment>
- <div id="readme" class="Box Box--condensed instapaper_body md js-code-block-container">
- <div class="Box-header d-flex flex-items-center flex-justify-between px-2">
- <h3 class="Box-title pr-3">
- <svg class="octicon octicon-book" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"/></svg>
- README.md
- </h3>
- </div>
- <div class="Box-body">
- <article class="markdown-body entry-content p-5" itemprop="text"><h1><a id="user-content-fiche-" class="anchor" aria-hidden="true" href="#fiche-"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>fiche <a href="https://travis-ci.org/solusipse/fiche" rel="nofollow"><img src="https://camo.githubusercontent.com/c9a2949e5a9c7ca04ba77b739b129f161e4855bb/68747470733a2f2f7472617669732d63692e6f72672f736f6c7573697073652f66696368652e7376673f6272616e63683d6d6173746572" alt="Build Status" data-canonical-src="https://travis-ci.org/solusipse/fiche.svg?branch=master" style="max-width:100%;"></a></h1>
- <p>Command line pastebin for sharing terminal output.</p>
- <h1><a id="user-content-client-side-usage" class="anchor" aria-hidden="true" href="#client-side-usage"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Client-side usage</h1>
- <p>Self-explanatory live examples (using public server):</p>
- <pre><code>echo just testing! | nc termbin.com 9999
- </code></pre>
- <pre><code>cat file.txt | nc termbin.com 9999
- </code></pre>
- <p>In case you installed and started fiche on localhost:</p>
- <pre><code>ls -la | nc localhost 9999
- </code></pre>
- <p>You will get an url to your paste as a response, e.g.:</p>
- <pre><code>http://termbin.com/ydxh
- </code></pre>
- <p>You can use our beautification service to get any paste colored and numbered. Just ask for it using <code>l.termbin.com</code> subdomain, e.g.:</p>
- <pre><code>http://l.termbin.com/ydxh
- </code></pre>
- <hr>
- <h2><a id="user-content-useful-aliases" class="anchor" aria-hidden="true" href="#useful-aliases"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Useful aliases</h2>
- <p>You can make your life easier by adding a termbin alias to your rc file. We list some of them here:</p>
- <hr>
- <h3><a id="user-content-pure-bash-alternative-to-netcat" class="anchor" aria-hidden="true" href="#pure-bash-alternative-to-netcat"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Pure-bash alternative to netcat</h3>
- <p><strong>Linux/macOS:</strong></p>
- <pre><code>alias tb="(exec 3<>/dev/tcp/termbin.com/9999; cat >&3; cat <&3; exec 3<&-)"
- </code></pre>
- <pre><code>echo less typing now! | tb
- </code></pre>
- <p><em>See <a href="https://github.com/solusipse/fiche/issues/42">#42</a>, <a href="https://github.com/solusipse/fiche/issues/43">#43</a> for more info.</em></p>
- <hr>
- <h3><a id="user-content-tb-alias" class="anchor" aria-hidden="true" href="#tb-alias"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>tb</code> alias</h3>
- <p><strong>Linux (Bash):</strong></p>
- <pre><code>echo 'alias tb="nc termbin.com 9999"' >> .bashrc
- </code></pre>
- <pre><code>echo less typing now! | tb
- </code></pre>
- <p><strong>macOS:</strong></p>
- <pre><code>echo 'alias tb="nc termbin.com 9999"' >> .bash_profile
- </code></pre>
- <pre><code>echo less typing now! | tb
- </code></pre>
- <hr>
- <h3><a id="user-content-copy-output-to-clipboard" class="anchor" aria-hidden="true" href="#copy-output-to-clipboard"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Copy output to clipboard</h3>
- <p><strong>Linux (Bash):</strong></p>
- <pre><code>echo 'alias tbc="netcat termbin.com 9999 | xclip -selection c"' >> .bashrc
- </code></pre>
- <pre><code>echo less typing now! | tbc
- </code></pre>
- <p><strong>macOS:</strong></p>
- <pre><code>echo 'alias tbc="nc termbin.com 9999 | pbcopy"' >> .bash_profile
- </code></pre>
- <pre><code>echo less typing now! | tbc
- </code></pre>
- <p><strong>Remember</strong> to reload the shell with <code>source ~/.bashrc</code> or <code>source ~/.bash_profile</code> after adding any of provided above!</p>
- <hr>
- <h2><a id="user-content-requirements" class="anchor" aria-hidden="true" href="#requirements"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Requirements</h2>
- <p>To use fiche you have to have netcat installed. You probably already have it - try typing <code>nc</code> or <code>netcat</code> into your terminal!</p>
- <hr>
- <h1><a id="user-content-server-side-usage" class="anchor" aria-hidden="true" href="#server-side-usage"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Server-side usage</h1>
- <h2><a id="user-content-installation" class="anchor" aria-hidden="true" href="#installation"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installation</h2>
- <ol>
- <li>
- <p>Clone:</p>
- <pre><code>git clone https://github.com/solusipse/fiche.git
- </code></pre>
- </li>
- <li>
- <p>Build:</p>
- <pre><code>make
- </code></pre>
- </li>
- <li>
- <p>Install:</p>
- <pre><code>sudo make install
- </code></pre>
- </li>
- </ol>
- <h3><a id="user-content-using-ports-on-freebsd" class="anchor" aria-hidden="true" href="#using-ports-on-freebsd"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Using Ports on FreeBSD</h3>
- <p>To install the port: <code>cd /usr/ports/net/fiche/ && make install clean</code>. To add the package: <code>pkg install fiche</code>.</p>
- <p><em>See <a href="https://github.com/solusipse/fiche/issues/86">#86</a> for more info.</em></p>
- <hr>
- <h2><a id="user-content-usage" class="anchor" aria-hidden="true" href="#usage"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Usage</h2>
- <pre><code>usage: fiche [-D6epbsdSolBuw].
- [-d domain] [-L listen_addr ] [-p port] [-s slug size]
- [-o output directory] [-B buffer size] [-u user name]
- [-l log file] [-b banlist] [-w whitelist] [-S]
- </code></pre>
- <p>These are command line arguments. You don't have to provide any of them to run the application. Default settings will be used in such case. See section below for more info.</p>
- <h3><a id="user-content-settings" class="anchor" aria-hidden="true" href="#settings"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Settings</h3>
- <hr>
- <h4><a id="user-content-output-directory--o" class="anchor" aria-hidden="true" href="#output-directory--o"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Output directory <code>-o</code></h4>
- <p>Relative or absolute path to the directory where you want to store user-posted pastes.</p>
- <pre><code>fiche -o ./code
- </code></pre>
- <pre><code>fiche -o /home/www/code/
- </code></pre>
- <p><strong>Default value:</strong> <code>./code</code></p>
- <hr>
- <h4><a id="user-content-domain--d" class="anchor" aria-hidden="true" href="#domain--d"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Domain <code>-d</code></h4>
- <p>This will be used as a prefix for an output received by the client.
- Value will be prepended with <code>http</code>.</p>
- <pre><code>fiche -d domain.com
- </code></pre>
- <pre><code>fiche -d subdomain.domain.com
- </code></pre>
- <pre><code>fiche -d subdomain.domain.com/some_directory
- </code></pre>
- <p><strong>Default value:</strong> <code>localhost</code></p>
- <hr>
- <h4><a id="user-content-slug-size--s" class="anchor" aria-hidden="true" href="#slug-size--s"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Slug size <code>-s</code></h4>
- <p>This will force slugs to be of required length:</p>
- <pre><code>fiche -s 6
- </code></pre>
- <p><strong>Output url with default value</strong>: <code>http://localhost/xxxx</code>,
- where x is a randomized character</p>
- <p><strong>Output url with example value 6</strong>: <code>http://localhost/xxxxxx</code>,
- where x is a randomized character</p>
- <p><strong>Default value:</strong> 4</p>
- <hr>
- <h4><a id="user-content-https--s" class="anchor" aria-hidden="true" href="#https--s"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>HTTPS <code>-S</code></h4>
- <p>If set, fiche returns url with https prefix instead of http</p>
- <pre><code>fiche -S
- </code></pre>
- <p><strong>Output url with this parameter</strong>: <code>https://localhost/xxxx</code>,
- where x is a randomized character</p>
- <hr>
- <h4><a id="user-content-user-name--u" class="anchor" aria-hidden="true" href="#user-name--u"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>User name <code>-u</code></h4>
- <p>Fiche will try to switch to the requested user on startup if any is provided.</p>
- <pre><code>fiche -u _fiche
- </code></pre>
- <p><strong>Default value:</strong> not set</p>
- <p><strong>WARNING:</strong> This requires that fiche is started as a root.</p>
- <hr>
- <h4><a id="user-content-buffer-size--b" class="anchor" aria-hidden="true" href="#buffer-size--b"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Buffer size <code>-B</code></h4>
- <p>This parameter defines size of the buffer used for getting data from the user.
- Maximum size (in bytes) of all input files is defined by this value.</p>
- <pre><code>fiche -B 2048
- </code></pre>
- <p><strong>Default value:</strong> 32768</p>
- <hr>
- <h4><a id="user-content-log-file--l" class="anchor" aria-hidden="true" href="#log-file--l"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Log file <code>-l</code></h4>
- <pre><code>fiche -l /home/www/fiche-log.txt
- </code></pre>
- <p><strong>Default value:</strong> not set</p>
- <p><strong>WARNING:</strong> this file has to be user-writable</p>
- <hr>
- <h4><a id="user-content-ban-list--b" class="anchor" aria-hidden="true" href="#ban-list--b"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Ban list <code>-b</code></h4>
- <p>Relative or absolute path to a file containing IP addresses of banned users.</p>
- <pre><code>fiche -b fiche-bans.txt
- </code></pre>
- <p><strong>Format of the file:</strong> this file should contain only addresses, one per line.</p>
- <p><strong>Default value:</strong> not set</p>
- <p><strong>WARNING:</strong> not implemented yet</p>
- <hr>
- <h4><a id="user-content-white-list--w" class="anchor" aria-hidden="true" href="#white-list--w"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>White list <code>-w</code></h4>
- <p>If whitelist mode is enabled, only addresses from the list will be able
- to upload files.</p>
- <pre><code>fiche -w fiche-whitelist.txt
- </code></pre>
- <p><strong>Format of the file:</strong> this file should contain only addresses, one per line.</p>
- <p><strong>Default value:</strong> not set</p>
- <p><strong>WARNING:</strong> not implemented yet</p>
- <hr>
- <h3><a id="user-content-running-as-a-service" class="anchor" aria-hidden="true" href="#running-as-a-service"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Running as a service</h3>
- <p>There's a simple systemd example:</p>
- <pre><code>[Unit]
- Description=FICHE-SERVER
- [Service]
- ExecStart=/usr/local/bin/fiche -d yourdomain.com -o /path/to/output -l /path/to/log -u youruser
- [Install]
- WantedBy=multi-user.target
- </code></pre>
- <p><strong>WARNING:</strong> In service mode you have to set output directory with <code>-o</code> parameter.</p>
- <hr>
- <h3><a id="user-content-example-nginx-config" class="anchor" aria-hidden="true" href="#example-nginx-config"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Example nginx config</h3>
- <p>Fiche has no http server built-in, thus you need to setup one if you want to make files available through http.</p>
- <p>There's a sample configuration for nginx:</p>
- <pre><code>server {
- listen 80;
- server_name mysite.com www.mysite.com;
- charset utf-8;
- location / {
- root /home/www/code/;
- index index.txt index.html;
- }
- }
- </code></pre>
- <h2><a id="user-content-license" class="anchor" aria-hidden="true" href="#license"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>License</h2>
- <p>Fiche is MIT licensed.</p>
- </article>
- </div>
- </div>
- </div>
- <div class="modal-backdrop js-touch-events"></div>
- </div>
- </main>
- </div>
- </div>
- <div class="footer container-lg width-full px-3" role="contentinfo">
- <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
- <ul class="list-style-none d-flex flex-wrap ">
- <li class="mr-3">© 2019 <span title="0.22785s from unicorn-859b58bd99-qjvgb">GitHub</span>, Inc.</li>
- <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
- <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
- <li class="mr-3"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
- <li class="mr-3"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
- <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
- </ul>
- <a aria-label="Homepage" title="GitHub" class="footer-octicon mx-lg-4" href="https://github.com">
- <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
- </a>
- <ul class="list-style-none d-flex flex-wrap ">
- <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
- <li class="mr-3"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
- <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
- <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
- <li class="mr-3"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
- <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
- </ul>
- </div>
- <div class="d-flex flex-justify-center pb-6">
- <span class="f6 text-gray-light"></span>
- </div>
- </div>
- <div id="ajax-error-message" class="ajax-error-message flash flash-error">
- <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
- <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
- <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
- </button>
- You can’t perform that action at this time.
- </div>
- <script crossorigin="anonymous" integrity="sha512-m1DeH+jLA0IS/zzy50Kv0yBpZJDQlBkcACJzTGJUq30SG1eo5vztaQg1x1KV1L3XGePC1HOdKU1fu7Ktr+5nsg==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-3c669c6d.js"></script>
- <script crossorigin="anonymous" async="async" integrity="sha512-5fkE5HlHUvjDCSLq2ACLerBiuS+N3x36xiX0Dld1w8J0+IpjD1ddnmRd806jtn+QoMMGkLFSUMXVvMN4JUkZSw==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-7f581dd4.js"></script>
- <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner" hidden
- >
- <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
- <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
- <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
- </div>
- <template id="site-details-dialog">
- <details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark" open>
- <summary aria-haspopup="dialog" aria-label="Close dialog"></summary>
- <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast">
- <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
- <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
- </button>
- <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
- </details-dialog>
- </details>
- </template>
- <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
- <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
- </div>
- </div>
- <div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement