1 Commits

Author SHA1 Message Date
46fc34c191 update changelog 2023-07-19 13:32:20 +02:00
18 changed files with 342 additions and 607 deletions

10
.gitea/ISSUE_TEMPLATE.md Normal file
View File

@ -0,0 +1,10 @@
---
name: 'Default'
about: 'Use this template if nothing seems to work.'
title: ':question: '
labels:
- question
---
#### :grey_question: Simply ask your question here: :grey_question:
<!-- Take your time an think about your problem.... -->

View File

@ -1,16 +0,0 @@
name: Default
about: Use this template if nothing seems to work.
title: ''
body:
- type: markdown
attributes:
value: |
> **Note**: Thanks for taking the time to fill out this bug report!
- type: textarea
id: content
attributes:
label: ❔ What happened
description: Simply ask your question here.
placeholder: Tell us what you want to know...
validations:
required: true

View File

@ -0,0 +1,48 @@
---
name: 'Bug'
about: 'This template is used to report bugs!'
title: ':lady_beetle: '
labels:
- bug
---
<!--
This bug report is ony for content provided in this repository!
- Make sure you're able to reproduce the error in the latest version of this package.
- Search of already existing issues.
- Refer to the known issues and FAQ section.
-->
#### :bomb: Steps to reproduce
```bash
```
#### :rocket: Expected behavior
```bash
```
#### :boom: Actual behavior
```bash
```
#### :notebook: Environment data
<!-- You can add additional environment data here--->
```bash
```
#### :framed_picture: Screenshots
<!-- Paste your screenshots here. -->
#### :bookmark: Refs
<!-- A place for additional references to other issues and PRs -->

View File

@ -1,69 +0,0 @@
name: 🐞 Bug Report
about: This template is used to report bugs!
title: ''
labels:
- bug
body:
- type: markdown
attributes:
value: |
> **Note**: This bug report is only for content provided in this repository!
>
> - Make sure you're able to reproduce the error in the lastest version of this package.
> - Search of already existing issues.
> - Refer to the known issues and FAQ section.
- type: textarea
id: reproduce
attributes:
label: 💣 Steps to reproduce
description: Describe ho to reproduce the error.
value: |
```bash
```
validations:
required: true
- type: textarea
id: expected
attributes:
label: 🚀 Expected behavior
description: Describe what should happen.
value: |
```bash
```
validations:
required: true
- type: textarea
id: actual
attributes:
label: 💥 Actual behavior
description: Describe what actually happens.
value: |
```bash
```
validations:
required: true
- type: textarea
id: env
attributes:
label: 📓 Environment data
description: You can add additional environment data here.
placeholder: |
```bash
```
- type: textarea
id: img
attributes:
label: 🖼️ Screenshots
description: Paste your screenshots here.
placeholder: Copy-Paste or Drag-and-Drop your images...
- type: textarea
id: refs
attributes:
label: 🔖 Refs
description: A place for additional references to other issues and PRs.
placeholder: |
- reopens #999

View File

@ -0,0 +1,16 @@
---
name: 'Enhancement'
about: 'Wite about new features.'
title: ':flying_saucer: '
labels:
- issue/enhancement
---
<!-- This issue template is used to describe whished features. -->
#### :satellite: Suggestion
#### :artificial_satellite: Implementation ideas
#### :framed_picture: Mock-up Images
#### :bookmark: Refs.

View File

@ -1,46 +0,0 @@
name: 🛸 Feature Request
about: Wite about new features.
title: ''
labels:
- feature
- enhancement
body:
- type: markdown
attributes:
value: |
> **Note**: This bug report is only for content provided in this repository!
>
> This issue template is used to describe new features or enhancements.
- type: textarea
id: idea
attributes:
label: 📡 Suggestion
description: Describe ho to reproduce the error.
value: |
```bash
```
validations:
required: true
- type: textarea
id: impl
attributes:
label: 🛰️ Implementation ideas
description: Describe your initial implementation ideas.
validations:
required: true
- type: textarea
id: mockup
attributes:
label: 🖼️ Mock-up
description: Alternatively add your mockups here.
placeholder: Copy-Paste or Drag-and-Drop your images...
validations:
required: true
- type: textarea
id: refs
attributes:
label: 🔖 Refs
description: A place for additional references to other issues and PRs.
placeholder: |
- reopens #999

View File

@ -1,18 +0,0 @@
name: ❓ Question
about: Use this template if nothing seems to work.
title: ''
labels:
- question
body:
- type: markdown
attributes:
value: |
> **Note**: Thanks for taking the time to fill out this bug report!
- type: textarea
id: content
attributes:
label: ❔ What happened
description: Simply ask your question here.
placeholder: Tell us what you want to know...
validations:
required: true

View File

