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
* 📦 BUILD
@ -91,7 +5,6 @@
* 📚 DOCS
* 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
* 🐛 BUGFIXES
@ -122,3 +35,48 @@
* Add woodpecker manager in renovate-bot (#14)
* fixes logo file path (#8)
* 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 maintainer="OCram85"
@ -40,7 +40,7 @@ RUN \
chmod +x /etc/bash_completion.d/arkanum-completion && \
echo 'source /etc/bash_completion.d/arkanum-completion' >> /etc/bash.bashrc && \
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 "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">
<a href="https://gitea.ocram85.com/CodeServer/arkanum/">
<img
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/social-logo.png"
src="assets/social-logo.png"
alt="Container"
>
</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.
- `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.**
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
This example shows how to run arkanum as an additional swarm stack.
@ -59,7 +55,7 @@ Therefore you need
version: "3.8"
services:
arkanum:
image: gitea.ocram85.com/codeserver/arkanum:1.0.0
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
environment:
- PUID=1000
- PGID=1000
@ -81,11 +77,10 @@ services:
volumes:
# store workspace and use config in volume.
- 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.
#ports:
# - 8443:8443
restart: unless-stopped
networks:
- arkanum-sphere
- traefik-public
@ -111,7 +106,7 @@ See their [docs](https://github.com/linuxserver/docker-code-server#parameters) a
version: "3.8"
services:
arkanum:
image: gitea.ocram85.com/codeserver/arkanum:1.0.0
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
container_name: code-server
environment:
- 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:
```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. 😄
@ -145,7 +141,7 @@ And that's it. Now you're ready use arkanum as your daily remote code editor.
<p align="center">
<a href="https://gitea.ocram85.com/CodeServer/arkanum/">
<img
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/screen1.png"
src="assets/screen1.png"
alt="Screenshot1"
>
</a>
@ -173,40 +169,26 @@ Added `arkanum` to help installing common runtimes in container.
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.
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
COMMAND
config The config command is used to modify arkanum itself.
git The git command is a wrapper for git helpers.
install The install command is used to add different tools
help Shows this help text.
OPTION
config:
disable-motd Disables hint in new bash terminal.
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.
Syntax: arkanum RUNTIME ...
RUNTIME [docker-cli|dotnet|gitea|golang|nodejs|volta|powershell]
docker-cli Installs the latest docker-ce 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.
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.
Example 1: arkanum git setup "my-name" "my-email"
Example 2: arkanum install golang
Example 3: arkanum config disable-motd
Example 1: arkanum dotnet
Example 2: arkanum golang nodejs
Example 3: arkanum --disable-motd
```
### 📝 Fira Code (NerdFont patched)
@ -250,9 +232,9 @@ following command:
```bash
# restart the installation
arkanum config install-extensions
arkanum --install-extensions
# Optional: reset the vscode user setting
arkanum config reset-codesettings
arkanum --reset-codesetting
# Reload with command F1 + Developer: Reload Window
```
## 😡 We're Using GitHub Under Protest

190
arkanum
View File

@ -4,40 +4,26 @@ set -e
function showHelp() {
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.
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
COMMAND
config The config command is used to modify arkanum itself.
git The git command is a wrapper for git helpers.
install The install command is used to add different tools
help Shows this help text.
OPTION
config:
disable-motd Disables hint in new bash terminal.
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:
Syntax: arkanum RUNTIME ...
RUNTIME [docker-cli|dotnet|gitea|golang|nodejs|volta|powershell]
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.
gitea Installs gitea tools like the changelog generator.
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.
Example 1: arkanum git setup "my-name" "my-email"
Example 2: arkanum install golang
Example 3: arkanum config disable-motd
Example 1: arkanum dotnet
Example 2: arkanum golang nodejs
Example 3: arkanum --disable-motd
HELP
}
@ -45,8 +31,6 @@ function disableMotd() {
if [[ -e "$HOME/enable_motd" ]]; then
say "Disabling 'arkanum' motd..." "disableMotd"
rm -f "$HOME/enable_motd"
else
sayW "Arkanum Motd already disabled" "disableMotd"
fi
}
@ -83,7 +67,6 @@ function instDockerCLI() {
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
sudo -E chmod a+r /etc/apt/keyrings/docker.gpg
# shellcheck disable=SC2046,SC2027
echo \
"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" | \
@ -107,7 +90,6 @@ function instDotNet() {
say "Installing latest .NET Core LTS release..." "dotnet"
/tmp/dotnet-install.sh --channel LTS
# shellcheck disable=SC2016
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
say "Cleaning up..." "dotnet"
@ -121,7 +103,7 @@ function instDotNet() {
function instGoLang() {
if [[ -z "$1" ]]; then
GOVERSION="1.21.5"
GOVERSION="1.20.6"
else
GOVERSION="$1"
fi
@ -131,7 +113,6 @@ function instGoLang() {
say "Installing golang ($GOVERSION)...." "GoLang"
sudo rm -rf /usr/local/go
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
say "Cleaning up..." "GoLang"
rm -f /tmp/golang.tar.gz
@ -139,22 +120,24 @@ function instGoLang() {
say "Please reload bash profile to finalize." "GoLang"
}
function instBun() {
say "Installing Bun requirements..." "Bun"
sudo -E apt-get update > /dev/null
function instNodeJs() {
say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
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 \
unzip
nodejs
say "Cleaning up..." "NodeJs"
sudo -E apt-get clean
say "Installing Bun binaries..." "Bun"
curl -#fSL https://bun.sh/install | bash
say "Adding bun binary to profile..." "Bun"
echo 'export BUN_INSTALL=$HOME/.bun' | sudo tee -a /etc/bash.bashrc > /dev/null
echo 'export PATH=$BUN_INSTALL/bin:$PATH' | sudo tee -a /etc/bash.bashrc > /dev/null
say "done." "Bun"
say "Please reload bash profile to finalize." "Bun"
sudo rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
say "done." "NodeJs"
}
function instNodeJs() {
function instNodeJS2() {
say "Installing NodeJS LTS via Volta..." "NodeJS"
volta install node@lts
say "done." "NodeJS"
@ -163,14 +146,11 @@ function instNodeJs() {
function instVolta() {
say "Installing Volta as NodeJS version manager..." "Volta"
curl -#fSl https://get.volta.sh | bash
# shellcheck disable=SC1090
source ~/.profile
say "done." "Volta"
}
function instPwsh() {
say "Installing PowerShell requirements..." "PowerShell"
sudo -E apt-get update > /dev/null
sudo -E apt-get install --no-install-recommends -y \
apt-transport-https \
software-properties-common
@ -185,7 +165,7 @@ function instPwsh() {
say "Installing PowerShell..." "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"
}
@ -212,31 +192,30 @@ function instCodeExtension() {
say "Downloading required extensions...." "Extension"
# Gitlens
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"
install-extension /tmp/eamodio.gitlens.vsix
install-extension /tmp/eamodio.gitlens-13.1.1.vsix
say "Cleaning up 'gitlens' install files" "Extension"
rm -f /tmp/eamodio.gitlens.vsix
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
# OneDarkPro
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"
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"
rm -f /tmp/zhuangtongfa.material-theme.vsix
rm -f /tmp/zhuangtongfa.material-theme-3.15.6.vsix
# vscode-icons
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"
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"
rm -f /tmp/vscode-icons-team.vscode-icons.vsix
rm -f /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
say "done." "Extension"
}
function setCodeSettings() {
CODEFILE="$HOME/data/User/settings.json"
@ -259,92 +238,51 @@ EOF
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() {
if [[ "$#" == "0" ]]; then
showHelp
exit 0
fi
# Command filter
if [[ "$1" =~ ^help|-h|--h$ ]]; then
for i in $@; do
if [[ "$1" == "-h" ]]; then
showHelp
exit 0
elif [[ "$i" == "docker-cli" ]]; then
instDockerCLI
elif [[ "$i" == "dotnet" ]]; then
instDotNet
elif [[ "$i" == "golang" ]]; then
instGoLang
elif [[ "$i" == "nodejs" ]]; then
if [[ "$2" == "--legacy" ]]; then
sayW "Installing NodeJS with legacy function" "Arkanum"
instNodeJs
else
instVolta
instNodeJS2
fi
# CONFIG command
if [[ "$1" == "config" ]]; then
# disable-motd option
if [[ "$2" == "disable-motd" ]]; then
elif [[ "$i" == "volta" ]]; then
instVolta
elif [[ "$i" == "powershell" ]]; then
instPwsh
elif [[ "$i" == "gitea" ]]; then
instGiteaTools
elif [[ "$i" == "--disable-motd" ]]; then
disableMotd
exit 0
# install-extensions option
elif [[ "$2" == "install-extensions" ]]; then
elif [[ "$i" == "--install-extensions" ]]; then
instCodeExtension
exit 0
# reset-codesetting option
elif [[ "$2" == "reset-codesettings" ]]; then
elif [[ "$i" == "--reset-codesetting" ]]; then
setCodeSettings
exit 0
else
sayE "Unknown option ($2) given for command 'config'!"
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)."
sayE "Unknown parameter value given!($i)."
showHelp
exit 1
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
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
complete -W "--disable-motd --install-extensions --reset-codesetting docker-cli dotnet gitea golang nodejs volta powershell -h" arkanum