Updated project name to install.doctor
This commit is contained in:
parent
d8cda4eac5
commit
c6245b5f8e
6 changed files with 51 additions and 51 deletions
|
@ -12,9 +12,9 @@ If a description starts off with **Environment Variable Only** then the prompt s
|
||||||
|
|
||||||
To use a fork (if you made modifications to the original project), set this equal to one of the following:
|
To use a fork (if you made modifications to the original project), set this equal to one of the following:
|
||||||
|
|
||||||
1. Your GitHub username if you forked this project and the project slug is Sexy-Start
|
1. Your GitHub username if you forked this project and the project slug is `install.doctor`
|
||||||
2. Your GitHub username / slug if you changed it from Sexy-Start (e.g. `ProfessorManhattan/Sexy-Start`)
|
2. Your GitHub username / slug if you changed it from `install.doctor` (e.g. `ProfessorManhattan/install.doctor`)
|
||||||
3. A git remote URL (e.g. `git@gitlab.com:megabyte-labs/sexy-start`)
|
3. A git remote URL (e.g. `git@gitlab.com:megabyte-labs/install.doctor`)
|
||||||
|
|
||||||
* Environment variable: `START_REPO`
|
* Environment variable: `START_REPO`
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ START_REPO=my-gh-user/my-fork-name bash <(curl -sSL https://install.doctor/start
|
||||||
Alternatively, if you want to host your project on GitLab or another git provider, then just specify the git remote's URL:
|
Alternatively, if you want to host your project on GitLab or another git provider, then just specify the git remote's URL:
|
||||||
|
|
||||||
```
|
```
|
||||||
START_REPO=git@gitlab.com:megabyte-labs/sexy-start.git bash <(curl -sSL https://install.doctor/start)
|
START_REPO=git@gitlab.com:megabyte-labs/install.doctor.git bash <(curl -sSL https://install.doctor/start)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Quick Start Notes
|
### Quick Start Notes
|
||||||
|
@ -64,7 +64,7 @@ Qubes support is on its way.
|
||||||
|
|
||||||
## Gas Station
|
## Gas Station
|
||||||
|
|
||||||
This project began as something to supplement our provisioning system that uses Ansible. The system is called [Gas Station](https://gitlab.com/megabyte-labs/gas-station). It includes hundreds of Ansible roles. If you look at the [`software.yml`](/sexy-start) file, you will notice that some of the Ansible roles that Gas Station provides are inside of it. By default, this project will try to install software / dependencies using other, lighter methods before resorting to using Ansible. This is because of the software installer order that is defined at the top of the software.yml file. Gas Station is also still used to house some of the variables / data that this project uses.
|
This project began as something to supplement our provisioning system that uses Ansible. The system is called [Gas Station](https://gitlab.com/megabyte-labs/gas-station). It includes hundreds of Ansible roles. If you look at the [`software.yml`](/software.yml) file, you will notice that some of the Ansible roles that Gas Station provides are inside of it. By default, this project will try to install software / dependencies using other, lighter methods before resorting to using Ansible. This is because of the software installer order that is defined at the top of the software.yml file. Gas Station is also still used to house some of the variables / data that this project uses.
|
||||||
|
|
||||||
## Chezmoi
|
## Chezmoi
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@ const osPlatform = osPlatformData === 'win32' ? 'windows' : osPlatformData
|
||||||
|
|
||||||
// Download the installation map
|
// Download the installation map
|
||||||
async function downloadInstallData() {
|
async function downloadInstallData() {
|
||||||
const response = await fetch('https://gitlab.com/megabyte-labs/sexy-start/-/raw/master/software.yml')
|
const response = await fetch('https://gitlab.com/megabyte-labs/install.doctor/-/raw/master/software.yml')
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
const text = await response.text()
|
const text = await response.text()
|
||||||
return YAML.parse(text)
|
return YAML.parse(text)
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# @file .local/bin/provision
|
# @file .local/bin/provision
|
||||||
# @brief Installs dependencies, clones the Hiawatha Dotfiles repository, and then starts Chezmoi
|
# @brief Installs dependencies, clones the Install Doctor repository, and then starts Chezmoi
|
||||||
# @description
|
# @description
|
||||||
# This script ensures Chezmoi, Glow, and Gum are installed. It also includes logging functions for styled logging.
|
# This script ensures Chezmoi, Glow, and Gum are installed. It also includes logging functions for styled logging.
|
||||||
# After dependencies are installed, it adds the necessary files from https://gitlab.com/megabyte-labs/hiawatha-dotfiles.git into
|
# After dependencies are installed, it adds the necessary files from https://gitlab.com/megabyte-labs/install.doctor.git into
|
||||||
# ~/.local/share/chezmoi. Finally, it begins the TUI experience by displaying styled documentation, prompts, and finishes
|
# ~/.local/share/chezmoi. Finally, it begins the TUI experience by displaying styled documentation, prompts, and finishes
|
||||||
# by calling the appropriate Chezmoi commands.
|
# by calling the appropriate Chezmoi commands.
|
||||||
|
|
||||||
|
@ -195,27 +195,27 @@ fi
|
||||||
|
|
||||||
### Clones the source repository
|
### Clones the source repository
|
||||||
cloneStart() {
|
cloneStart() {
|
||||||
logg info "Cloning ${START_REPO:-https://gitlab.com/megabyte-labs/sexy-start.git} to /usr/local/src/sexy-start"
|
logg info "Cloning ${START_REPO:-https://gitlab.com/megabyte-labs/install.doctor.git} to /usr/local/src/install.doctor"
|
||||||
rm -rf /usr/local/src/sexy-start
|
rm -rf /usr/local/src/install.doctor
|
||||||
sudo git clone ${START_REPO:-https://gitlab.com/megabyte-labs/sexy-start.git} /usr/local/src/sexy-start
|
sudo git clone ${START_REPO:-https://gitlab.com/megabyte-labs/install.doctor.git} /usr/local/src/install.doctor
|
||||||
chown -Rf "$USER":"$(id -g -n)" /usr/local/src/sexy-start
|
chown -Rf "$USER":"$(id -g -n)" /usr/local/src/install.doctor
|
||||||
}
|
}
|
||||||
|
|
||||||
### Ensure source files are present
|
### Ensure source files are present
|
||||||
logg 'Ensuring /usr/local/src/sexy-start is owned by the user'
|
logg 'Ensuring /usr/local/src/install.doctor is owned by the user'
|
||||||
if [ -d /usr/local/src/sexy-start ] && [ ! -w /usr/local/src/sexy-start ]; then
|
if [ -d /usr/local/src/install.doctor ] && [ ! -w /usr/local/src/install.doctor ]; then
|
||||||
sudo chown -Rf "$USER":"$(id -g -n)" /usr/local/src/sexy-start
|
sudo chown -Rf "$USER":"$(id -g -n)" /usr/local/src/install.doctor
|
||||||
fi
|
fi
|
||||||
if [ -d /usr/local/src/sexy-start/.git ]; then
|
if [ -d /usr/local/src/install.doctor/.git ]; then
|
||||||
cd /usr/local/src/sexy-start || exit 1
|
cd /usr/local/src/install.doctor || exit 1
|
||||||
if [ "$(git remote get-url origin)" == 'https://gitlab.com/megabyte-labs/sexy-start.git' ]; then
|
if [ "$(git remote get-url origin)" == 'https://gitlab.com/megabyte-labs/install.doctor.git' ]; then
|
||||||
logg info "Pulling the latest changes from ${START_REPO:-https://gitlab.com/megabyte-labs/sexy-start.git} to /usr/local/src/sexy-start"
|
logg info "Pulling the latest changes from ${START_REPO:-https://gitlab.com/megabyte-labs/install.doctor.git} to /usr/local/src/install.doctor"
|
||||||
git config pull.rebase false
|
git config pull.rebase false
|
||||||
git reset --hard HEAD
|
git reset --hard HEAD
|
||||||
git clean -fxd
|
git clean -fxd
|
||||||
git pull origin master
|
git pull origin master
|
||||||
else
|
else
|
||||||
logg info "The repository's origin URL has changed so /usr/local/src/sexy-start will be removed and re-cloned using the origin specified by the START_REPO variable"
|
logg info "The repository's origin URL has changed so /usr/local/src/install.doctor will be removed and re-cloned using the origin specified by the START_REPO variable"
|
||||||
cloneStart
|
cloneStart
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -224,18 +224,18 @@ fi
|
||||||
|
|
||||||
### Copy new files from src git repository to dotfiles with rsync
|
### Copy new files from src git repository to dotfiles with rsync
|
||||||
rsyncChezmoiFiles() {
|
rsyncChezmoiFiles() {
|
||||||
rsync -rtvu --delete /usr/local/src/sexy-start/docs/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/docs/" &
|
rsync -rtvu --delete /usr/local/src/install.doctor/docs/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/docs/" &
|
||||||
rsync -rtvu --delete /usr/local/src/sexy-start/home/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/home/" &
|
rsync -rtvu --delete /usr/local/src/install.doctor/home/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/home/" &
|
||||||
rsync -rtvu --delete /usr/local/src/sexy-start/system/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/system/" &
|
rsync -rtvu --delete /usr/local/src/install.doctor/system/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/system/" &
|
||||||
rsync -rtvu /usr/local/src/sexy-start/.chezmoiignore "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiignore" &
|
rsync -rtvu /usr/local/src/install.doctor/.chezmoiignore "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiignore" &
|
||||||
rsync -rtvu /usr/local/src/sexy-start/.chezmoiroot "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiroot" &
|
rsync -rtvu /usr/local/src/install.doctor/.chezmoiroot "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiroot" &
|
||||||
rsync -rtvu /usr/local/src/sexy-start/software.yml "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/software.yml" &
|
rsync -rtvu /usr/local/src/install.doctor/software.yml "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/software.yml" &
|
||||||
wait
|
wait
|
||||||
logg success 'Successfully updated the ~/.local/share/chezmoi folder with changes from the upstream repository'
|
logg success 'Successfully updated the ~/.local/share/chezmoi folder with changes from the upstream repository'
|
||||||
}
|
}
|
||||||
|
|
||||||
### Copy files to HOME folder with rsync
|
### Copy files to HOME folder with rsync
|
||||||
logg info 'Copying files from /usr/local/src/sexy-start to the HOME directory via rsync'
|
logg info 'Copying files from /usr/local/src/install.doctor to the HOME directory via rsync'
|
||||||
mkdir -p "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi"
|
mkdir -p "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi"
|
||||||
rsyncChezmoiFiles
|
rsyncChezmoiFiles
|
||||||
### Ensure ~/.local/bin files are executable
|
### Ensure ~/.local/bin files are executable
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# @brief Installs dependencies, clones the Sexy Start repository, and then starts Chezmoi
|
# @brief Installs dependencies, clones the Sexy Start repository, and then starts Chezmoi
|
||||||
# @description
|
# @description
|
||||||
# This script ensures Chezmoi, Glow, and Gum are installed. It also includes logging functions for styled logging.
|
# This script ensures Chezmoi, Glow, and Gum are installed. It also includes logging functions for styled logging.
|
||||||
# After dependencies are installed, it adds the necessary files from https://gitlab.com/megabyte-labs/sexy-start.git into
|
# After dependencies are installed, it adds the necessary files from https://gitlab.com/megabyte-labs/install.doctor.git into
|
||||||
# ~/.local/share/chezmoi. Finally, it begins the TUI experience by displaying styled documentation, prompts, and finishes
|
# ~/.local/share/chezmoi. Finally, it begins the TUI experience by displaying styled documentation, prompts, and finishes
|
||||||
# by calling the appropriate Chezmoi commands.
|
# by calling the appropriate Chezmoi commands.
|
||||||
|
|
||||||
|
@ -360,27 +360,27 @@ fi
|
||||||
|
|
||||||
### Clones the source repository
|
### Clones the source repository
|
||||||
cloneStart() {
|
cloneStart() {
|
||||||
logg info "Cloning ${START_REPO:-https://gitlab.com/megabyte-labs/sexy-start.git} to /usr/local/src/sexy-start"
|
logg info "Cloning ${START_REPO:-https://gitlab.com/megabyte-labs/install.doctor.git} to /usr/local/src/install.doctor"
|
||||||
rm -rf /usr/local/src/sexy-start
|
rm -rf /usr/local/src/install.doctor
|
||||||
sudo git clone ${START_REPO:-https://gitlab.com/megabyte-labs/sexy-start.git} /usr/local/src/sexy-start
|
sudo git clone ${START_REPO:-https://gitlab.com/megabyte-labs/install.doctor.git} /usr/local/src/install.doctor
|
||||||
chown -Rf "$USER":"$(id -g -n)" /usr/local/src/sexy-start
|
chown -Rf "$USER":"$(id -g -n)" /usr/local/src/install.doctor
|
||||||
}
|
}
|
||||||
|
|
||||||
### Ensure source files are present
|
### Ensure source files are present
|
||||||
logg 'Ensuring /usr/local/src/sexy-start is owned by the user'
|
logg 'Ensuring /usr/local/src/install.doctor is owned by the user'
|
||||||
if [ -d /usr/local/src/sexy-start ] && [ ! -w /usr/local/src/sexy-start ]; then
|
if [ -d /usr/local/src/install.doctor ] && [ ! -w /usr/local/src/install.doctor ]; then
|
||||||
sudo chown -Rf "$USER":"$(id -g -n)" /usr/local/src/sexy-start
|
sudo chown -Rf "$USER":"$(id -g -n)" /usr/local/src/install.doctor
|
||||||
fi
|
fi
|
||||||
if [ -d /usr/local/src/sexy-start/.git ]; then
|
if [ -d /usr/local/src/install.doctor/.git ]; then
|
||||||
cd /usr/local/src/sexy-start || exit 1
|
cd /usr/local/src/install.doctor || exit 1
|
||||||
if [ "$(git remote get-url origin)" == 'https://gitlab.com/megabyte-labs/sexy-start.git' ]; then
|
if [ "$(git remote get-url origin)" == 'https://gitlab.com/megabyte-labs/install.doctor.git' ]; then
|
||||||
logg info "Pulling the latest changes from ${START_REPO:-https://gitlab.com/megabyte-labs/sexy-start.git} to /usr/local/src/sexy-start"
|
logg info "Pulling the latest changes from ${START_REPO:-https://gitlab.com/megabyte-labs/install.doctor.git} to /usr/local/src/install.doctor"
|
||||||
git config pull.rebase false
|
git config pull.rebase false
|
||||||
git reset --hard HEAD
|
git reset --hard HEAD
|
||||||
git clean -fxd
|
git clean -fxd
|
||||||
git pull origin master
|
git pull origin master
|
||||||
else
|
else
|
||||||
logg info "The repository's origin URL has changed so /usr/local/src/sexy-start will be removed and re-cloned using the origin specified by the START_REPO variable"
|
logg info "The repository's origin URL has changed so /usr/local/src/install.doctor will be removed and re-cloned using the origin specified by the START_REPO variable"
|
||||||
cloneStart
|
cloneStart
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -389,18 +389,18 @@ fi
|
||||||
|
|
||||||
### Copy new files from src git repository to dotfiles with rsync
|
### Copy new files from src git repository to dotfiles with rsync
|
||||||
rsyncChezmoiFiles() {
|
rsyncChezmoiFiles() {
|
||||||
rsync -rtvu --delete /usr/local/src/sexy-start/docs/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/docs/" &
|
rsync -rtvu --delete /usr/local/src/install.doctor/docs/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/docs/" &
|
||||||
rsync -rtvu --delete /usr/local/src/sexy-start/home/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/home/" &
|
rsync -rtvu --delete /usr/local/src/install.doctor/home/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/home/" &
|
||||||
rsync -rtvu --delete /usr/local/src/sexy-start/system/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/system/" &
|
rsync -rtvu --delete /usr/local/src/install.doctor/system/ "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/system/" &
|
||||||
rsync -rtvu /usr/local/src/sexy-start/.chezmoiignore "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiignore" &
|
rsync -rtvu /usr/local/src/install.doctor/.chezmoiignore "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiignore" &
|
||||||
rsync -rtvu /usr/local/src/sexy-start/.chezmoiroot "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiroot" &
|
rsync -rtvu /usr/local/src/install.doctor/.chezmoiroot "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/.chezmoiroot" &
|
||||||
rsync -rtvu /usr/local/src/sexy-start/software.yml "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/software.yml" &
|
rsync -rtvu /usr/local/src/install.doctor/software.yml "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi/software.yml" &
|
||||||
wait
|
wait
|
||||||
logg success 'Successfully updated the ~/.local/share/chezmoi folder with changes from the upstream repository'
|
logg success 'Successfully updated the ~/.local/share/chezmoi folder with changes from the upstream repository'
|
||||||
}
|
}
|
||||||
|
|
||||||
### Copy files to HOME folder with rsync
|
### Copy files to HOME folder with rsync
|
||||||
logg info 'Copying files from /usr/local/src/sexy-start to the HOME directory via rsync'
|
logg info 'Copying files from /usr/local/src/install.doctor to the HOME directory via rsync'
|
||||||
mkdir -p "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi"
|
mkdir -p "${XDG_DATA_DIR:-$HOME/.local/share}/chezmoi"
|
||||||
rsyncChezmoiFiles
|
rsyncChezmoiFiles
|
||||||
### Ensure ~/.local/bin files are executable
|
### Ensure ~/.local/bin files are executable
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"private": false,
|
"private": false,
|
||||||
"name": "@mblabs/sexy-start",
|
"name": "@mblabs/install-doctor",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "A glorious combination of application / theme settings and a performant cross-platform, desktop-oriented software suite.",
|
"description": "A glorious combination of application / theme settings and a performant cross-platform, desktop-oriented software suite.",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@ -96,10 +96,10 @@
|
||||||
"description": "A glorious combination of application / theme settings and a performant cross-platform, desktop-oriented software suite.",
|
"description": "A glorious combination of application / theme settings and a performant cross-platform, desktop-oriented software suite.",
|
||||||
"group": "npm",
|
"group": "npm",
|
||||||
"name": "Install Doctor",
|
"name": "Install Doctor",
|
||||||
"overview": "Want to try out a new desktop jam-packed with a whole suite of GitHub's most-starred projects? Install Doctor is a combination of application settings, theme files, and a performant yet flexible software installer written with [ZX](https://github.com/google/zx). It is easily customizable, with optional prompts that ask you for API keys if you want to completely automate everything. The installer supports almost any operating system, just checkout the [software.yml file](https://gitlab.com/megabyte-labs/hiawatha-dotfiles/-/blob/master/software.yml). It uses [Chezmoi](https://github.com/twpayne/chezmoi) to apply file changes in an interactive way. It is not your typical Chezmoi project - it is built around the philosophy that you should be able to bash all your computers to bits with a hammer and then resurrect them the next day ✝️️ by storing stateful data to an encrypted S3 bucket and automating desktop configuration as much as possible.",
|
"overview": "Want to try out a new desktop jam-packed with a whole suite of GitHub's most-starred projects? Install Doctor is a combination of application settings, theme files, and a performant yet flexible software installer written with [ZX](https://github.com/google/zx). It is easily customizable, with optional prompts that ask you for API keys if you want to completely automate everything. The installer supports almost any operating system, just checkout the [software.yml file](https://gitlab.com/megabyte-labs/install.doctor/-/blob/master/software.yml). It uses [Chezmoi](https://github.com/twpayne/chezmoi) to apply file changes in an interactive way. It is not your typical Chezmoi project - it is built around the philosophy that you should be able to bash all your computers to bits with a hammer and then resurrect them the next day ✝️️ by storing stateful data to an encrypted S3 bucket and automating desktop configuration as much as possible.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"github": "https://github.com/megabyte-labs/install-doctor",
|
"github": "https://github.com/megabyte-labs/install.doctor",
|
||||||
"gitlab": "https://gitlab.com/megabyte-labs/install-doctor"
|
"gitlab": "https://gitlab.com/megabyte-labs/install.doctor"
|
||||||
},
|
},
|
||||||
"slug": "install-doctor",
|
"slug": "install-doctor",
|
||||||
"subgroup": "misc",
|
"subgroup": "misc",
|
||||||
|
|
Loading…
Reference in a new issue