@ -0,0 +1,21 @@
#### :book: Summary
<!-- Provide a summary of your changes. Describe the why and not how. -->
#### :bookmark_tabs: Test Plan
> :bulb: Select your test plan for the code changes.
| Choice | Test Method |
| :----: | :----------- |
| ✅ | CI pipeline tests |
| | Custom test |
| | No test plan |
##### Details / Justification
<!-- Add your test details or justification for missing tests here. -->
#### :books: Additional Notes
<!-- A place for additional detail notes. -->

View File

@ -1,41 +0,0 @@
name: Pull Request
about: General pull request
title: ""
body:
- type: markdown
attributes:
value: |
> **Note**: Thanks for contributing to this project with your pull request!
- type: textarea
id: summary
attributes:
label: 📖 Summary
description: Provide a summary of your changes. Also describe the why...
placeholder: Tell us about your code changes.
validations:
required: true
- type: dropdown
id: testplan
attributes:
label: 📑 Test Plan
description: How did you test your code changes?
options:
- ✅ CI pipeline tests (Default)
- 🤔 Custom test
- 💣 No test Plan
validations:
required: true
- type: textarea
id: details
attributes:
label: 💬 Details
description: Add your custom test details or justification for missing tests here.
placeholder: First, solve the problem. Then, write the code.
- type: textarea
id: notes
attributes:
label: 📚 Additional Notes
description: A place for additional notes or linking references.
placeholder: Software and cathedrals are much the same - First we build them, then we pray.

49
.woodpecker/.deploy.yml Normal file
View File

@ -0,0 +1,49 @@
depends_on:
- test
pipeline:
buildImage:
image: woodpeckerci/plugin-docker-buildx
settings:
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
dockerfile: Dockerfile
auto_tag: true
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: push
branch: master
buildTag:
image: woodpeckerci/plugin-docker-buildx
settings:
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
dockerfile: Dockerfile
auto_tag: true
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: tag
GiteaRelease:
image: plugins/gitea-release
settings:
api_key:
from_secret: RENOVATE_TOKEN
base_url: https://gitea.ocram85.com
title: ${CI_COMMIT_TAG}
note: "> :bulb: **Note:** See [CHANGELOG.md](src/branch/master/CHANGELOG.md) for recent changes."
when:
event: tag

32
.woodpecker/.next.yml Normal file
View File

@ -0,0 +1,32 @@
depends_on:
- test
pipeline:
buildTestImage:
image: woodpeckerci/plugin-docker-buildx
settings:
#dry_run: true
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
platforms: linux/amd64
dockerfile: Dockerfile
tags: next
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: pull_request
triggerPortainer:
image: ocram85/portainer-serviceupdate
settings:
VERBOSE: true
URI: "https://portainer.ocram85.com"
TOKEN:
from_secret: NEXT_TOKEN
when:
event: pull_request

12
.woodpecker/.test.yml Normal file
View File

@ -0,0 +1,12 @@
pipeline:
testDockerfile:
image: woodpeckerci/plugin-docker-buildx
settings:
dry_run: true
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
dockerfile: Dockerfile
tags: next
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}

View File

@ -1,105 +0,0 @@
when:
- event: [pull_request, tag, cron]
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
variables:
- &build_plugin 'woodpeckerci/plugin-docker-buildx:2.2.1'
# deployment targets
- &publish_repos 'ocram85/arkanum,gitea.ocram85.com/codeserver/arkanum,ghcr.io/ocram85/arkanum,codeberg.org/codeserver/arkanum'
# logins for deployment targets
- publish_logins: &publish_logins
# Default DockerHub login
- registry: https://index.docker.io/v1/
username:
from_secret: docker_user
password:
from_secret: docker_passwd
# Additional Quay.IO login
- registry: https://gitea.ocram85.com
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
# GitHub Container Registry
- registry: https://ghcr.io
username:
from_secret: github_user
password:
from_secret: github_passwd
# Codeberg
- registry: https://codeberg.org
username:
from_secret: codeberg_user
password:
from_secret: codeberg_passwd
steps:
test:
image: *build_plugin
settings:
dry_run: true
registry: gitea.ocram85.com
repo: test
dockerfile: Dockerfile
platforms: linux/amd64
auto_tag: true
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: pull_request
branch: ${CI_REPO_DEFAULT_BRANCH}
publish:
image: *build_plugin
settings:
repo: *publish_repos
dockerfile: Dockerfile
platforms: linux/amd64
auto_tag: true
logins: *publish_logins
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: [push, tag, cron]
branch: ${CI_REPO_DEFAULT_BRANCH}
build-next:
image: *build_plugin
settings:
repo: *publish_repos
dockerfile: Dockerfile
platforms: linux/amd64
tag: next
logins: *publish_logins
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: [pull_request]
triggerPortainer:
image: ocram85/portainer-serviceupdate
settings:
VERBOSE: true
URI: "https://portainer.ocram85.com"
TOKEN:
from_secret: NEXT_TOKEN
when:
event: [pull_request]
gitea-release:
image: plugins/gitea-release
settings:
api_key:
from_secret: RENOVATE_TOKEN
base_url: https://gitea.ocram85.com
title: ${CI_COMMIT_TAG}
note: "> :bulb: **Note:** See [CHANGELOG.md](src/branch/master/CHANGELOG.md) for recent changes."
when:
event: [tag]
branch: ${CI_REPO_DEFAULT_BRANCH}

