whitespace fixes and updated Labels

This commit is contained in:
Armin Briegel
2020-12-17 10:53:14 +01:00
parent cde16ba6a8
commit b35db33421
2 changed files with 111 additions and 106 deletions
+104 -104
View File
@@ -208,14 +208,14 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name
xpath() { xpath() {
# the xpath tool changes in Big Sur and now requires the `-e` option # the xpath tool changes in Big Sur and now requires the `-e` option
if [[ $(sw_vers -buildVersion) > "20A" ]]; then if [[ $(sw_vers -buildVersion) > "20A" ]]; then
/usr/bin/xpath -e $@ /usr/bin/xpath -e $@
# alternative: switch to xmllint (which is not perl) # alternative: switch to xmllint (which is not perl)
#xmllint --xpath $@ - #xmllint --xpath $@ -
else else
/usr/bin/xpath $@ /usr/bin/xpath $@
fi fi
} }
@@ -377,9 +377,9 @@ mountDMG() {
installFromDMG() { installFromDMG() {
mountDMG mountDMG
applicationPath="$dmgmount/$appName" applicationPath="$dmgmount/$appName"
printlog "looking for app: $applicationPath" printlog "looking for app: $applicationPath"
if [[ ! -d $applicationPath ]]; then if [[ ! -d $applicationPath ]]; then
# find first file ending with 'app' # find first file ending with 'app'
findfiles=$(find "$dmgmount" -iname "*.app" -maxdepth 1 -mindepth 1 ) findfiles=$(find "$dmgmount" -iname "*.app" -maxdepth 1 -mindepth 1 )
filearray=( ${(f)findfiles} ) filearray=( ${(f)findfiles} )
@@ -388,7 +388,7 @@ installFromDMG() {
fi fi
applicationPath="${filearray[1]}" applicationPath="${filearray[1]}"
printlog "found app: $applicationPath" printlog "found app: $applicationPath"
fi fi
installAppWithPath "$applicationPath" installAppWithPath "$applicationPath"
} }
@@ -541,7 +541,7 @@ if [[ $# -eq 0 ]]; then
grep -E '^[a-z0-9\-]*(\)|\|\\)$' "$0" | tr -d ')|\' | grep -v -E '^(broken.*|longversion|version|valuesfromarguments)$' | sort grep -E '^[a-z0-9\-]*(\)|\|\\)$' "$0" | tr -d ')|\' | grep -v -E '^(broken.*|longversion|version|valuesfromarguments)$' | sort
exit 0 exit 0
elif [[ $1 == "/" ]]; then elif [[ $1 == "/" ]]; then
# jamf uses sends '/' as the first argument # jamf uses sends '/' as the first argument
printlog "shifting arguments for Jamf" printlog "shifting arguments for Jamf"
shift 3 shift 3
fi fi
@@ -941,11 +941,11 @@ teamviewer)
expectedTeamID="H7UGFBUGV6" expectedTeamID="H7UGFBUGV6"
;; ;;
teamviewerqs) teamviewerqs)
name="TeamViewerQS" name="TeamViewerQS"
type="dmg" type="dmg"
downloadURL="https://download.teamviewer.com/download/TeamViewerQS.dmg" downloadURL="https://download.teamviewer.com/download/TeamViewerQS.dmg"
expectedTeamID="H7UGFBUGV6" expectedTeamID="H7UGFBUGV6"
;; ;;
iterm2) iterm2)
name="iTerm" name="iTerm"
type="zip" type="zip"
@@ -1286,12 +1286,12 @@ dialpad)
;; ;;
amazonworkspaces) amazonworkspaces)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting) # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Workspaces" name="Workspaces"
type="pkg" type="pkg"
downloadURL="https://d2td7dqidlhjx7.cloudfront.net/prod/global/osx/WorkSpaces.pkg" downloadURL="https://d2td7dqidlhjx7.cloudfront.net/prod/global/osx/WorkSpaces.pkg"
# appNewVersion=$(curl -fs https://d2td7dqidlhjx7.cloudfront.net/prod/iad/osx/WorkSpacesAppCast_macOS_20171023.xml | grep -o "Version*.*<" | head -1 | cut -d " " -f2 | cut -d "<" -f1) # appNewVersion=$(curl -fs https://d2td7dqidlhjx7.cloudfront.net/prod/iad/osx/WorkSpacesAppCast_macOS_20171023.xml | grep -o "Version*.*<" | head -1 | cut -d " " -f2 | cut -d "<" -f1)
expectedTeamID="94KV3E626L" expectedTeamID="94KV3E626L"
;; ;;
apparency) apparency)
name="Apparency" name="Apparency"
type="dmg" type="dmg"
@@ -1300,26 +1300,26 @@ apparency)
;; ;;
skype) skype)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting) # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
# CONSUMER version of skype, business version is `microsoftskypeforbusiness` # CONSUMER version of skype, business version is `microsoftskypeforbusiness`
name="Skype" name="Skype"
type="dmg" type="dmg"
downloadURL="https://get.skype.com/go/getskype-skypeformac" downloadURL="https://get.skype.com/go/getskype-skypeformac"
expectedTeamID="AL798K98FX" expectedTeamID="AL798K98FX"
;; ;;
bluejeans) bluejeans)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting) # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="BlueJeans" name="BlueJeans"
type="pkg" type="pkg"
downloadURL=$(curl -fs "https://www.bluejeans.com/downloads" | xmllint --html --format - 2>/dev/null | grep -o "https://.*BlueJeansInstaller.dmg" | sed 's/dmg/pkg/g') downloadURL=$(curl -fs "https://www.bluejeans.com/downloads" | xmllint --html --format - 2>/dev/null | grep -o "https://.*BlueJeansInstaller.dmg" | sed 's/dmg/pkg/g')
expectedTeamID="HE4P42JBGN" expectedTeamID="HE4P42JBGN"
;; ;;
ricohpsprinters) ricohpsprinters)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting) # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Ricoh PS Printers" name="Ricoh PS Printers"
type="pkgInDmg" type="pkgInDmg"
downloadURL=$(curl -fs https://support.ricoh.com//bb/html/dr_ut_e/rc3/model/mpc3004ex/mpc3004exen.htm | xmllint --html --format - 2>/dev/null | grep -m 1 -o "https://.*.dmg" | cut -d '"' -f 1) downloadURL=$(curl -fs https://support.ricoh.com//bb/html/dr_ut_e/rc3/model/mpc3004ex/mpc3004exen.htm | xmllint --html --format - 2>/dev/null | grep -m 1 -o "https://.*.dmg" | cut -d '"' -f 1)
expectedTeamID="5KACUT3YX8" expectedTeamID="5KACUT3YX8"
;; ;;
ringcentralphone) ringcentralphone)
# credit: Eric Gjerde, When I Work (@ericgjerde on MacAdmins Slack) # credit: Eric Gjerde, When I Work (@ericgjerde on MacAdmins Slack)
# note: the DMG says RingCentral Phone, the installed app says RingCentral Phone, but the app in the DMG is 'RingCentral for Mac.app' # note: the DMG says RingCentral Phone, the installed app says RingCentral Phone, but the app in the DMG is 'RingCentral for Mac.app'
@@ -1462,7 +1462,7 @@ googleearth)
name="Google Earth Pro" name="Google Earth Pro"
type="pkgInDmg" type="pkgInDmg"
downloadURL="https://dl.google.com/earth/client/advanced/current/GoogleEarthProMac-Intel.dmg" downloadURL="https://dl.google.com/earth/client/advanced/current/GoogleEarthProMac-Intel.dmg"
expectedTeamID="EQHXZ8M8AV" expectedTeamID="EQHXZ8M8AV"
;; ;;
pymol) pymol)
# credit: Fredrik Larsson (@fredrik_l on MacAdmins Slack) # credit: Fredrik Larsson (@fredrik_l on MacAdmins Slack)
@@ -1508,14 +1508,14 @@ libreoffice)
expectedTeamID="7P5S3ZLCN7" expectedTeamID="7P5S3ZLCN7"
;; ;;
sketch) sketch)
# credit: Alex L. (@aloew on MacAdmins Slack) # credit: Alex L. (@aloew on MacAdmins Slack)
name="Sketch" name="Sketch"
type="zip" type="zip"
downloadURL="http://download.sketchapp.com/sketch.zip" downloadURL="http://download.sketchapp.com/sketch.zip"
expectedTeamID="WUGMZZ5K46" expectedTeamID="WUGMZZ5K46"
;; ;;
abstract) abstract)
# credit: Alex L. (@aloew on MacAdmins Slack) # credit: Alex L. (@aloew on MacAdmins Slack)
name="Abstract" name="Abstract"
type="zip" type="zip"
downloadURL="https://api.goabstract.com/releases/latest/download" downloadURL="https://api.goabstract.com/releases/latest/download"
@@ -1543,14 +1543,14 @@ balenaetcher)
expectedTeamID="66H43P8FRG" expectedTeamID="66H43P8FRG"
;; ;;
figma) figma)
# credit: Alex L. (@aloew on MacAdmins Slack) # credit: Alex L. (@aloew on MacAdmins Slack)
name="Figma" name="Figma"
type="zip" type="zip"
downloadURL="https://www.figma.com/download/desktop/mac/" downloadURL="https://www.figma.com/download/desktop/mac/"
expectedTeamID="T8RA8NE3B7" expectedTeamID="T8RA8NE3B7"
;; ;;
jetbrainsidea) jetbrainsidea)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains IntelliJ Idea" name="JetBrains IntelliJ Idea"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1558,7 +1558,7 @@ jetbrainsidea)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=IIU&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=IIU&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainspycharm) jetbrainspycharm)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains PyCharm" name="JetBrains PyCharm"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1566,7 +1566,7 @@ jetbrainspycharm)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=PCP&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=PCP&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainsrubymine) jetbrainsrubymine)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains RubyMine" name="JetBrains RubyMine"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1574,7 +1574,7 @@ jetbrainsrubymine)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=RM&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=RM&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainswebstorm) jetbrainswebstorm)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains Webstorm" name="JetBrains Webstorm"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1582,7 +1582,7 @@ jetbrainswebstorm)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=WS&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=WS&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainsdatagrip) jetbrainsdatagrip)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains DataGrip" name="JetBrains DataGrip"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1590,7 +1590,7 @@ jetbrainsdatagrip)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainsclion) jetbrainsclion)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains CLion" name="JetBrains CLion"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1598,7 +1598,7 @@ jetbrainsclion)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=CL&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=CL&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainsgoland) jetbrainsgoland)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains GoLand" name="JetBrains GoLand"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1606,7 +1606,7 @@ jetbrainsgoland)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=GO&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=GO&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainsrider) jetbrainsrider)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains Rider" name="JetBrains Rider"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1614,7 +1614,7 @@ jetbrainsrider)
downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=RD&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=RD&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5)
;; ;;
jetbrainsappcode) jetbrainsappcode)
# credit: Casey Jensen (@cajenson01 on MacAdmins Slack) # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)
name="JetBrains AppCode" name="JetBrains AppCode"
type="dmg" type="dmg"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
@@ -1623,7 +1623,7 @@ jetbrainsappcode)
;; ;;
jetbrainsideace|\ jetbrainsideace|\
intellijideace) intellijideace)
# credit: Alex L. (@aloew on MacAdmins Slack) # credit: Alex L. (@aloew on MacAdmins Slack)
name="IntelliJ IDEA CE" name="IntelliJ IDEA CE"
type="dmg" type="dmg"
downloadURL="https://download.jetbrains.com/product?code=IIC&latest&distribution=mac" downloadURL="https://download.jetbrains.com/product?code=IIC&latest&distribution=mac"
@@ -1631,21 +1631,21 @@ intellijideace)
;; ;;
jetbrainspycharmce|\ jetbrainspycharmce|\
pycharmce) pycharmce)
# credit: Alex L. (@aloew on MacAdmins Slack) # credit: Alex L. (@aloew on MacAdmins Slack)
name="PyCharm CE" name="PyCharm CE"
type="dmg" type="dmg"
downloadURL="https://download.jetbrains.com/product?code=PCC&latest&distribution=mac" downloadURL="https://download.jetbrains.com/product?code=PCC&latest&distribution=mac"
expectedTeamID="2ZEFAR8TH3" expectedTeamID="2ZEFAR8TH3"
;; ;;
pitch) pitch)
#credit: @evil mwnci on MacAdmins Slack #credit: @evil mwnci on MacAdmins Slack
name="Pitch" name="Pitch"
type="dmg" type="dmg"
downloadURL="https://desktop.pitch.com/mac/Pitch.dmg" downloadURL="https://desktop.pitch.com/mac/Pitch.dmg"
expectedTeamID="KUCN8NUU6Z" expectedTeamID="KUCN8NUU6Z"
;; ;;
sidekick) sidekick)
#credit: @evil mwnci on MacAdmins Slack #credit: @evil mwnci on MacAdmins Slack
name="Sidekick" name="Sidekick"
type="dmg" type="dmg"
downloadURL="https://api.meetsidekick.com/downloads/df/mac" downloadURL="https://api.meetsidekick.com/downloads/df/mac"
@@ -1681,48 +1681,48 @@ fsmonitor)
downloadURL=$(curl --location --fail --silent "https://fsmonitor.com/FSMonitor/Archives/appcast2.xml" | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) downloadURL=$(curl --location --fail --silent "https://fsmonitor.com/FSMonitor/Archives/appcast2.xml" | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="V85GBYB7B9" expectedTeamID="V85GBYB7B9"
;; ;;
ramboxce) ramboxce)
# credit: Adrian Bühler (@midni9ht) # credit: Adrian Bühler (@midni9ht)
name="Rambox" name="Rambox"
type="dmg" type="dmg"
downloadURL=$(downloadURLFromGit ramboxapp community-edition ) downloadURL=$(downloadURLFromGit ramboxapp community-edition )
expectedTeamID="7F292FPD69" expectedTeamID="7F292FPD69"
;; ;;
adobebrackets) adobebrackets)
# credit: Adrian Bühler (@midni9ht) # credit: Adrian Bühler (@midni9ht)
name="Brackets" name="Brackets"
type="dmg" type="dmg"
downloadURL=$(downloadURLFromGit adobe brackets ) downloadURL=$(downloadURLFromGit adobe brackets )
expectedTeamID="JQ525L2MZD" expectedTeamID="JQ525L2MZD"
;; ;;
debookee) debookee)
# credit: Adrian Bühler (@midni9ht) # credit: Adrian Bühler (@midni9ht)
name="Debookee" name="Debookee"
type="zip" type="zip"
downloadURL=$(curl --location --fail --silent "https://www.iwaxx.com/debookee/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) downloadURL=$(curl --location --fail --silent "https://www.iwaxx.com/debookee/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="AATLWWB4MZ" expectedTeamID="AATLWWB4MZ"
;; ;;
ferdi) ferdi)
# credit: Adrian Bühler (@midni9ht) # credit: Adrian Bühler (@midni9ht)
name="Ferdi" name="Ferdi"
type="dmg" type="dmg"
downloadURL=$(downloadURLFromGit getferdi ferdi ) downloadURL=$(downloadURLFromGit getferdi ferdi )
expectedTeamID="B6J9X9DWFL" expectedTeamID="B6J9X9DWFL"
;; ;;
hyper) hyper)
# credit: Adrian Bühler (@midni9ht) # credit: Adrian Bühler (@midni9ht)
name="Hyper" name="Hyper"
type="dmg" type="dmg"
downloadURL=$(downloadURLFromGit vercel hyper ) downloadURL=$(downloadURLFromGit vercel hyper )
expectedTeamID="JW6Y669B67" expectedTeamID="JW6Y669B67"
;; ;;
menumeters) menumeters)
# credit: Adrian Bühler (@midni9ht) # credit: Adrian Bühler (@midni9ht)
name="MenuMeters" name="MenuMeters"
type="zip" type="zip"
downloadURL=$(downloadURLFromGit yujitach MenuMeters ) downloadURL=$(downloadURLFromGit yujitach MenuMeters )
expectedTeamID="95AQ7YKR5A" expectedTeamID="95AQ7YKR5A"
;; ;;
# MARK: add new labels above here # MARK: add new labels above here
@@ -1894,12 +1894,12 @@ microsoftdefenderatp)
;; ;;
microsoftlicenseremovaltool) microsoftlicenseremovaltool)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting) # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Microsoft License Removal Tool" name="Microsoft License Removal Tool"
type="pkg" type="pkg"
downloadURL="https://go.microsoft.com/fwlink/?linkid=849815" downloadURL="https://go.microsoft.com/fwlink/?linkid=849815"
expectedTeamID="QGS93ZLCU7" expectedTeamID="QGS93ZLCU7"
# appNewVersion=$(curl -is "$downloadURL" | grep ocation: | grep -o "Microsoft_.*pkg" | cut -d "_" -f 5 | cut -d "." -f1-2) # appNewVersion=$(curl -is "$downloadURL" | grep ocation: | grep -o "Microsoft_.*pkg" | cut -d "_" -f 5 | cut -d "." -f1-2)
;; ;;
# this description is so you can provide all variables as arguments # this description is so you can provide all variables as arguments
+5
View File
@@ -1,6 +1,7 @@
1password7 1password7
8x8 8x8
abstract abstract
adobebrackets
adobereaderdc adobereaderdc
adobereaderdc-install adobereaderdc-install
adobereaderdc-update adobereaderdc-update
@@ -31,6 +32,7 @@ cryptomator
cyberduck cyberduck
dangerzone dangerzone
dbeaverce dbeaverce
debookee
depnotify depnotify
desktoppr desktoppr
detectxswift detectxswift
@@ -40,6 +42,7 @@ docker
dropbox dropbox
egnyte egnyte
eraseinstall eraseinstall
ferdi
figma figma
firefox firefox
firefoxesrpkg firefoxesrpkg
@@ -56,6 +59,7 @@ gpgsuite
gpgsync gpgsync
grandperspective grandperspective
handbrake handbrake
hyper
icons icons
inkscape inkscape
intellijideace intellijideace
@@ -124,6 +128,7 @@ pycharmce
pymol pymol
qgis-macos-pr qgis-macos-pr
r r
ramboxce
resiliosynchome resiliosynchome
ricohpsprinters ricohpsprinters
ringcentralapp ringcentralapp