generated from Templates/Baseline
Compare commits
54 Commits
Author | SHA1 | Date | |
---|---|---|---|
d388c2f46b | |||
49fdbcd97e | |||
5ef273ab10 | |||
b0553b1c16 | |||
690d0666d9 | |||
ac62d384a2 | |||
d3c9186ccf | |||
e85a222bf1 | |||
02ee121148 | |||
c9b600969e | |||
aef0d17c1d | |||
582d98b943 | |||
24599cb256 | |||
1b4784faa0 | |||
496784ab43 | |||
839024dc84 | |||
03a31b7942 | |||
173ec41f6d | |||
aa23316413 | |||
21c6ef703f | |||
b0fbd8edf6 | |||
a1a4c2b1e9 | |||
e700e7b477 | |||
26754e83f9 | |||
7fe6062a8f | |||
d18eac86bb | |||
1ed6a4a7d5 | |||
78c91dceba | |||
c55408b4b3 | |||
c6e65b7782 | |||
33f8bc90c0 | |||
8c9c9e5138 | |||
5922aabe3d | |||
a25b231654 | |||
330f852e56 | |||
dba751f036 | |||
88612ad71c | |||
6d2e8fb05f | |||
859eb479c5 | |||
e648c50c62 | |||
903478f746 | |||
7a1b293188 | |||
88d228ad07 | |||
40684f5a3b | |||
6931ca6baf | |||
5d7020551c | |||
ce11f07e47 | |||
3b35775797 | |||
c53e04272e | |||
73b9e9e710 | |||
518f9c4946 | |||
83ee3808be | |||
4faf6d8b3e | |||
8239ec48b4 |
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
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.... -->
|
|
16
.gitea/ISSUE_TEMPLATE.yml
Normal file
16
.gitea/ISSUE_TEMPLATE.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
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
|
@ -1,48 +0,0 @@
|
|||||||
---
|
|
||||||
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 -->
|
|
69
.gitea/ISSUE_TEMPLATE/Bug.yml
Normal file
69
.gitea/ISSUE_TEMPLATE/Bug.yml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
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
|
@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
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.
|
|
46
.gitea/ISSUE_TEMPLATE/Feature.yml
Normal file
46
.gitea/ISSUE_TEMPLATE/Feature.yml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
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
|
18
.gitea/ISSUE_TEMPLATE/Question.yml
Normal file
18
.gitea/ISSUE_TEMPLATE/Question.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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
|
@ -1,19 +0,0 @@
|
|||||||
#### :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.
|
|
||||||
|
|
||||||
- [x] 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. -->
|
|
41
.gitea/PULL_REQUEST_TEMPLATE.yml
Normal file
41
.gitea/PULL_REQUEST_TEMPLATE.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
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.
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -12,3 +12,7 @@ data/*.csv
|
|||||||
# Ignore Pester test result files
|
# Ignore Pester test result files
|
||||||
coverage.xml
|
coverage.xml
|
||||||
testResults.xml
|
testResults.xml
|
||||||
|
|
||||||
|
# Ignore NodeJS stuff
|
||||||
|
node_modules
|
||||||
|
docs/.vitepress/cache
|
||||||
|
18
.vscode/dictionaries/project-words.txt
vendored
18
.vscode/dictionaries/project-words.txt
vendored
@ -1,7 +1,25 @@
|
|||||||
Akranum
|
Akranum
|
||||||
|
appdata
|
||||||
arkanum
|
arkanum
|
||||||
|
aurocrlf
|
||||||
|
certresolver
|
||||||
|
codesetting
|
||||||
dotnet
|
dotnet
|
||||||
Fira
|
Fira
|
||||||
|
FOSS
|
||||||
gitea
|
gitea
|
||||||
|
loadbalancer
|
||||||
LTS
|
LTS
|
||||||
|
mydomain
|
||||||
|
myresolver
|
||||||
|
ocram
|
||||||
|
OSS
|
||||||
|
PGID
|
||||||
|
PUID
|
||||||
|
Quickstart
|
||||||
|
runtimes
|
||||||
|
srv
|
||||||
tbd
|
tbd
|
||||||
|
traefik
|
||||||
|
tuanpham
|
||||||
|
volta
|
||||||
|
3
.vscode/extensions.json
vendored
3
.vscode/extensions.json
vendored
@ -5,6 +5,7 @@
|
|||||||
"streetsidesoftware.code-spell-checker",
|
"streetsidesoftware.code-spell-checker",
|
||||||
"streetsidesoftware.code-spell-checker-german",
|
"streetsidesoftware.code-spell-checker-german",
|
||||||
"bierner.emojisense",
|
"bierner.emojisense",
|
||||||
"ryanluker.vscode-coverage-gutters"
|
"ryanluker.vscode-coverage-gutters",
|
||||||
|
"augustocdias.tasks-shell-input"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
37
.vscode/tasks.json
vendored
Normal file
37
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Update GiteaChangelog",
|
||||||
|
"type": "shell",
|
||||||
|
"command": [
|
||||||
|
"mv 'CHANGELOG.md' 'CHANGELOG.back' &&",
|
||||||
|
"changelog -m '${input:Milestone}' --token '${input:GiteaToken}' -c .changelog.yml generate > CHANGELOG.md &&",
|
||||||
|
"echo '' >> CHANGELOG.md &&",
|
||||||
|
"cat CHANGELOG.back >> CHANGELOG.md &&",
|
||||||
|
"rm CHANGELOG.back"
|
||||||
|
],
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"id": "GiteaToken",
|
||||||
|
"type": "command",
|
||||||
|
"command": "shellCommand.execute",
|
||||||
|
"args": {
|
||||||
|
"command": "echo $GITEA_TOKEN",
|
||||||
|
"description": "Your personal Gitea access token"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Milestone",
|
||||||
|
"type": "command",
|
||||||
|
"command": "shellCommand.execute",
|
||||||
|
"args": {
|
||||||
|
"description": "Select or enter a open milestone",
|
||||||
|
"command": "tea milestone ls -f title --output simple"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,36 +0,0 @@
|
|||||||
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="Tag ${CI_COMMIT_TAG} - Branch ${CI_COMMIT_SOURCE_BRANCH} - PR ${CI_COMMIT_PULL_REQUEST}"
|
|
||||||
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="Tag ${CI_COMMIT_TAG} - Branch ${CI_COMMIT_SOURCE_BRANCH} - PR ${CI_COMMIT_PULL_REQUEST}"
|
|
||||||
when:
|
|
||||||
event: tag
|
|
@ -1,31 +0,0 @@
|
|||||||
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="Tag ${CI_COMMIT_TAG} - Branch ${CI_COMMIT_SOURCE_BRANCH} - PR ${CI_COMMIT_PULL_REQUEST}"
|
|
||||||
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
|
|
@ -1,21 +0,0 @@
|
|||||||
pipeline:
|
|
||||||
DockerBaseImage:
|
|
||||||
image: renovate/renovate:34.22-slim
|
|
||||||
commands:
|
|
||||||
- "renovate"
|
|
||||||
secrets:
|
|
||||||
- RENOVATE_TOKEN
|
|
||||||
environment:
|
|
||||||
#LOG_LEVEL: debug
|
|
||||||
RENOVATE_PLATFORM: "gitea"
|
|
||||||
RENOVATE_ENDPOINT: "https://gitea.ocram85.com"
|
|
||||||
RENOVATE_REPOSITORIES: "${CI_REPO}"
|
|
||||||
RENOVATE_LABELS: "pr/renovate"
|
|
||||||
#RENOVATE_DRY_RUN: "full"
|
|
||||||
RENOVATE_TOKEN: "${RENOVATE_TOKEN}"
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
- updDeps
|
|
@ -1,9 +0,0 @@
|
|||||||
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
|
|
105
.woodpecker/ci.yml
Normal file
105
.woodpecker/ci.yml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
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}
|
104
CHANGELOG.md
104
CHANGELOG.md
@ -1,3 +1,107 @@
|
|||||||
|
## [v1.5.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v1.5.0) - 2024-02-09
|
||||||
|
|
||||||
|
* 🛠️ ENHANCEMENTS
|
||||||
|
* Always install latest extension version (#85)
|
||||||
|
* 🤖 DEPENDENCIES
|
||||||
|
* Update quay.io/linuxserver.io/code-server Docker tag to v4.20.1 (#88)
|
||||||
|
* Update quay.io/linuxserver.io/code-server Docker tag to v4.20.0 (#86)
|
||||||
|
* ⚙️ META
|
||||||
|
* Add more gitignore items (#89)
|
||||||
|
|
||||||
|
## [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
|
||||||
|
* sync pipeline build args (#28)
|
||||||
|
* 📚 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
|
## [v0.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.0.1) - 2022-11-22
|
||||||
|
|
||||||
* 🐛 BUGFIXES
|
* 🐛 BUGFIXES
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
FROM quay.io/linuxserver.io/code-server:4.8.3
|
FROM quay.io/linuxserver.io/code-server:4.20.1
|
||||||
|
|
||||||
#LABEL build_version=""
|
#LABEL build_version=""
|
||||||
LABEL maintainer="OCram85"
|
LABEL maintainer="OCram85"
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
LABEL build_version="$VERSION"
|
LABEL build_version="${VERSION}"
|
||||||
LABEL org.opencontainers.image.authors="OCram85"
|
LABEL org.opencontainers.image.authors="OCram85"
|
||||||
LABEL org.opencontainers.image.vendor="OCram85"
|
LABEL org.opencontainers.image.vendor="OCram85"
|
||||||
|
|
||||||
LABEL org.opencontainers.image.title="Arkanum"
|
LABEL org.opencontainers.image.title="Arkanum"
|
||||||
LABEL org.opencontainers.image.description="Code-Server container optimized for daily use."
|
LABEL org.opencontainers.image.description="Code-Server container optimized for daily use."
|
||||||
LABEL org.opencontainers.image.licenses="AGPL-3.0"
|
LABEL org.opencontainers.image.licenses="AGPL-3.0"
|
||||||
|
ARG TAG
|
||||||
|
LABEL org.opencontainers.image.version="${TAG}"
|
||||||
|
|
||||||
LABEL org.opencontainers.image.url="https://gitea.ocram85.com/CodeServer/arkanum"
|
LABEL org.opencontainers.image.url="https://gitea.ocram85.com/CodeServer/arkanum"
|
||||||
LABEL org.opencontainers.image.source="https://gitea.ocram85.com/CodeServer/arkanum.git"
|
LABEL org.opencontainers.image.source="https://gitea.ocram85.com/CodeServer/arkanum.git"
|
||||||
@ -38,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 --install-extensions && arkanum --reset-codesetting && \
|
echo "if [[ ! -e \"$HOME/data/User/settings.json\" ]]; then arkanum config install-extensions && arkanum config reset-codesettings && \
|
||||||
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
|
||||||
|
|
||||||
|
252
README.md
252
README.md
@ -1,12 +1,7 @@
|
|||||||
<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="/CodeServer/arkanum/raw/branch/master/assets/social-logo.png"
|
src="https://gitea.ocram85.com/CodeServer/arkanum/raw/branch/master/assets/social-logo.png"
|
||||||
alt="Container"
|
alt="Container"
|
||||||
>
|
>
|
||||||
</a>
|
</a>
|
||||||
@ -17,64 +12,207 @@
|
|||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
Code-Server container optimized for daily use. ❤
|
... is a Code-Server container optimized for daily use.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://ci.ocram85.com/CodeServer/arkanumg">
|
<a href="https://ci.ocram85.com/CodeServer/arkanum">
|
||||||
<img src="https://ci.ocram85.com/api/badges/CodeServer/arkanum/status.svg" alt="Master Branch Build Status">
|
<img src="https://ci.ocram85.com/api/badges/CodeServer/arkanum/status.svg" alt="Master Branch Build Status">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## :book: General
|
## 🤖 Quickstart
|
||||||
|
|
||||||
The container is based on the latest `linuxserver/code-server` image.
|
### 1. ⚡ Get the image 📦
|
||||||
|
|
||||||
|
You can download the image from the gitea embedded container registry: `gitea.ocram85.com/codeserver/arkanum` with these tags:
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
||||||
|
> **💡 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.
|
||||||
|
|
||||||
|
Therefore you need
|
||||||
|
|
||||||
|
- an already running docker swarm cluster,
|
||||||
|
- a running traefik instance handling the http and https routes,
|
||||||
|
- configured to expose services in the a ingress overlay network called `traefik-public`.
|
||||||
|
|
||||||
|
> ❗ **Warning:** Make sure to secure the access to arkanum with proper **authentication method** and use
|
||||||
|
> a trusted + **secure https connection**.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
arkanum:
|
||||||
|
image: gitea.ocram85.com/codeserver/arkanum:1.0.0
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
- PASSWORD=foo #optional
|
||||||
|
#- HASHED_PASSWORD= #optional
|
||||||
|
- SUDO_PASSWORD=foobar #optional
|
||||||
|
#- SUDO_PASSWORD_HASH= #optional
|
||||||
|
#- PROXY_DOMAIN=code-server.my.domain #optional
|
||||||
|
- DEFAULT_WORKSPACE=/config/workspace
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=traefik-public"
|
||||||
|
- "traefik.http.routers.arkanum.rule=Host(`vscode.mydomain.com`)"
|
||||||
|
- "traefik.http.routers.arkanum.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.services.arkanum-srv.loadbalancer.server.port=8443"
|
||||||
|
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
|
||||||
|
networks:
|
||||||
|
- arkanum-sphere
|
||||||
|
- traefik-public
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
codedata:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
arkanum-sphere:
|
||||||
|
traefik-public:
|
||||||
|
external: true
|
||||||
|
```
|
||||||
|
|
||||||
|
> 💡 NOTE: For advanced config with additional environment variables see [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) help.
|
||||||
|
### 2.b Use Docker-Compose
|
||||||
|
|
||||||
|
This is a basic example for a `docker-compose` file from the [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server) project.
|
||||||
|
|
||||||
|
See their [docs](https://github.com/linuxserver/docker-code-server#parameters) about a detailed help for advanced config parameters.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
arkanum:
|
||||||
|
image: gitea.ocram85.com/codeserver/arkanum:1.0.0
|
||||||
|
container_name: code-server
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/London
|
||||||
|
- PASSWORD=password #optional
|
||||||
|
- HASHED_PASSWORD= #optional
|
||||||
|
- SUDO_PASSWORD=password #optional
|
||||||
|
- SUDO_PASSWORD_HASH= #optional
|
||||||
|
- PROXY_DOMAIN=code-server.my.domain #optional
|
||||||
|
- DEFAULT_WORKSPACE=/config/workspace #optional
|
||||||
|
volumes:
|
||||||
|
- /path/to/appdata/config:/config
|
||||||
|
ports:
|
||||||
|
- 8443:8443
|
||||||
|
restart: unless-stopped
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 🦶 First Steps
|
||||||
|
|
||||||
|
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"
|
||||||
|
```
|
||||||
|
|
||||||
|
And that's it. Now you're ready use arkanum as your daily remote code editor. 😄
|
||||||
|
|
||||||
|
## 📖 Content
|
||||||
|
|
||||||
|
<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"
|
||||||
|
alt="Screenshot1"
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
### 🚀 Starship prompt
|
### 🚀 Starship prompt
|
||||||
|
|
||||||
The [Starship](starship.rs) prompt is added and enabled as default. Default config uses Emojis and FiraCode icons.
|
We added the [Starship](starship.rs) prompt is as default in the integrated terminal. The default config uses Emojis and FiraCode icons.
|
||||||
|
|
||||||
### 🔱 git config
|
### 🔱 git config
|
||||||
|
|
||||||
Adds default git system config file with:
|
Added default git system config file with:
|
||||||
|
|
||||||
- code-server as default editor.
|
- code-server as default editor.
|
||||||
- disabled `aurocrlf`.
|
- disabled `aurocrlf`.
|
||||||
- enabled plain credential store for remote.
|
- enabled plain credential store for remote.
|
||||||
- added git log helper `lg1` + `lg2`.
|
- added git log helper `lg1` + `lg2`.
|
||||||
- enabled bash completion for git command in integrated bash terminal.
|
- enabled bash completion for git command in integrated bash terminal.
|
||||||
|
|
||||||
> 💡 See [gitconfig-system](./gitconfig-system) for details.
|
> 💡 See [gitconfig-system](./gitconfig-system) for details.
|
||||||
|
|
||||||
### 🧙 Added `arkanum` helper script
|
### 🧙 `arkanum` helper
|
||||||
|
|
||||||
Added `arkanum` to help installing common runtime in container.
|
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 runtimes for developing in a
|
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a
|
||||||
code-server container environment.
|
code-server container environment.
|
||||||
|
|
||||||
Syntax: arkanum RUNTIME ...
|
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
|
||||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
COMMAND
|
||||||
dotnet Installs latest LTS dotnet core sdk + runtime.
|
config The config command is used to modify arkanum itself.
|
||||||
gitea Installs gitea tools like the changelog generator.
|
git The git command is a wrapper for git helpers.
|
||||||
golang Installs golang 1.19.3.
|
install The install command is used to add different tools
|
||||||
nodejs Installs latest NodeJs LTS version.
|
help Shows this help text.
|
||||||
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 dotnet
|
OPTION
|
||||||
Example 2: arkanum golang nodejs
|
config:
|
||||||
Example 3: arkanum --disable-motd
|
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.
|
||||||
|
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)
|
||||||
|
|
||||||
Added FiraCode as default font in editor and integrated terminal. The font files are embedded and can be used without local installation.
|
Added FiraCode as default font in editor and integrated terminal. The font files are embedded and can be used without local installation.
|
||||||
|
|
||||||
### VSCode default settings
|
### 🦸 VSCode default settings
|
||||||
|
|
||||||
If your start the container or log in the first time, a default config file is deployed.
|
If your start the container or log in the first time, a default config file is deployed.
|
||||||
|
|
||||||
@ -83,13 +221,13 @@ This user setting defines the following stuff:
|
|||||||
- Use compact menu bar to avoid users with multiple menu bars.
|
- Use compact menu bar to avoid users with multiple menu bars.
|
||||||
- Use *One Dark Pro Darker* theme
|
- Use *One Dark Pro Darker* theme
|
||||||
- Use *vscode-icons* icon set
|
- Use *vscode-icons* icon set
|
||||||
- Set 'FiraCode' as default font in editor.
|
- Set FiraCode as default font in editor.
|
||||||
- Tries to use alternate font names for FiraCode if its locally available.
|
- Tries to use alternate font names for FiraCode if its locally available.
|
||||||
- Sets 'FiraCode' mono variant in terminal to enable icons used by starshop prompt.
|
- Sets FiraCode mono variant in terminal to enable icons used by starship prompt.
|
||||||
- Enables font ligatures
|
- Enables font ligatures
|
||||||
- Enables *auto save* and *format on save*.
|
- Enables *auto save* and *format on save*.
|
||||||
- Disables auto update for extension.
|
- Disables auto update for extension.
|
||||||
- Disables VScode telemetry
|
- Disables VSCode telemetry
|
||||||
- Disable confirm message for sync branches.
|
- Disable confirm message for sync branches.
|
||||||
|
|
||||||
Additionally we install these extensions on container startup:
|
Additionally we install these extensions on container startup:
|
||||||
@ -98,9 +236,51 @@ Additionally we install these extensions on container startup:
|
|||||||
- [vscode-icons](https://open-vsx.org/extension/vscode-icons-team/vscode-icons) icon set
|
- [vscode-icons](https://open-vsx.org/extension/vscode-icons-team/vscode-icons) icon set
|
||||||
- [Gitlens](https://open-vsx.org/extension/eamodio/gitlens)
|
- [Gitlens](https://open-vsx.org/extension/eamodio/gitlens)
|
||||||
|
|
||||||
## 💳 Credits
|
## 💣 Known Issues
|
||||||
|
|
||||||
Akranum is based on the following projects and wouldn't be possible without:
|
### Starship.rs
|
||||||
|
|
||||||
|
Starship detects workspaces as active python projects. It always appends the prompt
|
||||||
|
fragment `via 🐍 (lsiopy)`. For now I disabled the python module in starship.
|
||||||
|
|
||||||
|
### 🐛 Default extensions installation timing error
|
||||||
|
|
||||||
|
If the automatic installation of the default extension fails, you can always retry he installation with the
|
||||||
|
following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# restart the installation
|
||||||
|
arkanum config install-extensions
|
||||||
|
# Optional: reset the vscode user setting
|
||||||
|
arkanum config reset-codesettings
|
||||||
|
# Reload with command F1 + Developer: Reload Window
|
||||||
|
```
|
||||||
|
## 😡 We're Using GitHub Under Protest
|
||||||
|
|
||||||
|
This project is currently **mirrored** to GitHub. This is not ideal; GitHub is a
|
||||||
|
proprietary, trade-secret system that is not Free and Open Source Software
|
||||||
|
(FOSS). We are deeply concerned about using a proprietary system like GitHub
|
||||||
|
to develop our FOSS project. We have an
|
||||||
|
[open Gitea repository ](https://gitea.ocram85.com/CodeServer/arkanum/issues) where the
|
||||||
|
project contributors are actively discussing how we can move away from GitHub
|
||||||
|
in the long term. We urge you to read about the
|
||||||
|
[Give up GitHub](https://GiveUpGitHub.org) campaign from
|
||||||
|
[the Software Freedom Conservancy](https://sfconservancy.org) to understand
|
||||||
|
some of the reasons why GitHub is not a good place to host FOSS projects.
|
||||||
|
|
||||||
|
If you are a contributor who personally has already quit using GitHub, please
|
||||||
|
[check this resource](https://gitea.ocram85.com/CodeServer/arkanum) for how to send us contributions without
|
||||||
|
using GitHub directly.
|
||||||
|
|
||||||
|
Any use of this project's code by GitHub Copilot, past or present, is done
|
||||||
|
without our permission. We do not consent to GitHub's use of this project's
|
||||||
|
code in Copilot.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 🙏 Credits
|
||||||
|
|
||||||
|
Akranum is based on the following projects and wouldn't be possible without them:
|
||||||
|
|
||||||
- [microsoft/vscode](https://github.com/microsoft/vscode) - Visual Studio Code, OSS. `[MIT]`
|
- [microsoft/vscode](https://github.com/microsoft/vscode) - Visual Studio Code, OSS. `[MIT]`
|
||||||
- [coder/code-server](https://github.com/coder/code-server) - VSCode on a remote server, accessible through the browser. `[MIT]`
|
- [coder/code-server](https://github.com/coder/code-server) - VSCode on a remote server, accessible through the browser. `[MIT]`
|
||||||
@ -113,7 +293,7 @@ Akranum is based on the following projects and wouldn't be possible without:
|
|||||||
|
|
||||||
```
|
```
|
||||||
Arkanum - Code-Server container optimized for daily use.
|
Arkanum - Code-Server container optimized for daily use.
|
||||||
Copyright (C) 2022 "OCram85 <me@ocram85.com>"
|
Copyright (C) 2022 "OCram85 <me@ocram85.com>"
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Affero General Public License as published by
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
264
arkanum
264
arkanum
@ -4,24 +4,40 @@ set -e
|
|||||||
|
|
||||||
function showHelp() {
|
function showHelp() {
|
||||||
cat << HELP
|
cat << HELP
|
||||||
🧙 arkanum ✨🌌☄️💥 is used to install optional runtimes for developing in a
|
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a
|
||||||
code-server container environment.
|
code-server container environment.
|
||||||
|
|
||||||
Syntax: arkanum RUNTIME ...
|
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
|
||||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
COMMAND
|
||||||
dotnet Installs latest LTS dotnet core sdk + runtime.
|
config The config command is used to modify arkanum itself.
|
||||||
gitea Installs gitea tools like the changelog generator.
|
git The git command is a wrapper for git helpers.
|
||||||
golang Installs golang 1.19.3.
|
install The install command is used to add different tools
|
||||||
nodejs Installs latest NodeJs LTS version.
|
help Shows this help text.
|
||||||
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 dotnet
|
OPTION
|
||||||
Example 2: arkanum golang nodejs
|
config:
|
||||||
Example 3: arkanum --disable-motd
|
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.
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,6 +45,8 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,22 +66,52 @@ function sayE() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sayW() {
|
||||||
|
if [[ -n "$2" ]]; then
|
||||||
|
echo -e "🧙 \e[33markanum\e[0m \e[34m[⚒️ $2]\e[0m: $1" 1>&2
|
||||||
|
else
|
||||||
|
echo -e "🧙 \e[33markanum\e[0m: $1" 1>&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function instDockerCLI() {
|
||||||
|
say "Installing docker-cli..." "docker-cli"
|
||||||
|
say "Getting requires packages..." "docker-cli"
|
||||||
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install ca-certificates curl gnupg
|
||||||
|
say "Setting up docker repository..." "docker-cli"
|
||||||
|
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" | \
|
||||||
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
say "Installing docker-ce-cli package" "docker-cli"
|
||||||
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
|
docker-ce-cli
|
||||||
|
say "docker-cli done." "docker-cli"
|
||||||
|
}
|
||||||
|
|
||||||
function instDotNet() {
|
function instDotNet() {
|
||||||
say "Installing dotnet requirements..." "dotnet"
|
say "Installing dotnet requirements..." "dotnet"
|
||||||
sudo apt-get update > /dev/null
|
sudo -E apt-get update > /dev/null
|
||||||
sudo apt-get install --no-install-recommends -y \
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
libicu70
|
libicu70
|
||||||
|
|
||||||
say "Downloading latest install script..." "dotnet"
|
say "Downloading latest install script..." "dotnet"
|
||||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
curl -#fSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
||||||
chmod +x /tmp/dotnet-install.sh
|
chmod +x /tmp/dotnet-install.sh
|
||||||
|
|
||||||
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"
|
||||||
sudo apt-get clean
|
sudo -E apt-get clean
|
||||||
sudo rm -rf \
|
sudo rm -rf \
|
||||||
/tmp/* \
|
/tmp/* \
|
||||||
/var/lib/apt/lists/* \
|
/var/lib/apt/lists/* \
|
||||||
@ -73,16 +121,17 @@ function instDotNet() {
|
|||||||
|
|
||||||
function instGoLang() {
|
function instGoLang() {
|
||||||
if [[ -z "$1" ]]; then
|
if [[ -z "$1" ]]; then
|
||||||
GOVERSION="1.19.3"
|
GOVERSION="1.21.5"
|
||||||
else
|
else
|
||||||
GOVERSION="$1"
|
GOVERSION="$1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
say "Downloading golang ($GOVERSION)..." "GoLang"
|
say "Downloading golang ($GOVERSION)..." "GoLang"
|
||||||
curl -fsSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz
|
curl -#fSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz
|
||||||
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
|
||||||
@ -90,80 +139,92 @@ function instGoLang() {
|
|||||||
say "Please reload bash profile to finalize." "GoLang"
|
say "Please reload bash profile to finalize." "GoLang"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function instBun() {
|
||||||
|
say "Installing Bun requirements..." "Bun"
|
||||||
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
|
unzip
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
|
||||||
function instNodeJs() {
|
function instNodeJs() {
|
||||||
say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
|
say "Installing NodeJS LTS via Volta..." "NodeJS"
|
||||||
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
volta install node@lts
|
||||||
say "Updating package lists and installing NodeJS LTS..." "NodeJs"
|
say "done." "NodeJS"
|
||||||
sudo apt-get install --no-install-recommends -y \
|
}
|
||||||
nodejs
|
|
||||||
|
|
||||||
say "Cleaning up..." "NodeJs"
|
function instVolta() {
|
||||||
sudo apt-get clean
|
say "Installing Volta as NodeJS version manager..." "Volta"
|
||||||
sudo rm -rf \
|
curl -#fSl https://get.volta.sh | bash
|
||||||
/tmp/* \
|
# shellcheck disable=SC1090
|
||||||
/var/lib/apt/lists/* \
|
source ~/.profile
|
||||||
/var/tmp/*
|
say "done." "Volta"
|
||||||
|
|
||||||
say "done." "NodeJs"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function instPwsh() {
|
function instPwsh() {
|
||||||
say "Installing PowerShell requirements..." "PowerShell"
|
say "Installing PowerShell requirements..." "PowerShell"
|
||||||
sudo apt-get install --no-install-recommends -y \
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
software-properties-common
|
software-properties-common
|
||||||
|
|
||||||
say "Adding powershell package sources..." "PowerShell"
|
say "Adding powershell package sources..." "PowerShell"
|
||||||
# Download the Microsoft repository GPG keys
|
# Download the Microsoft repository GPG keys
|
||||||
curl -fsSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb
|
curl -#fSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb
|
||||||
# Register the Microsoft repository GPG keys
|
# Register the Microsoft repository GPG keys
|
||||||
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
||||||
# Update the list of packages after we added packages.microsoft.com
|
# Update the list of packages after we added packages.microsoft.com
|
||||||
sudo apt-get update
|
sudo -E apt-get update
|
||||||
|
|
||||||
say "Installing PowerShell..." "PowerShell"
|
say "Installing PowerShell..." "PowerShell"
|
||||||
# Install PowerShell
|
# Install PowerShell
|
||||||
sudo apt-get install --no-install-recommends -y powershell
|
sudo -E apt-get install --no-install-recommends -y powershell-lts
|
||||||
|
|
||||||
say "done." "PowerShell"
|
say "done." "PowerShell"
|
||||||
}
|
}
|
||||||
|
|
||||||
function instGiteaTools() {
|
function instGiteaTools() {
|
||||||
|
TEA_VERSION="0.9.0"
|
||||||
|
CHANGELOG_VERSION="main"
|
||||||
say "Installing Gitea tools..." "Gitea"
|
say "Installing Gitea tools..." "Gitea"
|
||||||
sudo curl -fsSL https://dl.gitea.io/changelog-tool/main/changelog-main-linux-amd64 -o /usr/bin/changelog
|
|
||||||
|
say "Downloading 'changelog' ($CHANGELOG_VERSION)..." "Gitea"
|
||||||
|
sudo -E curl -#fSL "https://dl.gitea.io/changelog-tool/$CHANGELOG_VERSION/changelog-$CHANGELOG_VERSION-linux-amd64" -o /usr/bin/changelog
|
||||||
sudo chmod +x /usr/bin/changelog
|
sudo chmod +x /usr/bin/changelog
|
||||||
say "'changelog' command installed." "Gitea"
|
say "'changelog' command installed." "Gitea"
|
||||||
|
|
||||||
|
say "Downloading 'tea' ($TEA_VERSION)..." "Gitea"
|
||||||
|
sudo -E curl -#fSL https://dl.gitea.io/tea/$TEA_VERSION/tea-$TEA_VERSION-linux-amd64 -o /usr/bin/tea
|
||||||
|
sudo chmod +x /usr/bin/tea
|
||||||
|
say "'tea' command installed." "Gitea"
|
||||||
|
|
||||||
say "done." "Gitea"
|
say "done." "Gitea"
|
||||||
}
|
}
|
||||||
|
|
||||||
function instCodeExtension() {
|
function instCodeExtension() {
|
||||||
say "Downloading required extensions...." "Extension"
|
say "Installing default extensions...." "Extension"
|
||||||
# Gitlens
|
# Gitlens
|
||||||
say "Downloading 'gitlens'..." "Extension"
|
|
||||||
curl -fsSL 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-13.1.1.vsix
|
install-extension eamodio.gitlens --force
|
||||||
say "Cleaning up 'gitlens' install files" "Extension"
|
|
||||||
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
|
|
||||||
|
|
||||||
# OneDarkPro
|
# OneDarkPro
|
||||||
say "Downloading 'One Dark Pro' theme..." "V"
|
|
||||||
curl -fsSL 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-3.15.6.vsix
|
install-extension zhuangtongfa.material-theme --force
|
||||||
say "Cleaning up 'One Dark Pro' install files" "Extension"
|
|
||||||
rm -f /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
|
||||||
|
|
||||||
# vscode-icons
|
# vscode-icons
|
||||||
say "Downloading 'vscode-icons' theme..." "Extension"
|
|
||||||
curl -fsSL 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-12.0.1.vsix
|
install-extension vscode-icons-team.vscode-icons --force
|
||||||
say "Cleaning up 'vscode-icons' install files" "Extension"
|
|
||||||
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"
|
||||||
|
|
||||||
@ -186,41 +247,92 @@ 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
|
||||||
|
|
||||||
for i in $@; do
|
# Command filter
|
||||||
if [[ "$1" == "-h" ]]; then
|
if [[ "$1" =~ ^help|-h|--h$ ]]; then
|
||||||
showHelp
|
showHelp
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ "$i" == "dotnet" ]]; then
|
fi
|
||||||
instDotNet
|
|
||||||
elif [[ "$i" == "golang" ]]; then
|
# CONFIG command
|
||||||
instGoLang
|
if [[ "$1" == "config" ]]; then
|
||||||
elif [[ "$i" == "nodejs" ]]; then
|
# disable-motd option
|
||||||
instNodeJs
|
if [[ "$2" == "disable-motd" ]]; then
|
||||||
elif [[ "$i" == "powershell" ]]; then
|
|
||||||
instPwsh
|
|
||||||
elif [[ "$i" == "gitea" ]]; then
|
|
||||||
instGiteaTools
|
|
||||||
elif [[ "$i" == "--disable-motd" ]]; then
|
|
||||||
disableMotd
|
disableMotd
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ "$i" == "--install-extensions" ]]; then
|
# install-extensions option
|
||||||
|
elif [[ "$2" == "install-extensions" ]]; then
|
||||||
instCodeExtension
|
instCodeExtension
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ "$i" == "--reset-codesetting" ]]; then
|
# reset-codesetting option
|
||||||
|
elif [[ "$2" == "reset-codesettings" ]]; then
|
||||||
setCodeSettings
|
setCodeSettings
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
sayE "Unknown parameter value given!($i)."
|
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)."
|
||||||
showHelp
|
showHelp
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main $@
|
main "$@"
|
||||||
|
@ -1,3 +1,39 @@
|
|||||||
#!/bin/bash
|
#!/bin/env bash
|
||||||
|
|
||||||
complete -W "--disable-motd --install-extensions --reset-codesetting dotnet gitea golang nodejs 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
|
||||||
|
BIN
assets/screen1.png
Normal file
BIN
assets/screen1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 304 KiB |
@ -6,7 +6,7 @@
|
|||||||
"woodpecker": {
|
"woodpecker": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"fileMatch": [
|
"fileMatch": [
|
||||||
"^.woodpecker/*.yml$"
|
"^.woodpecker\/.*.yml$"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,9 @@ symbol = " "
|
|||||||
[package]
|
[package]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
|
||||||
|
[python]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
[rust]
|
[rust]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user