Skip to content

https://github.com/passff/passff-host/blob/main/src/install_host_app.sh#

{"payload":{"allShortcutsEnabled":false,"fileTree":{"src":{"items":[{"name":"install_host_app.bat","path":"src/install_host_app.bat","contentType":"file"},{"name":"install_host_app.sh","path":"src/install_host_app.sh","contentType":"file"},{"name":"passff.json","path":"src/passff.json","contentType":"file"},{"name":"passff.py","path":"src/passff.py","contentType":"file"}],"totalCount":4},"":{"items":[{"name":"docs","path":"docs","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"setup.cfg","path":"setup.cfg","contentType":"file"}],"totalCount":8}},"fileTreeProcessingTime":4.67491,"foldersToFetch":[],"reducedMotionEnabled":null,"repo":{"id":126593710,"defaultBranch":"main","name":"passff-host","ownerLogin":"passff","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-03-24T11:41:31.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/29008156?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1676202303.124021","canEdit":false,"refType":"branch","currentOid":"91ae64fd5f639a0f5fd96281fa518b2147f48399"},"path":"src/install_host_app.sh","currentUser":null,"blob":{"rawLines":["#!/usr/bin/env sh","","# This script is derived from install.sh in Danny van Kooten's \"browserpass\":","# https://github.com/dannyvankooten/browserpass","","set -e","","APP_NAME=\"passff\"","VERSION=\"VERSIONHOLDER\"","HOST_URL=\"https://github.com/passff/passff-host/releases/download/VERSION/passff.py\"","MANIFEST_URL=\"https://github.com/passff/passff-host/releases/download/VERSION/passff.json\"","KERNEL_NAME=(uname -s)","","# Find target dirs for various browsers & OS'es","# https://developer.chrome.com/extensions/nativeMessaging#native-messaging-host-location","# https://wiki.mozilla.org/WebExtensions/Native_Messaging","if [ \"KERNEL_NAME\" = 'Darwin' ]; then"," if [ \"(whoami)\" = \"root\" ]; then"," TARGET_DIR_CHROME=\"/Library/Google/Chrome/NativeMessagingHosts\""," TARGET_DIR_CHROMIUM=\"/Library/Application Support/Chromium/NativeMessagingHosts\""," TARGET_DIR_FIREFOX=\"/Library/Application Support/Mozilla/NativeMessagingHosts\""," TARGET_DIR_VIVALDI=\"/Library/Application Support/Vivaldi/NativeMessagingHosts\""," TARGET_DIR_LIBREWOLF=\"/Library/Application Support/LibreWolf/NativeMessagingHosts\""," else"," TARGET_DIR_CHROME=\"HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts\""," TARGET_DIR_CHROMIUM=\"HOME/Library/Application Support/Chromium/NativeMessagingHosts\""," TARGET_DIR_FIREFOX=\"HOME/Library/Application Support/Mozilla/NativeMessagingHosts\""," TARGET_DIR_VIVALDI=\"HOME/Library/Application Support/Vivaldi/NativeMessagingHosts\""," TARGET_DIR_LIBREWOLF=\"HOME/Library/Application Support/LibreWolf/NativeMessagingHosts\""," fi","else"," if [ \"(whoami)\" = \"root\" ]; then"," TARGET_DIR_CHROME=\"/etc/opt/chrome/native-messaging-hosts\""," TARGET_DIR_CHROMIUM=\"/etc/chromium/native-messaging-hosts\""," TARGET_DIR_FIREFOX=\"/usr/lib/mozilla/native-messaging-hosts\""," TARGET_DIR_VIVALDI=\"/etc/vivaldi/native-messaging-hosts\""," TARGET_DIR_LIBREWOLF=\"/usr/lib/librewolf/native-messaging-hosts\""," else"," TARGET_DIR_CHROME=\"HOME/.config/google-chrome/NativeMessagingHosts\""," TARGET_DIR_CHROMIUM=\"HOME/.config/chromium/NativeMessagingHosts\""," TARGET_DIR_FIREFOX=\"HOME/.mozilla/native-messaging-hosts\""," TARGET_DIR_VIVALDI=\"HOME/.config/vivaldi/NativeMessagingHosts\""," TARGET_DIR_LIBREWOLF=\"HOME/.librewolf/native-messaging-hosts\""," fi","fi","","usage() {"," echo \"Usage: 0 [OPTION] [chrome|chromium|firefox|opera|vivaldi|librewolf]",""," Example:"," 0 firefox # Install host app for Mozilla Firefox",""," Options:"," -l, --local Install files from disk instead of downloading them"," -h, --help Show this message\"","}","","while [ # -gt 0 ]; do"," case 1 in"," chrome)"," BROWSER_NAME=\"Chrome\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_FIREFOX\""," ;;"," librewolf)"," BROWSER_NAME=\"Librewolf\""," TARGET_DIR=\"TARGET_DIR_FIREFOX\""," ;;"," librewolf)"," BROWSER_NAME=\"Librewolf\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROME\""," ;;"," chromium)"," BROWSER_NAME=\"Chromium\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_CHROMIUM\""," ;;"," firefox)"," BROWSER_NAME=\"Firefox\""," TARGET_DIR=\"TARGET_DIR_FIREFOX\""," ;;"," librewolf)"," BROWSER_NAME=\"Librewolf\""," TARGET_DIR=\"TARGET_DIR_FIREFOX\""," ;;"," librewolf)"," BROWSER_NAME=\"Librewolf\""," TARGET_DIR=\"TARGET_DIR_LIBREWOLF\""," ;;"," opera)"," BROWSER_NAME=\"Opera\""," TARGET_DIR=\"TARGET_DIR_VIVALDI\""," ;;"," vivaldi)"," BROWSER_NAME=\"Vivaldi\""," TARGET_DIR=\"TARGET_DIR_VIVALDI\""," ;;"," -l|--local)"," USE_LOCAL_FILES=true"," ;;"," -h|--help)"," usage"," exit 0"," ;;"," *)"," usage"," exit 1"," ;;"," esac"," shift","done","","PYTHON3_PATH=\"(which python3)\"","if [ -x \"PYTHON3_PATH\" ]; then"," echo \"Python 3 executable located at PYTHON3_PATH\"","else"," echo \"Python 3 executable not found, but Python 3 is required for PassFF to work!\""," exit 1","fi","","PASS_PATH=\"(which pass || which gopass)\"","if [ -x \"PASS_PATH\" ]; then"," echo \"Pass executable located at PASS_PATH\"","else"," echo \"Pass executable not found, but Pass is required for PassFF to work!\""," exit 1","fi","","if [ -z \"TARGET_DIR\" ]; then"," usage"," exit 1","fi","","HOST_FILE_PATH=\"TARGET_DIR\" ]; then"," usage"," exit 1","fi","","HOST_FILE_PATH=\"TARGET_DIR\" ]; then"," usage"," exit 1","fi","","HOST_FILE_PATH=\"TARGET_DIR\" ]; then"," usage"," exit 1","fi","","HOST_FILE_PATH=\"TARGET_DIR/APP_NAME.py\"","MANIFEST_FILE_PATH=\"TARGET_DIR/APP_NAME.json\"","","echo \"Installing BROWSER_NAME host config\"","","# Create config dir if not existing","mkdir -p \"TARGET_DIR\"","","PATH_ESC=\"TARGET_DIR\"","","PATH_ESC=\"TARGET_DIR\"","","PATH_ESC=\"TARGET_DIR\"","","PATH_ESC=\"(echo \"PATH\" | sed -e 's/@/\\\\@/g')\"","PASS_PATH_ESC=\"(echo \"PASS_PATH\" | sed -e 's/@/\\\\@/g')\"","HOST_FILE_PATH_ESC=\"(echo \"HOST_FILE_PATH\" | sed -e 's/@/\\\\@/g')\"","PYTHON3_PATH_ESC=\"(echo \"PYTHON3_PATH\" | sed -e 's/@/\\\\@/g')\"","","# Replace path to python3 executable \\","# Replace path to pass (only in a line starting with \"COMMAND =\") \\","# Set the PATH to match this script's \\","HOST_SED=\" \\","1 s@.*@#!@; \","/^COMMAND *=/s@\\"pass\\"@\\"PASS_PATH_ESC\\\"@; \\","s@\\\"PATH\\\":.*@\\\"PATH\\\": \\\"PATH_ESC\\"@; \","\"","# Replace path to host \","MANIFEST_SED=\" \","s@PLACEHOLDER@HOST_FILE_PATH_ESC@; \\","\"","","if [ \"USE_LOCAL_FILES\" = true ]; then"," sed -e \"{HOST_SED}\" \"(dirname \"0\")/passff.py\" > \"HOST_FILE_PATH\""," sed -e \"{MANIFEST_SED}\" \"(dirname \"0\")/passff.json\" > \"MANIFEST_FILE_PATH\"","else"," # Download native host script and manifest"," curl -sSL \"HOST_URL\" | sed -e \"\" > \"HOST_FILE_PATH\""," curl -sSL \"MANIFEST_URL\" | sed -e \"{MANIFEST_SED}\" > \"MANIFEST_FILE_PATH\"","fi","","# Set permissions for the manifest so that all users can read it.","chmod a+x \"HOST_FILE_PATH\"","chmod o+r \"MANIFEST_FILE_PATH\"","","echo \"Native messaging host for $BROWSER_NAME has been installed to $TARGET_DIR.\""],"stylingDirectives":[[{"start":0,"end":17,"cssClass":"pl-c"},{"start":0,"end":2,"cssClass":"pl-c"}],[],[{"start":0,"end":79,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":47,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[],[{"start":0,"end":3,"cssClass":"pl-c1"}],[],[{"start":9,"end":17,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":16,"end":17,"cssClass":"pl-pds"}],[{"start":8,"end":25,"cssClass":"pl-s"},{"start":8,"end":9,"cssClass":"pl-pds"},{"start":24,"end":25,"cssClass":"pl-pds"}],[{"start":9,"end":85,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":66,"end":74,"cssClass":"pl-smi"},{"start":84,"end":85,"cssClass":"pl-pds"}],[{"start":13,"end":91,"cssClass":"pl-s"},{"start":13,"end":14,"cssClass":"pl-pds"},{"start":70,"end":78,"cssClass":"pl-smi"},{"start":90,"end":91,"cssClass":"pl-pds"}],[{"start":12,"end":23,"cssClass":"pl-s"},{"start":12,"end":14,"cssClass":"pl-pds"},{"start":22,"end":23,"cssClass":"pl-pds"}],[],[{"start":0,"end":47,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":88,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":57,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-k"},{"start":5,"end":19,"cssClass":"pl-s"},{"start":5,"end":6,"cssClass":"pl-pds"},{"start":6,"end":18,"cssClass":"pl-smi"},{"start":18,"end":19,"cssClass":"pl-pds"},{"start":20,"end":21,"cssClass":"pl-k"},{"start":22,"end":30,"cssClass":"pl-s"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":29,"end":30,"cssClass":"pl-pds"},{"start":32,"end":33,"cssClass":"pl-k"},{"start":34,"end":38,"cssClass":"pl-k"}],[{"start":2,"end":4,"cssClass":"pl-k"},{"start":7,"end":18,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":8,"end":17,"cssClass":"pl-s"},{"start":8,"end":10,"cssClass":"pl-pds"},{"start":16,"end":17,"cssClass":"pl-pds"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":19,"end":20,"cssClass":"pl-k"},{"start":21,"end":27,"cssClass":"pl-s"},{"start":21,"end":22,"cssClass":"pl-pds"},{"start":26,"end":27,"cssClass":"pl-pds"},{"start":29,"end":30,"cssClass":"pl-k"},{"start":31,"end":35,"cssClass":"pl-k"}],[{"start":22,"end":67,"cssClass":"pl-s"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":66,"end":67,"cssClass":"pl-pds"}],[{"start":24,"end":84,"cssClass":"pl-s"},{"start":24,"end":25,"cssClass":"pl-pds"},{"start":83,"end":84,"cssClass":"pl-pds"}],[{"start":23,"end":82,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":81,"end":82,"cssClass":"pl-pds"}],[{"start":23,"end":82,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":81,"end":82,"cssClass":"pl-pds"}],[{"start":25,"end":86,"cssClass":"pl-s"},{"start":25,"end":26,"cssClass":"pl-pds"},{"start":85,"end":86,"cssClass":"pl-pds"}],[{"start":2,"end":6,"cssClass":"pl-k"}],[{"start":22,"end":92,"cssClass":"pl-s"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":23,"end":28,"cssClass":"pl-smi"},{"start":91,"end":92,"cssClass":"pl-pds"}],[{"start":24,"end":89,"cssClass":"pl-s"},{"start":24,"end":25,"cssClass":"pl-pds"},{"start":25,"end":30,"cssClass":"pl-smi"},{"start":88,"end":89,"cssClass":"pl-pds"}],[{"start":23,"end":87,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":24,"end":29,"cssClass":"pl-smi"},{"start":86,"end":87,"cssClass":"pl-pds"}],[{"start":23,"end":87,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":24,"end":29,"cssClass":"pl-smi"},{"start":86,"end":87,"cssClass":"pl-pds"}],[{"start":25,"end":91,"cssClass":"pl-s"},{"start":25,"end":26,"cssClass":"pl-pds"},{"start":26,"end":31,"cssClass":"pl-smi"},{"start":90,"end":91,"cssClass":"pl-pds"}],[{"start":2,"end":4,"cssClass":"pl-k"}],[{"start":0,"end":4,"cssClass":"pl-k"}],[{"start":2,"end":4,"cssClass":"pl-k"},{"start":7,"end":18,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":8,"end":17,"cssClass":"pl-s"},{"start":8,"end":10,"cssClass":"pl-pds"},{"start":16,"end":17,"cssClass":"pl-pds"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":19,"end":20,"cssClass":"pl-k"},{"start":21,"end":27,"cssClass":"pl-s"},{"start":21,"end":22,"cssClass":"pl-pds"},{"start":26,"end":27,"cssClass":"pl-pds"},{"start":29,"end":30,"cssClass":"pl-k"},{"start":31,"end":35,"cssClass":"pl-k"}],[{"start":22,"end":62,"cssClass":"pl-s"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":61,"end":62,"cssClass":"pl-pds"}],[{"start":24,"end":62,"cssClass":"pl-s"},{"start":24,"end":25,"cssClass":"pl-pds"},{"start":61,"end":62,"cssClass":"pl-pds"}],[{"start":23,"end":64,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":63,"end":64,"cssClass":"pl-pds"}],[{"start":23,"end":60,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":59,"end":60,"cssClass":"pl-pds"}],[{"start":25,"end":68,"cssClass":"pl-s"},{"start":25,"end":26,"cssClass":"pl-pds"},{"start":67,"end":68,"cssClass":"pl-pds"}],[{"start":2,"end":6,"cssClass":"pl-k"}],[{"start":22,"end":72,"cssClass":"pl-s"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":23,"end":28,"cssClass":"pl-smi"},{"start":71,"end":72,"cssClass":"pl-pds"}],[{"start":24,"end":69,"cssClass":"pl-s"},{"start":24,"end":25,"cssClass":"pl-pds"},{"start":25,"end":30,"cssClass":"pl-smi"},{"start":68,"end":69,"cssClass":"pl-pds"}],[{"start":23,"end":62,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":24,"end":29,"cssClass":"pl-smi"},{"start":61,"end":62,"cssClass":"pl-pds"}],[{"start":23,"end":67,"cssClass":"pl-s"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":24,"end":29,"cssClass":"pl-smi"},{"start":66,"end":67,"cssClass":"pl-pds"}],[{"start":25,"end":66,"cssClass":"pl-s"},{"start":25,"end":26,"cssClass":"pl-pds"},{"start":26,"end":31,"cssClass":"pl-smi"},{"start":65,"end":66,"cssClass":"pl-pds"}],[{"start":2,"end":4,"cssClass":"pl-k"}],[{"start":0,"end":2,"cssClass":"pl-k"}],[],[{"start":0,"end":5,"cssClass":"pl-en"}],[{"start":2,"end":6,"cssClass":"pl-c1"},{"start":7,"end":76,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":15,"end":17,"cssClass":"pl-smi"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":10,"cssClass":"pl-s"}],[{"start":0,"end":55,"cssClass":"pl-s"},{"start":4,"end":6,"cssClass":"pl-smi"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":10,"cssClass":"pl-s"}],[{"start":0,"end":70,"cssClass":"pl-s"}],[{"start":0,"end":37,"cssClass":"pl-s"},{"start":36,"end":37,"cssClass":"pl-pds"}],[],[],[{"start":0,"end":5,"cssClass":"pl-k"},{"start":8,"end":10,"cssClass":"pl-smi"},{"start":11,"end":14,"cssClass":"pl-k"},{"start":18,"end":19,"cssClass":"pl-k"},{"start":20,"end":22,"cssClass":"pl-k"}],[{"start":2,"end":6,"cssClass":"pl-k"},{"start":7,"end":9,"cssClass":"pl-smi"},{"start":10,"end":12,"cssClass":"pl-k"}],[],[{"start":19,"end":27,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":26,"end":27,"cssClass":"pl-pds"}],[{"start":17,"end":37,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":36,"cssClass":"pl-smi"},{"start":36,"end":37,"cssClass":"pl-pds"}],[],[],[{"start":19,"end":29,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":28,"end":29,"cssClass":"pl-pds"}],[{"start":17,"end":39,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":38,"cssClass":"pl-smi"},{"start":38,"end":39,"cssClass":"pl-pds"}],[],[],[{"start":19,"end":28,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":27,"end":28,"cssClass":"pl-pds"}],[{"start":17,"end":38,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":37,"cssClass":"pl-smi"},{"start":37,"end":38,"cssClass":"pl-pds"}],[],[],[{"start":19,"end":30,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":29,"end":30,"cssClass":"pl-pds"}],[{"start":17,"end":40,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":39,"cssClass":"pl-smi"},{"start":39,"end":40,"cssClass":"pl-pds"}],[],[],[{"start":19,"end":26,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":25,"end":26,"cssClass":"pl-pds"}],[{"start":17,"end":38,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":37,"cssClass":"pl-smi"},{"start":37,"end":38,"cssClass":"pl-pds"}],[],[],[{"start":19,"end":28,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":27,"end":28,"cssClass":"pl-pds"}],[{"start":17,"end":38,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":37,"cssClass":"pl-smi"},{"start":37,"end":38,"cssClass":"pl-pds"}],[],[],[],[],[],[],[{"start":6,"end":10,"cssClass":"pl-c1"}],[],[{"start":4,"end":5,"cssClass":"pl-k"}],[],[{"start":6,"end":10,"cssClass":"pl-c1"}],[],[{"start":2,"end":6,"cssClass":"pl-k"}],[{"start":2,"end":7,"cssClass":"pl-c1"}],[{"start":0,"end":4,"cssClass":"pl-k"}],[],[{"start":13,"end":31,"cssClass":"pl-s"},{"start":13,"end":14,"cssClass":"pl-pds"},{"start":14,"end":30,"cssClass":"pl-s"},{"start":14,"end":16,"cssClass":"pl-pds"},{"start":29,"end":30,"cssClass":"pl-pds"},{"start":30,"end":31,"cssClass":"pl-pds"}],[{"start":0,"end":2,"cssClass":"pl-k"},{"start":5,"end":7,"cssClass":"pl-k"},{"start":8,"end":23,"cssClass":"pl-s"},{"start":8,"end":9,"cssClass":"pl-pds"},{"start":9,"end":22,"cssClass":"pl-smi"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":25,"end":26,"cssClass":"pl-k"},{"start":27,"end":31,"cssClass":"pl-k"}],[{"start":2,"end":6,"cssClass":"pl-c1"},{"start":7,"end":53,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":39,"end":52,"cssClass":"pl-smi"},{"start":52,"end":53,"cssClass":"pl-pds"}],[{"start":0,"end":4,"cssClass":"pl-k"}],[{"start":2,"end":6,"cssClass":"pl-c1"},{"start":7,"end":84,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":83,"end":84,"cssClass":"pl-pds"}],[{"start":2,"end":6,"cssClass":"pl-c1"}],[{"start":0,"end":2,"cssClass":"pl-k"}],[],[{"start":10,"end":41,"cssClass":"pl-s"},{"start":10,"end":11,"cssClass":"pl-pds"},{"start":11,"end":40,"cssClass":"pl-s"},{"start":11,"end":13,"cssClass":"pl-pds"},{"start":24,"end":26,"cssClass":"pl-k"},{"start":39,"end":40,"cssClass":"pl-pds"},{"start":40,"end":41,"cssClass":"pl-pds"}],[{"start":0,"end":2,"cssClass":"pl-k"},{"start":5,"end":7,"cssClass":"pl-k"},{"start":8,"end":20,"cssClass":"pl-s"},{"start":8,"end":9,"cssClass":"pl-pds"},{"start":9,"end":19,"cssClass":"pl-smi"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":22,"end":23,"cssClass":"pl-k"},{"start":24,"end":28,"cssClass":"pl-k"}],[{"start":2,"end":6,"cssClass":"pl-c1"},{"start":7,"end":46,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":35,"end":45,"cssClass":"pl-smi"},{"start":45,"end":46,"cssClass":"pl-pds"}],[{"start":0,"end":4,"cssClass":"pl-k"}],[{"start":2,"end":6,"cssClass":"pl-c1"},{"start":7,"end":76,"cssClass":"pl-s"},{"start":7,"end":8,"cssClass":"pl-pds"},{"start":75,"end":76,"cssClass":"pl-pds"}],[{"start":2,"end":6,"cssClass":"pl-c1"}],[{"start":0,"end":2,"cssClass":"pl-k"}],[],[{"start":0,"end":2,"cssClass":"pl-k"},{"start":5,"end":7,"cssClass":"pl-k"},{"start":8,"end":21,"cssClass":"pl-s"},{"start":8,"end":9,"cssClass":"pl-pds"},{"start":9,"end":20,"cssClass":"pl-smi"},{"start":20,"end":21,"cssClass":"pl-pds"},{"start":23,"end":24,"cssClass":"pl-k"},{"start":25,"end":29,"cssClass":"pl-k"}],[],[{"start":2,"end":6,"cssClass":"pl-c1"}],[{"start":0,"end":2,"cssClass":"pl-k"}],[],[{"start":15,"end":41,"cssClass":"pl-s"},{"start":15,"end":16,"cssClass":"pl-pds"},{"start":16,"end":27,"cssClass":"pl-smi"},{"start":28,"end":37,"cssClass":"pl-smi"},{"start":40,"end":41,"cssClass":"pl-pds"}],[{"start":19,"end":47,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":20,"end":31,"cssClass":"pl-smi"},{"start":32,"end":41,"cssClass":"pl-smi"},{"start":46,"end":47,"cssClass":"pl-pds"}],[],[{"start":0,"end":4,"cssClass":"pl-c1"},{"start":5,"end":43,"cssClass":"pl-s"},{"start":5,"end":6,"cssClass":"pl-pds"},{"start":17,"end":30,"cssClass":"pl-smi"},{"start":42,"end":43,"cssClass":"pl-pds"}],[],[{"start":0,"end":35,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":9,"end":22,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":10,"end":21,"cssClass":"pl-smi"},{"start":21,"end":22,"cssClass":"pl-pds"}],[],[{"start":9,"end":47,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":10,"end":46,"cssClass":"pl-s"},{"start":10,"end":12,"cssClass":"pl-pds"},{"start":17,"end":24,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":23,"cssClass":"pl-smi"},{"start":23,"end":24,"cssClass":"pl-pds"},{"start":25,"end":26,"cssClass":"pl-k"},{"start":34,"end":45,"cssClass":"pl-s"},{"start":34,"end":35,"cssClass":"pl-pds"},{"start":44,"end":45,"cssClass":"pl-pds"},{"start":45,"end":46,"cssClass":"pl-pds"},{"start":46,"end":47,"cssClass":"pl-pds"}],[{"start":14,"end":57,"cssClass":"pl-s"},{"start":14,"end":15,"cssClass":"pl-pds"},{"start":15,"end":56,"cssClass":"pl-s"},{"start":15,"end":17,"cssClass":"pl-pds"},{"start":22,"end":34,"cssClass":"pl-s"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":23,"end":33,"cssClass":"pl-smi"},{"start":33,"end":34,"cssClass":"pl-pds"},{"start":35,"end":36,"cssClass":"pl-k"},{"start":44,"end":55,"cssClass":"pl-s"},{"start":44,"end":45,"cssClass":"pl-pds"},{"start":54,"end":55,"cssClass":"pl-pds"},{"start":55,"end":56,"cssClass":"pl-pds"},{"start":56,"end":57,"cssClass":"pl-pds"}],[{"start":19,"end":67,"cssClass":"pl-s"},{"start":19,"end":20,"cssClass":"pl-pds"},{"start":20,"end":66,"cssClass":"pl-s"},{"start":20,"end":22,"cssClass":"pl-pds"},{"start":27,"end":44,"cssClass":"pl-s"},{"start":27,"end":28,"cssClass":"pl-pds"},{"start":28,"end":43,"cssClass":"pl-smi"},{"start":43,"end":44,"cssClass":"pl-pds"},{"start":45,"end":46,"cssClass":"pl-k"},{"start":54,"end":65,"cssClass":"pl-s"},{"start":54,"end":55,"cssClass":"pl-pds"},{"start":64,"end":65,"cssClass":"pl-pds"},{"start":65,"end":66,"cssClass":"pl-pds"},{"start":66,"end":67,"cssClass":"pl-pds"}],[{"start":17,"end":63,"cssClass":"pl-s"},{"start":17,"end":18,"cssClass":"pl-pds"},{"start":18,"end":62,"cssClass":"pl-s"},{"start":18,"end":20,"cssClass":"pl-pds"},{"start":25,"end":40,"cssClass":"pl-s"},{"start":25,"end":26,"cssClass":"pl-pds"},{"start":26,"end":39,"cssClass":"pl-smi"},{"start":39,"end":40,"cssClass":"pl-pds"},{"start":41,"end":42,"cssClass":"pl-k"},{"start":50,"end":61,"cssClass":"pl-s"},{"start":50,"end":51,"cssClass":"pl-pds"},{"start":60,"end":61,"cssClass":"pl-pds"},{"start":61,"end":62,"cssClass":"pl-pds"},{"start":62,"end":63,"cssClass":"pl-pds"}],[],[{"start":0,"end":38,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":67,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":39,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":9,"end":12,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":11,"end":12,"cssClass":"pl-cce"}],[{"start":0,"end":32,"cssClass":"pl-s"},{"start":9,"end":28,"cssClass":"pl-smi"},{"start":31,"end":32,"cssClass":"pl-cce"}],[{"start":0,"end":46,"cssClass":"pl-s"},{"start":15,"end":17,"cssClass":"pl-cce"},{"start":21,"end":23,"cssClass":"pl-cce"},{"start":24,"end":26,"cssClass":"pl-cce"},{"start":26,"end":40,"cssClass":"pl-smi"},{"start":40,"end":42,"cssClass":"pl-cce"},{"start":45,"end":46,"cssClass":"pl-cce"}],[{"start":0,"end":41,"cssClass":"pl-s"},{"start":2,"end":4,"cssClass":"pl-cce"},{"start":8,"end":10,"cssClass":"pl-cce"},{"start":14,"end":16,"cssClass":"pl-cce"},{"start":20,"end":22,"cssClass":"pl-cce"},{"start":24,"end":26,"cssClass":"pl-cce"},{"start":26,"end":35,"cssClass":"pl-smi"},{"start":35,"end":37,"cssClass":"pl-cce"},{"start":40,"end":41,"cssClass":"pl-cce"}],[{"start":0,"end":1,"cssClass":"pl-s"},{"start":0,"end":1,"cssClass":"pl-pds"}],[{"start":0,"end":24,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":13,"end":16,"cssClass":"pl-s"},{"start":13,"end":14,"cssClass":"pl-pds"},{"start":15,"end":16,"cssClass":"pl-cce"}],[{"start":0,"end":37,"cssClass":"pl-s"},{"start":14,"end":33,"cssClass":"pl-smi"},{"start":36,"end":37,"cssClass":"pl-cce"}],[{"start":0,"end":1,"cssClass":"pl-s"},{"start":0,"end":1,"cssClass":"pl-pds"}],[],[{"start":0,"end":2,"cssClass":"pl-k"},{"start":5,"end":23,"cssClass":"pl-s"},{"start":5,"end":6,"cssClass":"pl-pds"},{"start":6,"end":22,"cssClass":"pl-smi"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":24,"end":25,"cssClass":"pl-k"},{"start":26,"end":30,"cssClass":"pl-c1"},{"start":32,"end":33,"cssClass":"pl-k"},{"start":34,"end":38,"cssClass":"pl-k"}],[{"start":9,"end":22,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":10,"end":21,"cssClass":"pl-smi"},{"start":21,"end":22,"cssClass":"pl-pds"},{"start":27,"end":54,"cssClass":"pl-s"},{"start":27,"end":28,"cssClass":"pl-pds"},{"start":28,"end":43,"cssClass":"pl-s"},{"start":28,"end":30,"cssClass":"pl-pds"},{"start":38,"end":42,"cssClass":"pl-s"},{"start":38,"end":39,"cssClass":"pl-pds"},{"start":39,"end":41,"cssClass":"pl-smi"},{"start":41,"end":42,"cssClass":"pl-pds"},{"start":42,"end":43,"cssClass":"pl-pds"},{"start":53,"end":54,"cssClass":"pl-pds"},{"start":57,"end":58,"cssClass":"pl-k"},{"start":60,"end":77,"cssClass":"pl-s"},{"start":60,"end":61,"cssClass":"pl-pds"},{"start":61,"end":76,"cssClass":"pl-smi"},{"start":76,"end":77,"cssClass":"pl-pds"}],[{"start":9,"end":26,"cssClass":"pl-s"},{"start":9,"end":10,"cssClass":"pl-pds"},{"start":10,"end":25,"cssClass":"pl-smi"},{"start":25,"end":26,"cssClass":"pl-pds"},{"start":27,"end":56,"cssClass":"pl-s"},{"start":27,"end":28,"cssClass":"pl-pds"},{"start":28,"end":43,"cssClass":"pl-s"},{"start":28,"end":30,"cssClass":"pl-pds"},{"start":38,"end":42,"cssClass":"pl-s"},{"start":38,"end":39,"cssClass":"pl-pds"},{"start":39,"end":41,"cssClass":"pl-smi"},{"start":41,"end":42,"cssClass":"pl-pds"},{"start":42,"end":43,"cssClass":"pl-pds"},{"start":55,"end":56,"cssClass":"pl-pds"},{"start":57,"end":58,"cssClass":"pl-k"},{"start":60,"end":81,"cssClass":"pl-s"},{"start":60,"end":61,"cssClass":"pl-pds"},{"start":61,"end":80,"cssClass":"pl-smi"},{"start":80,"end":81,"cssClass":"pl-pds"}],[{"start":0,"end":4,"cssClass":"pl-k"}],[{"start":2,"end":44,"cssClass":"pl-c"},{"start":2,"end":3,"cssClass":"pl-c"}],[{"start":12,"end":23,"cssClass":"pl-s"},{"start":12,"end":13,"cssClass":"pl-pds"},{"start":13,"end":22,"cssClass":"pl-smi"},{"start":22,"end":23,"cssClass":"pl-pds"},{"start":28,"end":29,"cssClass":"pl-k"},{"start":37,"end":50,"cssClass":"pl-s"},{"start":37,"end":38,"cssClass":"pl-pds"},{"start":38,"end":49,"cssClass":"pl-smi"},{"start":49,"end":50,"cssClass":"pl-pds"},{"start":55,"end":56,"cssClass":"pl-k"},{"start":57,"end":74,"cssClass":"pl-s"},{"start":57,"end":58,"cssClass":"pl-pds"},{"start":58,"end":73,"cssClass":"pl-smi"},{"start":73,"end":74,"cssClass":"pl-pds"}],[{"start":12,"end":27,"cssClass":"pl-s"},{"start":12,"end":13,"cssClass":"pl-pds"},{"start":13,"end":26,"cssClass":"pl-smi"},{"start":26,"end":27,"cssClass":"pl-pds"},{"start":28,"end":29,"cssClass":"pl-k"},{"start":37,"end":54,"cssClass":"pl-s"},{"start":37,"end":38,"cssClass":"pl-pds"},{"start":38,"end":53,"cssClass":"pl-smi"},{"start":53,"end":54,"cssClass":"pl-pds"},{"start":55,"end":56,"cssClass":"pl-k"},{"start":57,"end":78,"cssClass":"pl-s"},{"start":57,"end":58,"cssClass":"pl-pds"},{"start":58,"end":77,"cssClass":"pl-smi"},{"start":77,"end":78,"cssClass":"pl-pds"}],[{"start":0,"end":2,"cssClass":"pl-k"}],[],[{"start":0,"end":65,"cssClass":"pl-c"},{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":10,"end":27,"cssClass":"pl-s"},{"start":10,"end":11,"cssClass":"pl-pds"},{"start":11,"end":26,"cssClass":"pl-smi"},{"start":26,"end":27,"cssClass":"pl-pds"}],[{"start":10,"end":31,"cssClass":"pl-s"},{"start":10,"end":11,"cssClass":"pl-pds"},{"start":11,"end":30,"cssClass":"pl-smi"},{"start":30,"end":31,"cssClass":"pl-pds"}],[],[{"start":0,"end":4,"cssClass":"pl-c1"},{"start":5,"end":81,"cssClass":"pl-s"},{"start":5,"end":6,"cssClass":"pl-pds"},{"start":32,"end":45,"cssClass":"pl-smi"},{"start":68,"end":79,"cssClass":"pl-smi"},{"start":80,"end":81,"cssClass":"pl-pds"}]],"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/passff/passff-host/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null,"repoAlertsPath":"/passff/passff-host/security/dependabot","repoSecurityAndAnalysisPath":"/passff/passff-host/settings/security_analysis","repoOwnerIsOrg":true,"currentUserCanAdminRepo":false},"displayName":"install_host_app.sh","displayUrl":"https://github.com/passff/passff-host/blob/main/src/install_host_app.sh?raw=true","headerInfo":{"blobSize":"5.06 KB","deleteInfo":{"deleteTooltip":"You must be signed in to make or propose changes"},"editInfo":{"editTooltip":"You must be signed in to make or propose changes"},"ghDesktopPath":"https://desktop.github.com","gitLfsPath":null,"onBranch":true,"shortPath":"db94a06","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fpassff%2Fpassff-host%2Fblob%2Fmain%2Fsrc%2Finstall_host_app.sh","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"159","truncatedSloc":"140"},"mode":"executable file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":"Shell","languageID":346,"large":false,"loggedIn":false,"newDiscussionPath":"/passff/passff-host/discussions/new","newIssuePath":"/passff/passff-host/issues/new","planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/passff/passff-host/blob/main/src/install_host_app.sh","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","dismissStackNoticePath":"/settings/dismiss-notice/publish_stack_from_file","releasePath":"/passff/passff-host/releases/new?marketplace=true","showPublishActionBanner":false,"showPublishStackBanner":false},"rawBlobUrl":"https://github.com/passff/passff-host/raw/main/src/install_host_app.sh","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"passff","repoName":"passff-host","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","showDependabotConfigurationBanner":false,"actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timedOut":false,"notAnalyzed":false,"symbols":[{"name":"usage","kind":"function","identStart":2261,"identEnd":2266,"extentStart":2261,"extentEnd":2538,"fullyQualifiedName":"usage","identUtf16":{"start":{"lineNumber":46,"utf16Col":0},"end":{"lineNumber":46,"utf16Col":5}},"extentUtf16":{"start":{"lineNumber":46,"utf16Col":0},"end":{"lineNumber":55,"utf16Col":1}}}]}},"copilotInfo":null,"csrf_tokens":{"/passff/passff-host/branches":{"post":"on_rn1mMVg9QjZRWWKK6UpP4sRDq2LaZMeDDNhzsUYQ0THPNGMuWqsl65EtvjKmS_lJ6iOVG93U77PwlDytXyQ"},"/repos/preferences":{"post":"ZQtN7fRElxS698zpLNh489ilBZlUlBuksSjh84jh33OyP0qqFESAsszwlpEJ9dE7qIdAsTI-odbJf-TcAaiLVQ"}}},"title":"passff-host/src/install_host_app.sh at main ยท passff/passff-host"}