Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

denv (docker environment)

Requirements

  • Docker installed and running with your intended user in the docker group (ie you can run docker commands as your intended user)

Requirements (optional)

  • yq (python yq, basically jq for yaml) If this is not installed in the current path, it will process .denv.yml config using yq within the denv container

How it works?

These images give you a nice wrapper to run arbitrary commands as well as all of the nodeintegration/denv-* image commands inside a container as if it was a local binary

$ source /dev/stdin <<< "$(docker run nodeintegration/denv:latest boot)"
Binding to tag: latest

What this command does is give a denv function in bash:

$ type denv| grep function
denv is a function
$ type denv| grep function
denv-init is a function

If you are curious what this is exactly doing before you load it into your shell:

$ docker run nodeintegration/denv:latest cat /usr/local/bin/boot
$ docker run nodeintegration/denv:latest cat /workspace/bootstrap

What this denv function does is create a wrapper to run the first argument to denv as a container. By default the command will run inside the denv container with your current working directory mounted to /workspace. It is also run as your current uid/gid

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
$ denv cat /etc/issue
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

.denv.yml

This configuration file for denv allows you to commit specific versions of commands you use within a repository perhaps or on your CI/CD system at the commit level It is evaulated per command

global.environment

A list of key = value environment variables that will be passed to the container per command run This can be an empty value. denv WILL use the presence of a shell environment value over the value provided from .denv.yml Think of the value in .denv.yml as a default with the shell overriding it.

${cmd}.image

The docker image to use for this command. eg: terraform.image: hashicorp/terraform If this is not present it will default to the value of ${cmd}

${cmd}.tag

The docker image tag to use for this command. eg: terraform.tag: 0.11.0 The default value if not present is latest

${cmd}.cmd

If this is present it will strip the running command and replace it with this value. a use case of why you might want this is like so:

python-3.6.8.cmd: python
python-3.7.2.cmd: python

So it will always execute python as python-3.6.8 useful if you are performing matrices etc

Commands run as different docker images/tags

This is where it gets fun. The function denv looks for a file .denv.yml in your current working directory It then looks for a key: commands: and then if there is a sub key called the first argument you supply to denv ie:

cat .denv.yml
commands:
bash:

denv will then change the docker run image to be bash for the command bash with the tag of latest

Then lets say i want to run an image that doesnt match the command:

commands:
terraform:
image: hashicorp/terraform

denv will then for the command terraform use the hashicorp/terraform image with the default tag of latest

...ok...ok but i want a specific tag not latest:

commands:
terraform:
image: hashicorp/terraform
tag: 0.11.11

I want environment variables passed to the commands run time

Easy peasy:

global:
environment:
FOO:
BAR: baz

This will give you FOO and BAR as docker run environment variables It WILL use your current shells environment variables over the .denv.yml value e.g. with the above .denv.yml:

$ denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=""
$ FOO="bar" denv env | grep -E '^(FOO|BAR)'
BAR="baz"
FOO=bar

I want to make sure i have all expected images for commands at the current upstream tag

denv-init

This will scour your .denv.yml for all commands and what images/tags they want and do a docker pull on them

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages