https://github.com/visini/sdls
https://github.com/visini/sdls
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/visini/sdls
- Owner: visini
- License: mit
- Created: 2025-05-29T09:16:14.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-02T15:24:43.000Z (about 1 year ago)
- Last Synced: 2025-07-09T20:43:10.259Z (11 months ago)
- Language: Ruby
- Homepage: https://camillovisini.com/coding/from-gui-to-cli-synology-download-station
- Size: 36.1 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# sdls - Synology Download Station CLI
`sdls` is a command-line interface for adding download tasks to Synology Download Station using magnet links. It provides a simple, scriptable way to queue downloads from your terminal, including an (optional) integration with 1Password for authentication (including 2FA).
## Installation
`gem install sdls`
## Usage
```bash
❯ sdls
Commands:
sdls add [MAGNET] # Add a magnet link to Synology Download Station
sdls config # Display the current configuration
sdls connect # Verify connectivity and authentication
sdls help [COMMAND] # Describe available commands or one specific command
sdls version # Display the SDLS tool version
```
## Configuration
Configure via `~/.config/sdls.yml`.
You may rely on the 1Password integration (this will read the credentials from the 1Password item):
```yml
host: http://nas.local:5000
op_item_name: NameOf1PasswordItem
directories:
- NAS/01_documents
- NAS/02_archive
```
Or, specify username and password manually:
```yml
host: http://nas.local:5000
username: username
password: password
directories:
- NAS/01_documents
- NAS/02_archive
```
Note: Set `SDLS_CONFIG_PATH` to customize the config path.
## Development
Run `bin/sdls` to execute the CLI.
Run `just test` to lint and test.
## Releasing a new version
On the main branch, add the changes to `CHANGELOG.md`.
Then, bump the version in `version.rb` and `sdls.gemspec`.
Then, run `bundle`, which will update `Gemfile.lock`.
With these four changed and staged files, tag the new version:
```rb
git commit -m "Release v0.1.0"
git tag v0.1.0
git push origin main --tags
```
Then, create a [new release](https://github.com/visini/sdls/releases/new) and choose the tag (e.g., `v0.1.0`) and title (e.g., `v0.1.0`). Copy the description from `CHANGELOG.md`.
Finally, run `gem release`.