-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 72ab8ef
Showing
31 changed files
with
1,536 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: build | ||
|
||
on: | ||
push: | ||
branches: [main] | ||
paths: | ||
- .github/** | ||
- cmd/** | ||
- internal/** | ||
- main.go | ||
pull_request: | ||
branches: [main] | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build: | ||
name: Build and test | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version-file: "go.mod" | ||
|
||
- name: Install dependencies | ||
run: go get . | ||
|
||
- name: Build | ||
run: go build -v . | ||
|
||
- name: Test | ||
run: go test -v ./... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: publish | ||
|
||
on: | ||
push: | ||
tags: | ||
- "*" | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: write | ||
|
||
jobs: | ||
publish: | ||
name: Release and publish | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version-file: "go.mod" | ||
|
||
- name: Install dependencies | ||
run: go get . | ||
|
||
- name: Release and publish | ||
uses: goreleaser/goreleaser-action@v4 | ||
with: | ||
args: release --clean | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
.sqlpkg/ | ||
sqlpkg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
builds: | ||
- binary: sqlpkg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2023+ Anton Zhiyanov <https://github.com/nalgeon/sqlpkg-cli> | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
# The (unofficial) SQLite package manager | ||
|
||
`sqlpkg` manages SQLite extensions, just like `pip` does with Python packages or `brew` does with macOS programs. | ||
|
||
It works primarily with the [SQLite package registry](https://sqlpkg.org/), but is not limited to it. You can install SQLite extensions from GitHub repositories or other websites. All you need is a package spec file (more on that later). | ||
|
||
Please note that `sqlpkg` is new and a bit rough around the edges. | ||
|
||
## Downloading and installing | ||
|
||
`sqlpkg` is a binary executable file (`sqlpkg.exe` on Windows, `sqlpkg` on Linux/macOS). Download it from the link below and put it somewhere in your `PATH` ([what's that?](https://stackoverflow.com/a/41895179/19962064)), so you can run it from anyhwere on your computer. | ||
|
||
[**Download**](https://github.com/nalgeon/sqlpkg-cli/releases/latest) | ||
|
||
Then run it from the command line (terminal) as described below. | ||
|
||
## Installing packages | ||
|
||
Install a package from the registry: | ||
|
||
``` | ||
sqlpkg install nalgeon/stats | ||
``` | ||
|
||
`nalgeon/stats` is the ID of the extension as shown in the registry. | ||
|
||
Install a package from a GitHub repository (it should have a package spec file): | ||
|
||
``` | ||
sqlpkg install github.com/nalgeon/sqlean | ||
``` | ||
|
||
Install a package from a spec file somewhere on the Internet: | ||
|
||
``` | ||
sqlpkg install https://antonz.org/downloads/stats.json | ||
``` | ||
|
||
Install a package from a local spec file: | ||
|
||
``` | ||
sqlpkg install ./stats.json | ||
``` | ||
|
||
## Package location | ||
|
||
By default, `sqlpkg` installs all extensions in the home folder: | ||
|
||
- `%USERPROFILE%\.sqlpkg` on Windows | ||
- `~/.sqlpkg` on Linux/macOS | ||
|
||
So for our `nalgeon/stats` extension it might be: | ||
|
||
- `C:\Users\anton\.sqlpkg\nalgeon\stats\stats.dll` on Windows | ||
- `/home/anton/.sqlpkg/nalgeon/stats/stats.so` on Linux | ||
- `/Users/anton/.sqlpkg/nalgeon/stats/stats.dylib` on macOS | ||
|
||
## Other commands | ||
|
||
`sqlpkg` provides other basic commands you would expect from a package manager. | ||
|
||
### `update` | ||
|
||
``` | ||
sqlpkg update | ||
``` | ||
|
||
Updates all installed packages to the latest versions. | ||
|
||
### `list` | ||
|
||
``` | ||
sqlpkg list | ||
``` | ||
|
||
Lists installed packages. | ||
|
||
### `info` | ||
|
||
``` | ||
sqlpkg info nalgeon/stats | ||
``` | ||
|
||
Displays package information. Works with both local and remote packages. | ||
|
||
### `uninstall` | ||
|
||
``` | ||
sqlpkg uninstall nalgeon/stats | ||
``` | ||
|
||
Uninstalls a previously installed package. | ||
|
||
## Using a local repository | ||
|
||
By default, `sqlpkg` installs all extensions in the home folder. If you are writing a Python (JavaScript, Go, ...) application — you may prefer to put them in the project folder (think virtual environment in Python or `node_modules` in JavaScript). | ||
|
||
To do that, run the `init` command: | ||
|
||
``` | ||
sqlpkg init | ||
``` | ||
|
||
It will create an `.sqlpkg` folder in the current directory. After that, all other commands run from the same directory will use it instead of the home folder. | ||
|
||
## Package spec file | ||
|
||
The package spec file describes a particular package so that `sqlpkg` can work with it. It is usually created by the package author, so if you are a `sqlpkg` user, you don't need to worry about that. | ||
|
||
If you _are_ a package author, who wants your package to be installable by `sqlpkg`, learn how to create a spec file using [this guide](docs/spec-file.md) (coming soon). | ||
|
||
That's all for now. Now try some packages! | ||
|
||
[⬇️ Download](https://github.com/nalgeon/sqlpkg-cli/releases/latest) • | ||
[✨ Explore](https://sqlpkg.org/) • | ||
[🚀 Follow](https://twitter.com/ohmypy) |
Oops, something went wrong.