View File

@ -1,89 +1,3 @@
## [v1.0.2](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.0.2) - 2023-12-18
* ✨ FEATURES
* Add bun installer (#81)
* 🛠️ ENHANCEMENTS
* Bump golang version (#80)
* Bump default extensions version (#76)
* 📦 BUILD
* Upd/woodpeckerPluging (#79)
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.19.1 (#77)
* 📚 DOCS
* Fix typo in arkanum cli help (#78)
* ⚙️ META
* Updatest gitea meta files (#75)
## [v1.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.0.1) - 2023-11-12
* 🐛 BUGFIXES
* Fix pwsh install package (#72)
* 📦 BUILD
* Avoid duplicate ci runs (#73)
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.18.0 (#70)
## [v1.0.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.0.0) - 2023-09-15
* 🐛 BUGFIXES
* Fix git config arguments (#68)
* Fix NodeJs install bug (#67)
* Fix pwsh install when called as first command (#60)
* Fix missing volta command (#58)
* 🛠️ ENHANCEMENTS
* Extends arkanum command and option structure (#62)
* 📦 BUILD
* Add addiontal container image deployment targets (#63)
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.16.1 (#59)
* Update quay.io/linuxserver.io/code-server Docker tag to v4.15.0 (#57)
## [v0.4.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.4.0) - 2023-07-19
* 🐛 BUGFIXES
* Fix shellcheck issues (#55)
* Disable starship python module (#52)
* ✨ FEATURES
* Add docker-cli (#54)
* Adds Volta as default version manager for NodeJs (#53)
* 🛠️ ENHANCEMENTS
* Bump go version (#49)
## [v0.3.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.1) - 2023-07-04
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.14.1 (#47)
## [v0.3.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.0) - 2023-03-30
* 🛠️ ENHANCEMENTS
* Add tea cli in gitea block (#41)
* 📦 BUILD
* Remove repo defined renovate (#44)
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.11.0 (#45)
* Update quay.io/linuxserver.io/code-server Docker tag to v4.10.0 (#43)
## [v0.2.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.2.0) - 2023-01-04
* 🐛 BUGFIXES
* fix typo (#39)
* 🛠️ ENHANCEMENTS
* Add proxy support (#38)
* 🤖 DEPENDENCIES
* Update renovate/renovate Docker tag to v34.82 (#37)
* Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
* 📦 BUILD
* fix woodpecker fileMatch regex (#30)
* 🤖 DEPENDENCIES
* Update renovate/renovate Docker tag to v34.77 (#35)
* fix renovate config keys (#34)
* Update renovate/renovate Docker tag to v34.62 (#33)
* Update renovate/renovate Docker tag to v34.57 (#32)
## [v0.1.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.0) - 2022-11-25 ## [v0.1.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.0) - 2022-11-25
* 📦 BUILD * 📦 BUILD
@ -91,7 +5,6 @@
* 📚 DOCS * 📚 DOCS
* adds Readme content to prepare Github mirror (#26) * adds Readme content to prepare Github mirror (#26)
## [v0.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.0.1) - 2022-11-22 ## [v0.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.0.1) - 2022-11-22
* 🐛 BUGFIXES * 🐛 BUGFIXES
@ -122,3 +35,48 @@
* Add woodpecker manager in renovate-bot (#14) * Add woodpecker manager in renovate-bot (#14)
* fixes logo file path (#8) * fixes logo file path (#8)
* Adds basic container setup with pipeline (#1) * Adds basic container setup with pipeline (#1)
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
* 📦 BUILD
* fix woodpecker fileMatch regex (#30)
* 🤖 DEPENDENCIES
* Update renovate/renovate Docker tag to v34.77 (#35)
* fix renovate config keys (#34)
* Update renovate/renovate Docker tag to v34.62 (#33)
* Update renovate/renovate Docker tag to v34.57 (#32)
## [v0.2.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.2.0) - 2023-01-04
* 🐛 BUGFIXES
* fix typo (#39)
* 🛠️ ENHANCEMENTS
* Add proxy support (#38)
* 🤖 DEPENDENCIES
* Update renovate/renovate Docker tag to v34.82 (#37)
* Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
## [v0.3.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.0) - 2023-03-30
* 🛠️ ENHANCEMENTS
* Add tea cli in gitea block (#41)
* 📦 BUILD
* Remove repo defined renovate (#44)
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.11.0 (#45)
* Update quay.io/linuxserver.io/code-server Docker tag to v4.10.0 (#43)
## [v0.3.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.1) - 2023-07-04
* 🤖 DEPENDENCIES
* Update quay.io/linuxserver.io/code-server Docker tag to v4.14.1 (#47)
## [v0.4.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.4.0) - 2023-07-19
* 🐛 BUGFIXES
* Disable starship python module (#52)
* ✨ FEATURES
* Add docker-cli (#54)
* Adds Volta as default version manager for NodeJs (#53)
* 🛠️ ENHANCEMENTS
* Bump go version (#49)

View File

@ -1,4 +1,4 @@
FROM quay.io/linuxserver.io/code-server:4.19.1 FROM quay.io/linuxserver.io/code-server:4.14.1
#LABEL build_version="" #LABEL build_version=""
LABEL maintainer="OCram85" LABEL maintainer="OCram85"
@ -40,7 +40,7 @@ RUN \
chmod +x /etc/bash_completion.d/arkanum-completion && \ chmod +x /etc/bash_completion.d/arkanum-completion && \
echo 'source /etc/bash_completion.d/arkanum-completion' >> /etc/bash.bashrc && \ echo 'source /etc/bash_completion.d/arkanum-completion' >> /etc/bash.bashrc && \
touch "$HOME/enable_motd" && \ touch "$HOME/enable_motd" && \
echo "if [[ ! -e \"$HOME/data/User/settings.json\" ]]; then arkanum config install-extensions && arkanum config reset-codesettings && \ echo "if [[ ! -e \"$HOME/data/User/settings.json\" ]]; then arkanum --install-extensions && arkanum --reset-codesetting && \
echo -e \"🧙 \\e[32markanum\\e[0m: Please reload Arkanum to finalize the setup...\" && read foo; fi" >> /etc/bash.bashrc && \ echo -e \"🧙 \\e[32markanum\\e[0m: Please reload Arkanum to finalize the setup...\" && read foo; fi" >> /etc/bash.bashrc && \
echo "if [[ -e \"$HOME/enable_motd\" ]]; then echo -e \"Use 🧙 \\e[32m'arkanum'\\e[0m to install missing runtimes like dotnet or NodeJs.\"; fi" >> /etc/bash.bashrc echo "if [[ -e \"$HOME/enable_motd\" ]]; then echo -e \"Use 🧙 \\e[32m'arkanum'\\e[0m to install missing runtimes like dotnet or NodeJs.\"; fi" >> /etc/bash.bashrc

View File

@ -1,7 +1,12 @@
<p align="right">
<img src="http://forthebadge.com/images/badges/built-with-love.svg">
<img src="http://forthebadge.com/images/badges/for-you.svg">
</p>
<p align="center"> <p align="center">
<a href="https://gitea.ocram85.com/CodeServer/arkanum/"> <a href="https://gitea.ocram85.com/CodeServer/arkanum/">
<img <img
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/social-logo.png" src="assets/social-logo.png"
alt="Container" alt="Container"
> >
</a> </a>
@ -29,19 +34,10 @@ You can download the image from the gitea embedded container registry: `gitea.oc
- `latest` - Is based on the lasted master branch commit. - `latest` - Is based on the lasted master branch commit.
- `next` - Is a test build based on the pull request - `next` - Is a test build based on the pull request
- `1`, `0.1`, `0.1.0`, `1.0.0` - tag based version. - `1`, `0.1`, `0.1.0` - tag based version.
> **💡 NOTE: See the [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for latest version and all other available tags.** > **💡 NOTE: See the [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for latest version and all other available tags.**
The container images are also published to these registries:
- [Docker Hub](https://hub.docker.com/r/ocram85/arkanum)
- Pull Endpoint: `ocram85/arkanum`
- [GitHub Container Registry](https://github.com/OCram85/arkanum/pkgs/container/arkanum)
- Pull Endpoint: `ghcr.io/ocram85/arkanum`
- [Codeberg Packages](https://codeberg.org/codeserver/-/packages/container/arkanum/next)
- Pull Endpoint: `codeberg.org/codeserver/arkanum`
### 2.a Run as Docker Swarm Stack ### 2.a Run as Docker Swarm Stack
This example shows how to run arkanum as an additional swarm stack. This example shows how to run arkanum as an additional swarm stack.
@ -59,7 +55,7 @@ Therefore you need
version: "3.8" version: "3.8"
services: services:
arkanum: arkanum:
image: gitea.ocram85.com/codeserver/arkanum:1.0.0 image: gitea.ocram85.com/codeserver/arkanum:0.2.0
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
@ -81,11 +77,10 @@ services:
volumes: volumes:
# store workspace and use config in volume. # store workspace and use config in volume.
- codedata:/config - codedata:/config
# mount docker socket to manage host docker
- /var/run/docker.sock:/var/run/docker.sock
# no need to expose the port. traefik acts as reverse proxy and handles the https access. # no need to expose the port. traefik acts as reverse proxy and handles the https access.
#ports: #ports:
# - 8443:8443 # - 8443:8443
restart: unless-stopped
networks: networks:
- arkanum-sphere - arkanum-sphere
- traefik-public - traefik-public
@ -111,7 +106,7 @@ See their [docs](https://github.com/linuxserver/docker-code-server#parameters) a
version: "3.8" version: "3.8"
services: services:
arkanum: arkanum:
image: gitea.ocram85.com/codeserver/arkanum:1.0.0 image: gitea.ocram85.com/codeserver/arkanum:0.2.0
container_name: code-server container_name: code-server
environment: environment:
- PUID=1000 - PUID=1000
@ -135,7 +130,8 @@ services:
After summon Arkanum your first steps should be to set your username and email in the git config: After summon Arkanum your first steps should be to set your username and email in the git config:
```bash ```bash
arkanum git setup "my-name" "my-email" git config --global user.name "username"
git config --global user.email "email address"
``` ```
And that's it. Now you're ready use arkanum as your daily remote code editor. 😄 And that's it. Now you're ready use arkanum as your daily remote code editor. 😄
@ -145,7 +141,7 @@ And that's it. Now you're ready use arkanum as your daily remote code editor.
<p align="center"> <p align="center">
<a href="https://gitea.ocram85.com/CodeServer/arkanum/"> <a href="https://gitea.ocram85.com/CodeServer/arkanum/">
<img <img
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/screen1.png" src="assets/screen1.png"
alt="Screenshot1" alt="Screenshot1"
> >
</a> </a>
@ -173,40 +169,26 @@ Added `arkanum` to help installing common runtimes in container.
This helps reducing the image size. This helps reducing the image size.
``` ```
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a 🧙 arkanum ✨🌌☄️💥 is used to install optional runtimes for developing in a
code-server container environment. code-server container environment.
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT Syntax: arkanum RUNTIME ...
COMMAND RUNTIME [docker-cli|dotnet|gitea|golang|nodejs|volta|powershell]
config The config command is used to modify arkanum itself. docker-cli Installs the latest docker-ce cli.
git The git command is a wrapper for git helpers. dotnet Installs latest LTS dotnet core sdk + runtime.
install The install command is used to add different tools gitea Installs gitea tools like the changelog generator.
help Shows this help text. golang Installs golang 1.19.3.
nodejs Installs latest NodeJs LTS version using Volta.
volta Installs Volta as NodeJs version manager.
powershell Installs latest PowerShell LTS version.
--disable-motd Disables hint in new bash terminal.
--install-extensions Installs predefined recommended extensions.
--reset-codesetting Sets VS Code user setting with basic (Fira Code).
-h Prints this help message.
OPTION Example 1: arkanum dotnet
config: Example 2: arkanum golang nodejs
disable-motd Disables hint in new bash terminal. Example 3: arkanum --disable-motd
install extensions Installs predefined recommended extensions.
reset-codesettings Sets VS Code user setting with basic (Fira Code).
git:
setup Takes two arguments to setup the git client:
1) Username
2) Email address
install:
docker-cli Installs the latest docker-cli.
dotnet Installs latest LTS dotnet core sdk + runtime.
gitea Installs gitea tools like the changelog generator.
golang Installs golang 1.19.3.
bun Installs latest bun version.
nodejs Installs latest NodeJs LTS version using Volta.
volta Installs Volta as NodeJS version manager.
powershell Installs latest PowerShell LTS version.
Example 1: arkanum git setup "my-name" "my-email"
Example 2: arkanum install golang
Example 3: arkanum config disable-motd
``` ```
### 📝 Fira Code (NerdFont patched) ### 📝 Fira Code (NerdFont patched)
@ -250,9 +232,9 @@ following command:
```bash ```bash
# restart the installation # restart the installation
arkanum config install-extensions arkanum --install-extensions
# Optional: reset the vscode user setting # Optional: reset the vscode user setting
arkanum config reset-codesettings arkanum --reset-codesetting
# Reload with command F1 + Developer: Reload Window # Reload with command F1 + Developer: Reload Window
``` ```
## 😡 We're Using GitHub Under Protest ## 😡 We're Using GitHub Under Protest

208
arkanum
View File

@ -4,40 +4,26 @@ set -e
function showHelp() { function showHelp() {
cat << HELP cat << HELP
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a 🧙 arkanum ✨🌌☄️💥 is used to install optional runtimes for developing in a
code-server container environment. code-server container environment.
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT Syntax: arkanum RUNTIME ...
COMMAND RUNTIME [docker-cli|dotnet|gitea|golang|nodejs|volta|powershell]
config The config command is used to modify arkanum itself. docker-cli Installs the latest docker-cli.
git The git command is a wrapper for git helpers. dotnet Installs latest LTS dotnet core sdk + runtime.
install The install command is used to add different tools gitea Installs gitea tools like the changelog generator.
help Shows this help text. golang Installs golang 1.19.3.
nodejs Installs latest NodeJs LTS version using Volta.
volta Installs Volta as NodeJS version manager.
powershell Installs latest PowerShell LTS version.
--disable-motd Disables hint in new bash terminal.
--install-extensions Installs predefined recommended extensions.
--reset-codesetting Sets VS Code user setting with basic (Fira Code).
-h Prints this help message.
OPTION Example 1: arkanum dotnet
config: Example 2: arkanum golang nodejs
disable-motd Disables hint in new bash terminal. Example 3: arkanum --disable-motd
install-extensions Installs predefined recommended extensions.
reset-codesettings Sets VS Code user setting with basic (Fira Code).
git:
setup Takes two arguments to setup the git client:
1) Username
2) Email address
install:
docker-cli Installs the latest docker-cli.
dotnet Installs latest LTS dotnet core sdk + runtime.
gitea Installs gitea tools like changelog and tea.
golang Installs golang 1.21.5.
bun Installs latest bun version.
nodejs Installs latest NodeJs LTS version using Volta.
volta Installs Volta as NodeJS version manager.
powershell Installs latest PowerShell LTS version.
Example 1: arkanum git setup "my-name" "my-email"
Example 2: arkanum install golang
Example 3: arkanum config disable-motd
HELP HELP
} }
@ -45,8 +31,6 @@ function disableMotd() {
if [[ -e "$HOME/enable_motd" ]]; then if [[ -e "$HOME/enable_motd" ]]; then
say "Disabling 'arkanum' motd..." "disableMotd" say "Disabling 'arkanum' motd..." "disableMotd"
rm -f "$HOME/enable_motd" rm -f "$HOME/enable_motd"
else
sayW "Arkanum Motd already disabled" "disableMotd"
fi fi
} }
@ -83,7 +67,6 @@ function instDockerCLI() {
sudo -E install -m 0755 -d /etc/apt/keyrings sudo -E install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo -E gpg --dearmor -o /etc/apt/keyrings/docker.gpg curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo -E gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo -E chmod a+r /etc/apt/keyrings/docker.gpg sudo -E chmod a+r /etc/apt/keyrings/docker.gpg
# shellcheck disable=SC2046,SC2027
echo \ echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
@ -107,7 +90,6 @@ function instDotNet() {
say "Installing latest .NET Core LTS release..." "dotnet" say "Installing latest .NET Core LTS release..." "dotnet"
/tmp/dotnet-install.sh --channel LTS /tmp/dotnet-install.sh --channel LTS
# shellcheck disable=SC2016
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
say "Cleaning up..." "dotnet" say "Cleaning up..." "dotnet"
@ -121,7 +103,7 @@ function instDotNet() {
function instGoLang() { function instGoLang() {
if [[ -z "$1" ]]; then if [[ -z "$1" ]]; then
GOVERSION="1.21.5" GOVERSION="1.20.6"
else else
GOVERSION="$1" GOVERSION="$1"
fi fi
@ -131,7 +113,6 @@ function instGoLang() {
say "Installing golang ($GOVERSION)...." "GoLang" say "Installing golang ($GOVERSION)...." "GoLang"
sudo rm -rf /usr/local/go sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
# shellcheck disable=SC2016
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/bash.bashrc > /dev/null echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/bash.bashrc > /dev/null
say "Cleaning up..." "GoLang" say "Cleaning up..." "GoLang"
rm -f /tmp/golang.tar.gz rm -f /tmp/golang.tar.gz
@ -139,22 +120,24 @@ function instGoLang() {
say "Please reload bash profile to finalize." "GoLang" say "Please reload bash profile to finalize." "GoLang"
} }
function instBun() { function instNodeJs() {
say "Installing Bun requirements..." "Bun" say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
sudo -E apt-get update > /dev/null curl -#fSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
say "Updating package lists and installing NodeJS LTS..." "NodeJs"
sudo -E apt-get install --no-install-recommends -y \ sudo -E apt-get install --no-install-recommends -y \
unzip nodejs
say "Cleaning up..." "NodeJs"
sudo -E apt-get clean sudo -E apt-get clean
say "Installing Bun binaries..." "Bun" sudo rm -rf \
curl -#fSL https://bun.sh/install | bash /tmp/* \
say "Adding bun binary to profile..." "Bun" /var/lib/apt/lists/* \
echo 'export BUN_INSTALL=$HOME/.bun' | sudo tee -a /etc/bash.bashrc > /dev/null /var/tmp/*
echo 'export PATH=$BUN_INSTALL/bin:$PATH' | sudo tee -a /etc/bash.bashrc > /dev/null
say "done." "Bun" say "done." "NodeJs"
say "Please reload bash profile to finalize." "Bun"
} }
function instNodeJs() { function instNodeJS2() {
say "Installing NodeJS LTS via Volta..." "NodeJS" say "Installing NodeJS LTS via Volta..." "NodeJS"
volta install node@lts volta install node@lts
say "done." "NodeJS" say "done." "NodeJS"
@ -163,14 +146,11 @@ function instNodeJs() {
function instVolta() { function instVolta() {
say "Installing Volta as NodeJS version manager..." "Volta" say "Installing Volta as NodeJS version manager..." "Volta"
curl -#fSl https://get.volta.sh | bash curl -#fSl https://get.volta.sh | bash
# shellcheck disable=SC1090
source ~/.profile
say "done." "Volta" say "done." "Volta"
} }
function instPwsh() { function instPwsh() {
say "Installing PowerShell requirements..." "PowerShell" say "Installing PowerShell requirements..." "PowerShell"
sudo -E apt-get update > /dev/null
sudo -E apt-get install --no-install-recommends -y \ sudo -E apt-get install --no-install-recommends -y \
apt-transport-https \ apt-transport-https \
software-properties-common software-properties-common
@ -185,7 +165,7 @@ function instPwsh() {
say "Installing PowerShell..." "PowerShell" say "Installing PowerShell..." "PowerShell"
# Install PowerShell # Install PowerShell
sudo -E apt-get install --no-install-recommends -y powershell-lts sudo -E apt-get install --no-install-recommends -y powershell
say "done." "PowerShell" say "done." "PowerShell"
} }
@ -212,31 +192,30 @@ function instCodeExtension() {
say "Downloading required extensions...." "Extension" say "Downloading required extensions...." "Extension"
# Gitlens # Gitlens
say "Downloading 'gitlens'..." "Extension" say "Downloading 'gitlens'..." "Extension"
curl -#fSL https://open-vsx.org/api/eamodio/gitlens/14.4.1/file/eamodio.gitlens-14.4.1.vsix -o /tmp/eamodio.gitlens.vsix curl -#fSL https://open-vsx.org/api/eamodio/gitlens/13.1.1/file/eamodio.gitlens-13.1.1.vsix -o /tmp/eamodio.gitlens-13.1.1.vsix
say "Installing 'gitlens'..." "Extension" say "Installing 'gitlens'..." "Extension"
install-extension /tmp/eamodio.gitlens.vsix install-extension /tmp/eamodio.gitlens-13.1.1.vsix
say "Cleaning up 'gitlens' install files" "Extension" say "Cleaning up 'gitlens' install files" "Extension"
rm -f /tmp/eamodio.gitlens.vsix rm -f /tmp/eamodio.gitlens-13.1.1.vsix
# OneDarkPro # OneDarkPro
say "Downloading 'One Dark Pro' theme..." "Extension" say "Downloading 'One Dark Pro' theme..." "Extension"
curl -#fSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.16.2/file/zhuangtongfa.material-theme-3.16.2.vsix -o /tmp/zhuangtongfa.material-theme.vsix curl -#fSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.15.6/file/zhuangtongfa.material-theme-3.15.6.vsix -o /tmp/zhuangtongfa.material-theme-3.15.6.vsix
say "Installing 'One Dark Pro' theme..." "Extension" say "Installing 'One Dark Pro' theme..." "Extension"
install-extension /tmp/zhuangtongfa.material-theme.vsix install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
say "Cleaning up 'One Dark Pro' install files" "Extension" say "Cleaning up 'One Dark Pro' install files" "Extension"
rm -f /tmp/zhuangtongfa.material-theme.vsix rm -f /tmp/zhuangtongfa.material-theme-3.15.6.vsix
# vscode-icons # vscode-icons
say "Downloading 'vscode-icons' theme..." "Extension" say "Downloading 'vscode-icons' theme..." "Extension"
curl -#fSL https://open-vsx.org/api/vscode-icons-team/vscode-icons/12.6.0/file/vscode-icons-team.vscode-icons-12.6.0.vsix -o /tmp/vscode-icons-team.vscode-icons.vsix curl -#fSL https://open-vsx.org/api/vscode-icons-team/vscode-icons/12.0.1/file/vscode-icons-team.vscode-icons-12.0.1.vsix -o /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
say "Installing 'vscode-icons' theme..." "Extension" say "Installing 'vscode-icons' theme..." "Extension"
install-extension /tmp/vscode-icons-team.vscode-icons.vsix install-extension /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
say "Cleaning up 'vscode-icons' install files" "Extension" say "Cleaning up 'vscode-icons' install files" "Extension"
rm -f /tmp/vscode-icons-team.vscode-icons.vsix rm -f /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
say "done." "Extension" say "done." "Extension"
} }
function setCodeSettings() { function setCodeSettings() {
CODEFILE="$HOME/data/User/settings.json" CODEFILE="$HOME/data/User/settings.json"
@ -259,92 +238,51 @@ EOF
say "done." "VSCode" say "done." "VSCode"
} }
function setGitConfig() {
#echo "function arg counter is; $#"
#echo "function args:$@"
if [[ "$#" != "4" ]]; then
sayE "Invalid arguments given. Please provide '<user>' and '<email>'!" "Git"
exit 1
fi
if [[ -z "$3" ]]; then
sayE "Invalid or empty username given!" "Git"
exit 1
fi
if [[ -z "$4" ]]; then
sayE "Invalid or empty email given!" "Git"
exit 1
fi
say "Setting global git config..." "Git"
git config --global user.name "$3"
git config --global user.email "$4"
say "Returning global config:" "Git"
git config --list --global
}
function main() { function main() {
if [[ "$#" == "0" ]]; then if [[ "$#" == "0" ]]; then
showHelp showHelp
exit 0 exit 0
fi fi
# Command filter for i in $@; do
if [[ "$1" =~ ^help|-h|--h$ ]]; then if [[ "$1" == "-h" ]]; then
showHelp showHelp
exit 0 exit 0
fi elif [[ "$i" == "docker-cli" ]]; then
instDockerCLI
# CONFIG command elif [[ "$i" == "dotnet" ]]; then
if [[ "$1" == "config" ]]; then instDotNet
# disable-motd option elif [[ "$i" == "golang" ]]; then
if [[ "$2" == "disable-motd" ]]; then instGoLang
elif [[ "$i" == "nodejs" ]]; then
if [[ "$2" == "--legacy" ]]; then
sayW "Installing NodeJS with legacy function" "Arkanum"
instNodeJs
else
instVolta
instNodeJS2
fi
elif [[ "$i" == "volta" ]]; then
instVolta
elif [[ "$i" == "powershell" ]]; then
instPwsh
elif [[ "$i" == "gitea" ]]; then
instGiteaTools
elif [[ "$i" == "--disable-motd" ]]; then
disableMotd disableMotd
exit 0 exit 0
# install-extensions option elif [[ "$i" == "--install-extensions" ]]; then
elif [[ "$2" == "install-extensions" ]]; then
instCodeExtension instCodeExtension
exit 0 exit 0
# reset-codesetting option elif [[ "$i" == "--reset-codesetting" ]]; then
elif [[ "$2" == "reset-codesettings" ]]; then
setCodeSettings setCodeSettings
exit 0 exit 0
else else
sayE "Unknown option ($2) given for command 'config'!" sayE "Unknown parameter value given!($i)."
fi
# GIT command
elif [[ "$1" == "git" ]]; then
# setup option
if [[ "$2" == "setup" ]]; then
setGitConfig "$@"
else
sayE "Unknown option ($2) given for command 'git'!"
fi
# INSTALL command
elif [[ "$1" == "install" ]]; then
# docker-cli option
if [[ "$2" == "docker-cli" ]]; then
instDockerCLI
elif [[ "$2" == "dotnet" ]]; then
instDotNet
elif [[ "$2" == "golang" ]]; then
instGoLang "$3"
elif [[ "$2" == "bun" ]]; then
instBun
elif [[ "$2" == "nodejs" ]]; then
instVolta
instNodeJs
elif [[ "$2" == "volta" ]]; then
instVolta
elif [[ "$2" == "powershell" ]]; then
instPwsh
elif [[ "$2" == "gitea" ]]; then
instGiteaTools
fi
else
sayE "Unknown parameter value given!($1)."
showHelp showHelp
exit 1 exit 1
fi fi
done
} }
main "$@" main $@

View File

@ -1,39 +1,3 @@
#!/bin/env bash #!/bin/bash
#complete -W "--disable-motd --install-extensions --reset-codesetting docker-cli dotnet gitea golang nodejs volta powershell -h" arkanum complete -W "--disable-motd --install-extensions --reset-codesetting docker-cli dotnet gitea golang nodejs volta powershell -h" arkanum
function _command_completions() {
local cur prev
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
case ${COMP_CWORD} in
1)
# shellcheck disable=2207,SC2086
COMPREPLY=($(compgen -W "config git install help" -- ${cur}))
;;
2)
case ${prev} in
config)
# shellcheck disable=2207,SC2086
COMPREPLY=($(compgen -W "disable-motd install-extensions reset-codesettings" -- ${cur}))
;;
git)
# shellcheck disable=2207,SC2086
COMPREPLY=($(compgen -W "setup" -- ${cur}))
;;
install)
# shellcheck disable=2207,SC2086
COMPREPLY=($(compgen -W "docker-cli dotnet golang bun nodejs volta powershell gitea" -- ${cur}))
;;
help)
;;
esac
;;
*)
COMPREPLY=()
;;
esac
}
complete -F _command_completions arkanum