https://github.com/covscript/cspkg
Covariant Script Package Manager
https://github.com/covscript/cspkg
covscript package-manager
Last synced: 3 months ago
JSON representation
Covariant Script Package Manager
- Host: GitHub
- URL: https://github.com/covscript/cspkg
- Owner: covscript
- License: apache-2.0
- Created: 2018-02-03T03:42:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-09-28T12:59:11.000Z (9 months ago)
- Last Synced: 2025-09-28T14:52:16.121Z (9 months ago)
- Topics: covscript, package-manager
- Language: Batchfile
- Size: 252 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Covariant Script Package Manager

Covariant Script Package Manager is an online package manager written in Covariant Script itself.
## Dependency
+ [Covariant Script Interpreter](https://github.com/covscript/covscript): v3.4.1(STD210504) or newer version
+ [CovScript Process](https://github.com/covscript/covscript-process)
+ [CovScript Regex](https://github.com/covscript/covscript-regex)
+ [CovScript Codec](https://github.com/covscript/covscript-codec)
+ [CovScript cURL](https://github.com/covscript/covscript-curl)
## Usage
```
Usage: cspkg ... [options] ...
Commands:
init Initialize cspkg environment and configuration
install | -i ... Install packages from remote source
remove | -r ... Remove packages
config | -c Manage local configuration
upgrade | -u Upgrade local packages
build | -b [Path] Build & test local packages
list | -l List current packages
help | -h Show help information
version | -v Show version information
Options:
General
--yes Cancel the prompt
cspkg install
--fix Fix broken dependencies
--import Scanning local CovScript packages
--show-avail Show available CovScript packages in remote source
cspkg upgrade
--retread Retread all local packages and their dependencies
cspkg config
--set Set a configuration key
--app Append to a configuration key
--unset Restore a configuration key to default
cspkg build
--install [Package]... Install a local package
--compile [Argument]... Compile extension using CXX compiler
--release Generate package index files for release
--flat Don't create cspkg-repo directory structure
```
## Configure CSPKG
Local path: `~/.cspkg/config.json`
```json
{
"arch": "x86_64",
"home": "PATH-TO-COVSCRIPT-HOME",
"source": "URL-OF-REPO;URL-OF-REPO",
"proxy": "URL-OF-HTTP-PROXY",
"timeout_ms": "3000"
}
```
For fresh installment, you can run `cspkg init` to generate config file manually.
## Architecture of a typical CSPKG repository
### File Storage
Typically a CSPKG repository is a HTTP(s) site in following structure:
- http://mirrors.covariant.cn/cspkg_v2/
- index.json
- index
- universal
- winucrt
- x86_64
- index.json
- xxx.json
- linux
- x86_64
- index.json
- xxx.json
- macos
- arm64
- index.json
- xxx.json
- universal
- xxx.csp
- winucrt/x86_64
- xxx.cse
- linux/x86_64
- xxx.cse
- macos/arm64
- xxx.cse
You can also use local storage by setting source to URL like `file:///path-to-your-local-repo/`.
## Build your package
### Step 1: Write your Package Description File
#### Package Description File Template:
```json
{
"Name": "test",
"Info": "Test Package",
"Author": "Anonymous",
"Version": "1.0.0",
"Target": "URL to your package",
"Dependencies": []
}
```
+ `Name` is the unique identifier of the package and cannot be repeated.
+ `Info` is the description of your package, should be short in one sentence.
+ `Author` is the name of the package author.
+ `Version` is the version of your package, which will be sorted in lexicographical order.
+ `Target` is the URL of your file(`.cse` or `.csp`), you can use GitHub as your server.
+ `Dependencies` is an array of package names you depend on.
#### Example:
```json
{
"Name": "csdbc_mysql",
"Info": "CSDBC MySQL Driver",
"Author": "CovScript Organization",
"Version": "1.0.0",
"Target": "http://mirrors.covariant.cn/cspkg_v2/universal/csdbc_mysql.csp",
"Dependencies": [
"database",
"codec",
"csdbc",
"regex"
]
}
```
### Step 2: Upload your Package Description File
You can:
+ Upload with your project file to GitHub or other VCS (Recommended!!!)
+ Upload to dedicated server(mostly for releasing purpose)
### Step 3: Building your package
If your package is written in Covariant Script, there's no need for extra building. But if you are writting an Covariant Script Extension, please follow [CSBuild Instruction](https://github.com/covscript/csbuild#build-your-package-with-csbuild).
CSPKG provides lots commands for building and compiling. If you are writting an extension and have `Source` field configured in `csbuild` folders, you can use `cspkg build --install` for auto installation and `cspkg build --compile` for single file compilation.
After that, you can use `cspkg build --release ` for auto releasing, which can generate a legal file structural for your CSPKG source.
### Step 4: Submit your Package to CSPKG Source
1. Fork [CSPKG Source GitHub Repository](https://github.com/covscript/cspkg-sources)
2. Fill the URL of your Package Description File to CSPKG Index File
+ Universal Package(No platform dependency): cspkg/universal.json
+ Platform Specified Package: cspkg/OS_Architectural.json
3. Create new pull request