Skip to content
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
fe1a91e
PowerShell: Update requirement to version 5 or greater (#3330)
niheaven Apr 28, 2019
a757dea
refactor(cmd_available/Get-Command): Add Test-CommandAvailable functi…
niheaven Apr 28, 2019
f63219f
decompress(tests): Improve installation of lessmsi and innounp (#3409)
r15ch13 Apr 28, 2019
7ef4270
shim: Add '.com'-type shim (#3366)
niheaven Apr 29, 2019
e513430
refactor(core): ensure_all_installed() to Confirm-InstallationStatus(…
niheaven Apr 29, 2019
7fa8a69
checkver.ps1: Fix example parameters (#3413)
krokofant Apr 29, 2019
70d6d9c
install: Fix bug with Start-Process -Wait, exclusive to PowerShell Co…
hpsbranco Apr 29, 2019
34c26aa
Patch(decompress): Allow other args to be passthrough (#3411)
niheaven Apr 29, 2019
466c286
Sync #3419 hotfix to develop
r15ch13 Apr 30, 2019
1487e16
Sync #3423 into develop branch
r15ch13 May 1, 2019
501d4b4
refactor(decompress): Change function name casing
r15ch13 Apr 29, 2019
42e4505
refactor(core): Rename aria2 helper functions
r15ch13 Apr 29, 2019
1149402
feature(core): Add lessmsi and innounp helper functions
r15ch13 Apr 29, 2019
51c6e77
fix(install): Check if 7zip/lessmsi/innounp is installed before addin…
r15ch13 Apr 29, 2019
d3ba0b2
fix(decompress): Fix return value of extract_7zip
r15ch13 Apr 30, 2019
e162255
refactor(decompress): Use helper functions for 7zip/lessmsi/innounp
r15ch13 Apr 30, 2019
3cb37f0
refactor(core): file_path > Get-AppFilePath
r15ch13 Apr 30, 2019
010546c
refactor(core): Combine helpers to Get-HelperPath and Test-HelperInst…
r15ch13 Apr 30, 2019
f58fdaa
refactor(tests): Check checksum of TestCases.zip before extracting
r15ch13 Apr 30, 2019
83e4576
fix(core): Remove wrong parenthesis Test-Aria2Enabled and Get-AppFile…
niheaven Apr 30, 2019
f396d88
Sync #3425 hotfix to develop
r15ch13 May 1, 2019
618824e
Sync missing hotfix #3427 to develop
r15ch13 May 1, 2019
9309b52
scoop-cache: Display help on incorrect cache command (#3431)
krokofant May 6, 2019
8beffc4
Sync renaming changes to develop
r15ch13 May 6, 2019
44975dc
feature(update): Add hold/unhold command (#3444)
r15ch13 May 8, 2019
f7a9cd9
refactor(config): Move configuration handling to core.ps1
r15ch13 Mar 18, 2019
4ec576a
refactor(bin/libexec): remove config.ps1 imports
r15ch13 Mar 18, 2019
df64db0
refactor(config): Fix config value removing
r15ch13 Mar 18, 2019
8ead07f
refactor(alias): Apply config changes to scoop-alias command
r15ch13 Mar 18, 2019
2749104
refactor(core): Prefer $XDG_CONFIG_HOME over ~\.config
niheaven Mar 18, 2019
f1c4a6c
refactor(core): Use ASCII encoding because of PowerShell 5
niheaven Mar 18, 2019
e9004e1
refactor(core): ensure config path exists
niheaven Mar 18, 2019
445d4fd
refactor(core): Remove hard-coded path
r15ch13 Mar 18, 2019
1e1a806
refactor(config): Fix set_config function
r15ch13 Mar 18, 2019
40d83d9
refactor(config): Add more tests for load_config and get_config
r15ch13 Mar 18, 2019
1e19829
refactor(config): Fix set_config
r15ch13 Mar 18, 2019
7e40e2e
refactor(config): Fix warning message
r15ch13 Mar 18, 2019
c9fa59d
fix(config): fix set_config check for existing property
r15ch13 Mar 25, 2019
8dd68f6
fix(config): fix datetime tests for PowerShell 6
r15ch13 Mar 25, 2019
d17b4e5
fix(config): Test for DateTime object instead for actual Time
r15ch13 Mar 25, 2019
630ba04
fix(config): More tests for set_config
r15ch13 Mar 25, 2019
9f4bc2a
refactor(config): Better output for scoop config command
r15ch13 Mar 25, 2019
fcabada
refactor(config): Redirect set_config output to Out-Null
r15ch13 May 9, 2019
7699bea
fix(config): Remove config.ps1 imports
r15ch13 May 9, 2019
f53ffc6
feat: support loading basedirs from config
May 10, 2019
ee7d22a
refactor: move core bootstrapper to the eof
May 10, 2019
89558f4
refactor(core): remove old scoopdir support
May 10, 2019
16f88ee
Main bucket moved to github.com/ScoopInstaller/Main
r15ch13 May 11, 2019
5d5c7fa
fix(core): Filter null or empty string from Scoops directory settings
r15ch13 May 11, 2019
27afed0
feature(decompress): Add Expand-DarkArchive helper function
r15ch13 May 11, 2019
039d591
feature(core): Allow wixtoolset and 7zip-zstd as valid helpers
r15ch13 May 11, 2019
f578cd0
feature(checkup): Add warnings to 'scoop checkup' for missing unpackers
r15ch13 May 11, 2019
2aec0b2
feature(depends): Detect dependencies from pre/post and installer script
r15ch13 May 11, 2019
8463119
fix(checkup): Remove lessmsi and aria2 from scoop checkup command
r15ch13 May 11, 2019
17253e4
Add Expand-DarkArchive and some other dependency features (#3450)
r15ch13 May 12, 2019
d006fb9
fix(update): Rewording PowerShell update notice
r15ch13 May 12, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 22 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,13 @@ Scoop is a command-line installer for Windows.
## What does Scoop do?

Scoop installs programs from the command line with a minimal amount of friction. It tries to eliminate things like:
* Permission popup windows
* GUI wizard-style installers
* Path pollution from installing lots of programs
* Unexpected side-effects from installing and uninstalling programs
* The need to find and install dependencies
* The need to perform extra setup steps to get a working program

- Permission popup windows
- GUI wizard-style installers
- Path pollution from installing lots of programs
- Unexpected side-effects from installing and uninstalling programs
- The need to find and install dependencies
- The need to perform extra setup steps to get a working program

Scoop is very scriptable, so you can run repeatable setups to get your environment just the way you like, e.g.:

Expand All @@ -57,13 +58,14 @@ If you've built software that you'd like others to use, Scoop is an alternative

## Requirements

* Windows 7 SP1+ / Windows Server 2008+
* [PowerShell 3](https://www.microsoft.com/en-us/download/details.aspx?id=34595) (or later) and [.NET Framework 4.5+](https://www.microsoft.com/net/download)
* PowerShell must be enabled for your user account e.g. `set-executionpolicy remotesigned -s currentuser`
- Windows 7 SP1+ / Windows Server 2008+
- [PowerShell 5](https://aka.ms/wmf5download) (or later, include [PowerShell Core](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6)) and [.NET Framework 4.5](https://www.microsoft.com/net/download) (or later)
- PowerShell must be enabled for your user account e.g. `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`

## Installation

Run this command from your PowerShell to install scoop to its default location (`C:\Users\<user>\scoop`)

```powershell
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
```
Expand All @@ -74,23 +76,27 @@ The default setup is configured so all user installed programs and Scoop itself
Globally installed programs (`--global`) live in `C:\ProgramData\scoop`.
These settings can be changed through environment variables.

#### Install Scoop to a Custom Directory
### Install Scoop to a Custom Directory

```powershell
[environment]::setEnvironmentVariable('SCOOP','D:\Applications\Scoop','User')
$env:SCOOP='D:\Applications\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
```

#### Configure Scoop to install global programs to a Custom Directory
### Configure Scoop to install global programs to a Custom Directory

```powershell
[environment]::setEnvironmentVariable('SCOOP_GLOBAL','F:\GlobalScoopApps','Machine')
$env:SCOOP_GLOBAL='F:\GlobalScoopApps'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
```

## [Documentation](https://github.com/lukesampson/scoop/wiki)

## Multi-connection downloads with `aria2`

Scoop can utilize [`aria2`](https://github.com/aria2/aria2) to use multi-connection downloads. Simply install `aria2` through Scoop and it will be used for all downloads afterward.

```powershell
scoop install aria2
```
Expand All @@ -105,8 +111,8 @@ You can tweak the following `aria2` settings with the `scoop config` command:

## Inspiration

* [Homebrew](http://mxcl.github.io/homebrew/)
* [sub](https://github.com/37signals/sub#readme)
- [Homebrew](http://mxcl.github.io/homebrew/)
- [sub](https://github.com/37signals/sub#readme)

## What sort of apps can Scoop install?

Expand All @@ -116,9 +122,8 @@ Since installers are common, Scoop supports them too (and their uninstallers).

Scoop is also great at handling single-file programs and Powershell scripts. These don't even need to be compressed. See the [runat](https://github.com/lukesampson/scoop/blob/master/bucket/runat.json) package for an example: it's really just a GitHub gist.


### Support this project

If you find Scoop useful and would like to support ongoing development and maintenance, here's how:

* [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DM2SUH9EUXSKJ) (one-time donation)
- [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DM2SUH9EUXSKJ) (one-time donation)
45 changes: 22 additions & 23 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
version: "{build}-{branch}"

branches:
except:
- gh-pages

build: off
deploy: off
clone_depth: 49

image:
- Visual Studio 2017

- Visual Studio 2017
environment:
scoop: C:\projects\scoop
scoop_home: C:\projects\scoop
scoop_helpers: C:\projects\helpers
lessmsi: '%scoop_helpers%\lessmsi\lessmsi.exe'
innounp: '%scoop_helpers%\innounp\innounp.exe'
matrix:
- PowerShell: 5
- PowerShell: 6

cache:
- '%USERPROFILE%\Documents\WindowsPowerShell\Modules -> appveyor.yml'

- '%USERPROFILE%\Documents\WindowsPowerShell\Modules -> appveyor.yml, test\bin\*.ps1'
- C:\projects\helpers -> appveyor.yml, test\bin\*.ps1
matrix:
fast_finish: true

for:
- matrix:
only:
- PowerShell: 5
install:
- ps: .\test\bin\init.ps1
test_script:
- ps: .\test\bin\test.ps1
- matrix:
only:
- PowerShell: 6
install:
- pwsh: .\test\bin\init.ps1
test_script:
- pwsh: .\test\bin\test.ps1
- matrix:
only:
- PowerShell: 5
install:
- ps: . "$env:SCOOP_HOME\test\bin\init.ps1"
test_script:
- ps: . "$env:SCOOP_HOME\test\bin\test.ps1" -TestPath "$env:APPVEYOR_BUILD_FOLDER"
- matrix:
only:
- PowerShell: 6
install:
- pwsh: . "$env:SCOOP_HOME\test\bin\init.ps1"
test_script:
- pwsh: . "$env:SCOOP_HOME\test\bin\test.ps1" -TestPath "$env:APPVEYOR_BUILD_FOLDER"
1 change: 0 additions & 1 deletion bin/checkhashes.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ param(

. "$PSScriptRoot\..\lib\core.ps1"
. "$PSScriptRoot\..\lib\manifest.ps1"
. "$PSScriptRoot\..\lib\config.ps1"
. "$PSScriptRoot\..\lib\buckets.ps1"
. "$PSScriptRoot\..\lib\autoupdate.ps1"
. "$PSScriptRoot\..\lib\json.ps1"
Expand Down
1 change: 0 additions & 1 deletion bin/checkurls.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ param(

. "$PSScriptRoot\..\lib\core.ps1"
. "$PSScriptRoot\..\lib\manifest.ps1"
. "$PSScriptRoot\..\lib\config.ps1"
. "$PSScriptRoot\..\lib\install.ps1"

$Dir = Resolve-Path $Dir
Expand Down
29 changes: 14 additions & 15 deletions bin/checkver.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -19,32 +19,32 @@
PS BUCKETROOT > .\bin\checkver.ps1
Check all manifest inside default directory.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 -s
PS BUCKETROOT > .\bin\checkver.ps1 -SkipUpdated
Check all manifest inside default directory (list only outdated manifests).
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 -u
PS BUCKETROOT > .\bin\checkver.ps1 -Update
Check all manifests and update All outdated manifests.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 MAN
Check manifest MAN.json inside default directory.
PS BUCKETROOT > .\bin\checkver.ps1 APP
Check manifest APP.json inside default directory.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 MAN -u
Check manifest MAN.json and update, if there is newer version.
PS BUCKETROOT > .\bin\checkver.ps1 APP -Update
Check manifest APP.json and update, if there is newer version.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 MAN -f
Check manifest MAN.json and update, even if there is no new version.
PS BUCKETROOT > .\bin\checkver.ps1 APP -ForceUpdate
Check manifest APP.json and update, even if there is no new version.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 MAN -u -v VER
Check manifest MAN.json and update, using version VER
PS BUCKETROOT > .\bin\checkver.ps1 APP -Update -Version VER
Check manifest APP.json and update, using version VER
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 MAN DIR
Check manifest MAN.json inside ./DIR directory.
PS BUCKETROOT > .\bin\checkver.ps1 APP DIR
Check manifest APP.json inside ./DIR directory.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 -Dir DIR
Check all manifests inside ./DIR directory.
.EXAMPLE
PS BUCKETROOT > .\bin\checkver.ps1 MAN DIR -u
Check manifest MAN.json inside ./DIR directory and update if there is newer version.
PS BUCKETROOT > .\bin\checkver.ps1 APP DIR -Update
Check manifest APP.json inside ./DIR directory and update if there is newer version.
#>
param(
[String] $App = '*',
Expand All @@ -65,7 +65,6 @@ param(

. "$psscriptroot\..\lib\core.ps1"
. "$psscriptroot\..\lib\manifest.ps1"
. "$psscriptroot\..\lib\config.ps1"
. "$psscriptroot\..\lib\buckets.ps1"
. "$psscriptroot\..\lib\autoupdate.ps1"
. "$psscriptroot\..\lib\json.ps1"
Expand Down
6 changes: 3 additions & 3 deletions bin/install.ps1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#Requires -Version 3
#Requires -Version 5

# remote install:
# iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
$old_erroractionpreference = $erroractionpreference
$erroractionpreference = 'stop' # quit if anything goes wrong

if(($PSVersionTable.PSVersion.Major) -lt 3) {
Write-Output "PowerShell 3 or greater is required to run Scoop."
if(($PSVersionTable.PSVersion.Major) -lt 5) {
Write-Output "PowerShell 5 or later is required to run Scoop."
Write-Output "Upgrade PowerShell: https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell"
break
}
Expand Down
1 change: 0 additions & 1 deletion bin/scoop.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ param($cmd)

set-strictmode -off

. "$psscriptroot\..\lib\config.ps1"
. "$psscriptroot\..\lib\core.ps1"
. "$psscriptroot\..\lib\git.ps1"
. "$psscriptroot\..\lib\buckets.ps1"
Expand Down
41 changes: 0 additions & 41 deletions bucket/7zip.json

This file was deleted.

18 changes: 0 additions & 18 deletions bucket/ack.json

This file was deleted.

11 changes: 0 additions & 11 deletions bucket/acmesharp.json

This file was deleted.

18 changes: 0 additions & 18 deletions bucket/adb.json

This file was deleted.

31 changes: 0 additions & 31 deletions bucket/ag.json

This file was deleted.

15 changes: 0 additions & 15 deletions bucket/ahoy.json

This file was deleted.

Loading