diff --git a/technology/applications/cli/rnr.md b/technology/applications/cli/rnr.md index 6b91c67..b457b68 100644 --- a/technology/applications/cli/rnr.md +++ b/technology/applications/cli/rnr.md @@ -1,101 +1,20 @@ --- obj: application repo: https://github.com/ismaelgv/rnr -rev: 2025-05-19 --- # rnr -RnR is a command-line tool to rename multiple files and directories that supports regular expressions. +[Repo](https://github.com/ismaelgv/rnr) +**RnR** is a command-line tool to **securely rename** multiple files and directories that supports regular expressions. ## Usage -Usage: `rnr ` - -Commands: -- `regex`: Rename files and directories using a regular expression -- `from-file`: Read operations from a dump file -- `to-ascii`: Replace file name UTF-8 chars with ASCII chars representation - -### regex -``` -Rename files and directories using a regular expression - -Usage: rnr regex [OPTIONS] ... - -Arguments: - Expression to match (can be a regex) - Expression replacement (use single quotes for capture groups) - ... Target paths - -Options: - -n, --dry-run - Only show what would be done (default mode) - -f, --force - Make actual changes to files - -b, --backup - Generate file backups before renaming - -s, --silent - Do not print any information - --color - Set color output mode [default: auto] [possible values: always, never, auto] - --dump - Force dumping operations into a file even in dry-run mode - --dump-prefix - Set the dump file prefix [default: rnr-] - --no-dump - Do not dump operations into a file - -l, --replace-limit - Limit of replacements, all matches if set to 0 - -t, --replace-transform - Apply a transformation to replacements including captured groups [possible values: upper, lower, ascii] - -D, --include-dirs - Rename matching directories - -r, --recursive - Recursive mode - -d, --max-depth - Set max depth in recursive mode - -x, --hidden - Include hidden files and directories -``` - -### from-file -``` -Read operations from a dump file - -Usage: rnr from-file [OPTIONS] - -Arguments: - - -Options: - -n, --dry-run Only show what would be done (default mode) - -f, --force Make actual changes to files - -b, --backup Generate file backups before renaming - -s, --silent Do not print any information - --color Set color output mode [default: auto] [possible values: always, never, auto] - --dump Force dumping operations into a file even in dry-run mode - --dump-prefix Set the dump file prefix [default: rnr-] - --no-dump Do not dump operations into a file - -u, --undo Undo the operations from the dump file -``` - -### to-ascii -``` -Usage: rnr to-ascii [OPTIONS] ... - -Arguments: - ... Target paths - -Options: - -n, --dry-run Only show what would be done (default mode) - -f, --force Make actual changes to files - -b, --backup Generate file backups before renaming - -s, --silent Do not print any information - --color Set color output mode [default: auto] [possible values: always, never, auto] - --dump Force dumping operations into a file even in dry-run mode - --dump-prefix Set the dump file prefix [default: rnr-] - --no-dump Do not dump operations into a file - -D, --include-dirs Rename matching directories - -r, --recursive Recursive mode - -d, --max-depth Set max depth in recursive mode - -x, --hidden Include hidden files and directories -``` +Flags +```shell +-n, --dry-run Only show what would be done (default mode) +-f, --force Make actual changes to files +-x, --hidden Include hidden files and directories +-D, --include-dirs Rename matching directories +-r, --recursive Recursive mode +-s, --silent Do not print any information +--no-dump Do not dump operations into a file +``` \ No newline at end of file diff --git a/technology/applications/development/ruff.md b/technology/applications/development/ruff.md deleted file mode 100644 index 05596c9..0000000 --- a/technology/applications/development/ruff.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -obj: application -repo: https://github.com/astral-sh/ruff -website: https://docs.astral.sh/ruff -rev: 2025-05-19 ---- - -# ruff -An extremely fast Python linter and code formatter, written in Rust. - -## The Ruff Linter -The Ruff Linter is an extremely fast Python linter designed as a drop-in replacement for [Flake8](https://pypi.org/project/flake8/) (plus dozens of plugins), [isort](https://pypi.org/project/isort/), [pydocstyle](https://pypi.org/project/pydocstyle/), [pyupgrade](https://pypi.org/project/pyupgrade/), [autoflake](https://pypi.org/project/autoflake/), and more. - -### `ruff check` -`ruff check` is the primary entrypoint to the Ruff linter. It accepts a list of files or directories, and lints all discovered Python files, optionally fixing any fixable errors. When linting a directory, Ruff searches for Python files recursively in that directory and all its subdirectories: - -```console -$ ruff check # Lint files in the current directory. -$ ruff check --fix # Lint files in the current directory and fix any fixable errors. -$ ruff check --watch # Lint files in the current directory and re-lint on change. -$ ruff check path/to/code/ # Lint files in `path/to/code`. -``` - -## The Ruff Formatter -The Ruff formatter is an extremely fast Python code formatter designed as a drop-in replacement for [Black](https://pypi.org/project/black/), available as part of the `ruff` CLI via `ruff format`. - -### `ruff format` -`ruff format` is the primary entrypoint to the formatter. It accepts a list of files or directories, and formats all discovered Python files: - -```shell -ruff format # Format all files in the current directory. -ruff format path/to/code/ # Format all files in `path/to/code` (and any subdirectories). -ruff format path/to/file.py # Format a single file. -``` - -Similar to Black, running `ruff format /path/to/file.py` will format the given file or directory in-place, while `ruff format --check /path/to/file.py` will avoid writing any formatted files back, and instead exit with a non-zero status code upon detecting any unformatted files. - -For the full list of supported options, run `ruff format --help`. - -## Configuration -ruff can be configured via `ruff.toml` config file. See [here](https://docs.astral.sh/ruff/settings/) for a reference of all config parameters. diff --git a/technology/applications/utilities/octopi.md b/technology/applications/utilities/octopi.md deleted file mode 100644 index 79608ff..0000000 --- a/technology/applications/utilities/octopi.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -obj: application -repo: https://github.com/aarnt/octopi ---- - -# Octopi -Octopi is a graphical user interface for the Arch Linux pacman package management tool. -It consists of a package browser, sudo helper, notifier, cache cleaner and repository editor. diff --git a/technology/applications/web/opengist.md b/technology/applications/web/opengist.md deleted file mode 100644 index 046b906..0000000 --- a/technology/applications/web/opengist.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -obj: application -website: https://opengist.io -repo: https://github.com/thomiceli/opengist -rev: 2025-05-19 ---- - -# OpenGist -Opengist is a self-hosted pastebin powered by Git. All snippets are stored in a Git repository and can be read and/or modified using standard Git commands, or with the web interface. It is similiar to GitHub Gist, but open-source and could be self-hosted. - -## Features -- Create public, unlisted or private snippets -- Init / Clone / Pull / Push snippets via Git over HTTP or SSH -- Syntax highlighting ; markdown & CSV support -- Search code in snippets ; browse users snippets, likes and forks -- Add topics to snippets -- Embed snippets in other websites -- Revisions history -- Like / Fork snippets -- Editor with indentation mode & size ; drag and drop files -- Download raw files or as a ZIP archive -- Retrieve snippet data/metadata via a JSON API -- OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect -- Avatars via Gravatar or OAuth2 providers -- Light/Dark mode -- Responsive UI -- Enable or disable signups -- Restrict or unrestrict snippets visibility to anonymous users - -## Compose -```yml -services: - opengist: - image: ghcr.io/thomiceli/opengist:1 - container_name: opengist - restart: unless-stopped - ports: - - "6157:6157" # HTTP port - - "2222:2222" # SSH port, can be removed if you don't use SSH - volumes: - - "$HOME/.opengist:/opengist" - environment: - # OG_LOG_LEVEL: info - # other configuration options -``` - -## Configuration - -| YAML Config Key | Environment Variable | Default value | Description | -| --------------------- | ----------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| log-level | OG_LOG_LEVEL | `warn` | Set the log level to one of the following: `debug`, `info`, `warn`, `error`, `fatal`. | -| log-output | OG_LOG_OUTPUT | `stdout,file` | Set the log output to one or more of the following: `stdout`, `file`. | -| external-url | OG_EXTERNAL_URL | none | Public URL to access to Opengist. | -| opengist-home | OG_OPENGIST_HOME | home directory | Path to the directory where Opengist stores its data. | -| secret-key | OG_SECRET_KEY | randomized 32 bytes | Secret key used for session store & encrypt MFA data on database. | -| db-uri | OG_DB_URI | `opengist.db` | URI of the database. | -| index | OG_INDEX | `bleve` | Define the code indexer (either `bleve`, `meilisearch`, or empty for no index). | -| index.meili.host | OG_MEILI_HOST | none | Set the host for the Meiliseach server. | -| index.meili.api-key | OG_MEILI_API_KEY | none | Set the API key for the Meiliseach server. | -| git.default-branch | OG_GIT_DEFAULT_BRANCH | none | Default branch name used by Opengist when initializing Git repositories. If not set, uses the Git default branch name. More info [here](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup#_new_default_branch) | -| sqlite.journal-mode | OG_SQLITE_JOURNAL_MODE | `WAL` | Set the journal mode for SQLite. More info [here](https://www.sqlite.org/pragma.html#pragma_journal_mode) | -| http.host | OG_HTTP_HOST | `0.0.0.0` | The host on which the HTTP server should bind. | -| http.port | OG_HTTP_PORT | `6157` | The port on which the HTTP server should listen. | -| http.git-enabled | OG_HTTP_GIT_ENABLED | `true` | Enable or disable git operations (clone, pull, push) via HTTP. (`true` or `false`) | -| metrics.enabled | OG_METRICS_ENABLED | `false` | Enable or disable Prometheus metrics endpoint at `/metrics` (`true` or `false`) | -| ssh.git-enabled | OG_SSH_GIT_ENABLED | `true` | Enable or disable git operations (clone, pull, push) via SSH. (`true` or `false`) | -| ssh.host | OG_SSH_HOST | `0.0.0.0` | The host on which the SSH server should bind. | -| ssh.port | OG_SSH_PORT | `2222` | The port on which the SSH server should listen. | -| ssh.external-domain | OG_SSH_EXTERNAL_DOMAIN | none | Public domain for the Git SSH connection, if it has to be different from the HTTP one. If not set, uses the URL from the request. | -| ssh.keygen-executable | OG_SSH_KEYGEN_EXECUTABLE | `ssh-keygen` | Path to the SSH key generation executable. | -| github.client-key | OG_GITHUB_CLIENT_KEY | none | The client key for the GitHub OAuth application. | -| github.secret | OG_GITHUB_SECRET | none | The secret for the GitHub OAuth application. | -| gitlab.client-key | OG_GITLAB_CLIENT_KEY | none | The client key for the GitLab OAuth application. | -| gitlab.secret | OG_GITLAB_SECRET | none | The secret for the GitLab OAuth application. | -| gitlab.url | OG_GITLAB_URL | `https://gitlab.com/` | The URL of the GitLab instance. | -| gitlab.name | OG_GITLAB_NAME | `GitLab` | The name of the GitLab instance. It is displayed in the OAuth login button. | -| gitea.client-key | OG_GITEA_CLIENT_KEY | none | The client key for the Gitea OAuth application. | -| gitea.secret | OG_GITEA_SECRET | none | The secret for the Gitea OAuth application. | -| gitea.url | OG_GITEA_URL | `https://gitea.com/` | The URL of the Gitea instance. | -| gitea.name | OG_GITEA_NAME | `Gitea` | The name of the Gitea instance. It is displayed in the OAuth login button. | -| oidc.provider-name | OG_OIDC_PROVIDER_NAME | none | The name of the OIDC provider | -| oidc.client-key | OG_OIDC_CLIENT_KEY | none | The client key for the OpenID application. | -| oidc.secret | OG_OIDC_SECRET | none | The secret for the OpenID application. | -| oidc.discovery-url | OG_OIDC_DISCOVERY_URL | none | Discovery endpoint of the OpenID provider. | -| ldap.url | OG_LDAP_URL | none | URL of the LDAP instance; if not set, LDAP authentication is disabled | -| ldap.bind-dn | OG_LDAP_BIND_DN | none | Bind DN to authenticate against the LDAP. e.g: cn=read-only-admin,dc=example,dc=com | -| ldap.bind-credentials | OG_LDAP_BIND_CREDENTIALS | none | The password for the Bind DN. | -| ldap.search-base | OG_LDAP_SEARCH_BASE | none | The Base DN to start search from. e.g: ou=People,dc=example,dc=com | -| ldap.search-filter | OG_LDAP_SEARCH_FILTER | none | The filter to search against (the format string %s will be replaced with the username). e.g: (uid=%s) | -| custom.name | OG_CUSTOM_NAME | none | The name of your instance, to be displayed in the tab title | -| custom.logo | OG_CUSTOM_LOGO | none | Path to an image, relative to $opengist-home/custom. | -| custom.favicon | OG_CUSTOM_FAVICON | none | Path to an image, relative to $opengist-home/custom. | -| custom.static-links | OG_CUSTOM_STATIC_LINK_#_(PATH,NAME) | none | Path and name to custom links, more info [here](custom-links.md). | - -## Usage -### Init Gists via Git -Opengist allows you to create new snippets via Git over HTTP. - -Simply init a new Git repository where your file(s) is/are located: - -```shell -git init -git add . -git commit -m "My cool snippet" -``` - -Then add this Opengist special remote URL and push your changes: - -```shell -git remote add origin http://localhost:6157/init - -git push -u origin master -``` - -Log in with your Opengist account credentials, and your snippet will be created at the specified URL: - -```shell -Username for 'http://localhost:6157': thomas -Password for 'http://thomas@localhost:6157': -Enumerating objects: 3, done. -Counting objects: 100% (3/3), done. -Delta compression using up to 8 threads -Compressing objects: 100% (2/2), done. -Writing objects: 100% (3/3), 416 bytes | 416.00 KiB/s, done. -Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 -remote: -remote: Your new repository has been created here: http://localhost:6157/thomas/6051e930f140429f9a2f3bb1fa101066 -remote: -remote: If you want to keep working with your gist, you could set the remote URL via: -remote: git remote set-url origin http://localhost:6157/thomas/6051e930f140429f9a2f3bb1fa101066 -remote: -To http://localhost:6157/init - * [new branch] master -> master -``` - -### Embed a Gist to your webpage -To embed a Gist to your webpage, you can add a script tag with the URL of your gist followed by `.js` to your HTML page: - -```html - - - - -``` - -### Retrieve Gist as JSON -To retrieve a Gist as JSON, you can add `.json` to the end of the URL of your gist: - -```shell -curl http://opengist.url/thomas/my-gist.json | jq '.' -``` - -It returns a JSON object with the following structure similar to this one: -```json -{ - "created_at": "2023-04-12T13:15:20+02:00", - "description": "", - "embed": { - "css": "http://localhost:6157/assets/embed-94abc261.css", - "html": "
\n
\n \n
\n \n \n \n \n

