From f0d55fbb760ed5e77c0c398e96b7808f48b745a9 Mon Sep 17 00:00:00 2001 From: Brian Zalewski Date: Mon, 9 Jan 2023 09:31:22 +0000 Subject: [PATCH] Update 3 files - /home/.chezmoidata.yaml - /home/dot_local/bin/executable_install-program - /software.yml --- home/.chezmoidata.yaml | 3 ++- home/dot_local/bin/executable_install-program | 22 +++++++++++-------- software.yml | 3 ++- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/home/.chezmoidata.yaml b/home/.chezmoidata.yaml index b09a033f..fe6e1e55 100644 --- a/home/.chezmoidata.yaml +++ b/home/.chezmoidata.yaml @@ -559,7 +559,8 @@ softwareGroups: - netdata - samba - sftpgo - - vector + # Headless install needs work since it is run via script + # - vector - wazuh Shell-Scripting: &Shell-Scripting - shc diff --git a/home/dot_local/bin/executable_install-program b/home/dot_local/bin/executable_install-program index 7a7675da..5872f128 100644 --- a/home/dot_local/bin/executable_install-program +++ b/home/dot_local/bin/executable_install-program @@ -86,6 +86,7 @@ function fileExists(pathToFile) { let installData let installOrders = {} +let binLinkRan = false const installOrdersPre = [] const installOrdersPost = [] const installOrdersService = [] @@ -1100,8 +1101,8 @@ async function installPackageList(packageManager, packages) { if (unbuffer) { unbufferPrefix = 'unbuffer' } - const verboseMode = process.env.DEBUG_MODE === 'on' ? '-vvv' : '' - await $`ANSIBLE_CONFIG=${process.env.HOME}/.local/share/ansible/ansible.cfg ansible 127.0.0.1 ${verboseMode} -e '{ ansible_connection: "local", ansible_become_user: "root", ansible_user: "${process.env.USER}", install_homebrew: False }' -m include_role -a name=${pkg}` + const verboseMode = process.env.DEBUG_MODE === 'on' ? 'vv' : '' + await $`ANSIBLE_CONFIG=${process.env.HOME}/.local/share/ansible/ansible.cfg ansible 127.0.0.1 -v${verboseMode} -e '{ ansible_connection: "local", ansible_become_user: "root", ansible_user: "${process.env.USER}", install_homebrew: False }' -m include_role -a name=${pkg}` log('success', 'Install', `${pkg} successfully installed via ${packageManager}`) } catch (e) { log('error', 'Install Failure', `There was an error installing ${pkg} with Ansible`) @@ -1528,10 +1529,10 @@ async function linkBin(installOrdersBinLink) { } for (const binLink of installOrdersBinLink) { const pkg = softwarePackages[binLink.package][binLink.preference] - if(!which.sync(binLink.bin, { nothrow: true })) { + if(typeof binLink.bin === 'string' && !which.sync(binLink.bin, { nothrow: true })) { if (binLink.preference === 'flatpak' && flatpak) { try { - runCommand(`Adding bin link for ${pkg} (${binLink.bin})`, `bash -c 'test -d ${flatpakDir}/app/${pkg} && mkdir -p "${process.env.HOME}/.local/bin/flatpak" && echo "flatpak run ${pkg}" > "${process.env.HOME}/.local/bin/flatpak/${binLink.bin}"'`) + runCommand(`Adding bin link for ${pkg} (${binLink.bin})`, `bash -c 'test -d ${flatpakDir}/app/${pkg} && mkdir -p "${process.env.HOME}/.local/bin/flatpak" && echo "flatpak run ${pkg} \"$*\"" > "${process.env.HOME}/.local/bin/flatpak/${binLink.bin}"'`) log('success', 'Bin', `Linked ~/.local/bin/flatpak/${binLink.bin} to the ${pkg} Flatpak`) } catch (e) { log('warn', 'Bin', `Expected flatpak directory not available - ${flatpakDir}/app/${pkg}`) @@ -1604,15 +1605,18 @@ async function installSoftware(pkgsToInstall) { for (const service of installOrdersService) { await updateService(service) } + if (!binLinkRan) { + binLinkRan = true + log('info', 'Bin', 'Linking bin aliases to their installed packages') + await linkBin(installOrdersBinLink) + for (const script of installOrdersPost) { + await $`${script}` + } + } log('info', 'Plugin', 'Installing package-specific plugins') for (const plugin of installOrdersPlugins) { await installPlugins(plugin) } - log('info', 'Bin', 'Linking bin aliases to their installed packages') - await linkBin(installOrdersBinLink) - for (const script of installOrdersPost) { - await $`${script}` - } log('info', 'Post-Install', `Running package manager post-installation steps`) for (const packageManager of packageManagers) { await afterInstall(packageManager) diff --git a/software.yml b/software.yml index 078ad127..4c7360d5 100644 --- a/software.yml +++ b/software.yml @@ -6761,6 +6761,7 @@ softwarePackages: _name: Vagrant _snapClassic: true ansible: professormanhattan.vagrant + apt: vagrant brew: hashicorp/tap/vagrant choco: vagrant dnf: vagrant @@ -6974,7 +6975,7 @@ softwarePackages: ansible: professormanhattan.wails go: github.com/wailsapp/wails/cmd/wails@latest warp: - _bin: null + _bin: warp-cli _desc: '[Cloudflare WARP Client](https://cloudflarewarp.com/) is a free app that makes your Internet safer' _docs: null _github: null