diff --git a/README.md b/README.md index 3a06625..bec819e 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,9 @@ cp dotbot/tools/hg-subrepo/install . touch install.conf.yaml ``` +If you are using PowerShell instead of a POSIX shell, you can use the provided +`install.ps1` script instead of `install`. + To get started, you just need to fill in the `install.conf.yaml` and Dotbot will take care of the rest. To help you get started we have [an example](#full-example) config file as well as [configuration diff --git a/tools/git-submodule/install.ps1 b/tools/git-submodule/install.ps1 new file mode 100644 index 0000000..a5940cf --- /dev/null +++ b/tools/git-submodule/install.ps1 @@ -0,0 +1,22 @@ +$ErrorActionPreference = "Stop" + +$CONFIG = "install.conf.yaml" +$DOTBOT_DIR = "dotbot" + +$DOTBOT_BIN = "bin/dotbot" +$BASEDIR = $PSScriptRoot + +Set-Location $BASEDIR +git -C $DOTBOT_DIR submodule sync --quiet --recursive +git submodule update --init --recursive $DOTBOT_DIR + +foreach ($PYTHON in ('python', 'python3', 'python2')) { + # Python redirects to Microsoft Store in Windows 10 when not installed + if (& { $ErrorActionPreference = "SilentlyContinue" + ![string]::IsNullOrEmpty((&$PYTHON -V)) + $ErrorActionPreference = "Stop" }) { + &$PYTHON $(Join-Path $BASEDIR -ChildPath $DOTBOT_DIR | Join-Path -ChildPath $DOTBOT_BIN) -d $BASEDIR -c $CONFIG $Args + return + } +} +Write-Error "Error: Cannot find Python." diff --git a/tools/hg-subrepo/install.ps1 b/tools/hg-subrepo/install.ps1 new file mode 100644 index 0000000..39078bf --- /dev/null +++ b/tools/hg-subrepo/install.ps1 @@ -0,0 +1,21 @@ +$ErrorActionPreference = "Stop" + +$CONFIG = "install.conf.yaml" +$DOTBOT_DIR = "dotbot" + +$DOTBOT_BIN = "bin/dotbot" +$BASEDIR = $PSScriptRoot + +Set-Location $BASEDIR + +Set-Location $DOTBOT_DIR && git submodule update --init --recursive +foreach ($PYTHON in ('python', 'python3', 'python2')) { + # Python redirects to Microsoft Store in Windows 10 when not installed + if (& { $ErrorActionPreference = "SilentlyContinue" + ![string]::IsNullOrEmpty((&$PYTHON -V)) + $ErrorActionPreference = "Stop" }) { + &$PYTHON $(Join-Path $BASEDIR -ChildPath $DOTBOT_DIR | Join-Path -ChildPath $DOTBOT_BIN) -d $BASEDIR -c $CONFIG $Args + return + } +} +Write-Error "Error: Cannot find Python."