Welcome to Opengist

\n
\n \n\n
\n \n
\n
\n", - "js": "http://localhost:6157/thomas/my-gist.js", - "js_dark": "http://localhost:6157/thomas/my-gist.js?dark" - }, - "files": [ - { - "filename": "hello.md", - "size": 21, - "human_size": "21 B", - "content": "# Welcome to Opengist", - "truncated": false, - "type": "Markdown" - } - ], - "id": "my-gist", - "owner": "thomas", - "title": "hello.md", - "uuid": "8622b297bce54b408e36d546cef8019d", - "visibility": "public" -} -``` - -### Push Options -Opengist has support for a few [Git push options](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt). - -These options are passed to `git push` command and can be used to change the metadata of a gist. - -#### Set URL -```shell -git push -o url=mygist # Will set the URL to https://opengist.example.com/user/mygist -``` - -#### Change title -```shell -git push -o title=Gist123 -git push -o title="My Gist 123" -``` - -#### Change description -```shell -git push -o description="This is my gist description" -``` - -#### Change visibility -```shell -git push -o visibility=public -git push -o visibility=unlisted -git push -o visibility=private -``` diff --git a/technology/applications/web/stump.md b/technology/applications/web/stump.md deleted file mode 100644 index 672ac13..0000000 --- a/technology/applications/web/stump.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -obj: application -website: https://www.stumpapp.dev -repo: https://github.com/stumpapp/stump ---- - -# Stump -Stump is a free and open source comics, manga and digital book server with OPDS support. diff --git a/technology/dev/Material Icons.md b/technology/dev/Material Icons.md deleted file mode 100644 index c44bee3..0000000 --- a/technology/dev/Material Icons.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -obj: concept -website: https://fonts.google.com/icons -repo: https://github.com/google/material-design-icons ---- - -# Material Icons -[Material Icons](https://fonts.google.com/icons) are a comprehensive set of visual symbols designed by Google. These icons follow the [Material Design](https://m3.material.io/) guidelines and are widely used across Android, web, and other platforms to provide a consistent, clean, and intuitive UI experience. - -## Features -* Over 2,000 icons -* Available in multiple styles (Filled, Outlined, Rounded, Sharp, Two-tone) -* Free and open-source under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) -* Easily customizable (size, color, weight) -* Supported via web fonts, SVGs, and icon components - -## Icon Styles -| Style | Description | -| -------- | ----------------------------------------- | -| Filled | Default solid icons | -| Outlined | Icons with a thin, outlined design | -| Rounded | Icons with rounded corners | -| Sharp | Icons with sharp, angular edges | -| Two-tone | Icons with dual-tone for visual hierarchy | - -## Installation - -### Web Font -Add the following `` tag to your HTML ``: - -```html - -``` - -Then use an icon like this: -```html -home -``` - -To use other styles (e.g., Outlined, Rounded), change the font family: -```html - -``` - -Use it like: -```html -home -``` - -## SVG -You can download individual icons as SVGs from [Material Icons](https://fonts.google.com/icons) or use them programmatically. - -Example: -```html -home icon -``` - -## Customization - -### Size -Use CSS to change the size: -```html -home -``` - -Or use utility classes in frameworks like Tailwind: -```html -home -``` - -### Color -```html -home -```