Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 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

Repository files navigation

gitenv-init

A simple script to initialize git using provided environment variables. Designed and optimized for dockerized scenarios.

Other tools used here

  • Dockerfile - Wraps another docker image without changing the original image.
  • bootstrap.sh - Works with the provided Dockerfile, or as a starting point to copy into your own Docker images.
  • pre-commit - The widely loved pre-commit tool is automatically installed unless you specify GIT_NO_PRECOMMIT. This means that if your repo has a .pre-commit-config.yaml file, it will be applied automatically.

Example usage

These examples use Meltano as the base image.

Test locally

export GIT_REPO=gitlab.com/meltano/singerhub
export GIT_REF=meltano-project
export GIT_WORKDIR=meltano
export GIT_USER=myname
export GIT_EMAIL=myname@example.com
# Only one of these is required:export GIT_ACCESS_TOKEN=<token-secret>export GIT_SSH_PRIVATE_KEY="$(cat /path/to/keyfile)"# SSH not yet supported# Build and run the image:
docker build --build-arg base_image=meltano/meltano:latest --build-arg base_bootstrap=meltano --build-arg base_command=ui -t mymelt .
docker run -it --rm -p 5000:5000 -e GIT_REPO -e GIT_REF -e GIT_USER -e GIT_EMAIL -e GIT_WORKDIR -e GIT_ACCESS_TOKEN --name meltui mymelt

Committing changes back to git

Many UIs are not yet git aware. This means changes applied within the UI cannot be directly committed and pushed back to git unless the user logs into a terminal.

Here is code to do this when running the docker image locally. This expects that meltano was launched via the docker instruction above and is still running:

docker exec -i meltui bash

After connecting to the container:

cd /project/*pwd# Show what has changed:
git status
git diff --cached
# Optionally make a small test change:echo"\n">> README.md
### TODO: The part to add to Meltano UI# Stage anything changed:
git add -A
# Test ability to commit:
git commit -m "meltano-ui changes, '$(date -Iseconds)'"# Test ability to push:
git push

Create an SSH keypair for your containers

  • TODO: Note that SSH keypair support is not yet enabled automatically by the script. That said, you can probably get it working if you already know what you are doing. (Same rules apply as other environments.)

To generate an SSH key, run this locally:

export SSH_KEYNAME=meltano-containers
# Generates key files in user's profile folder (~/.ssh):# '~/.ssh/meltano-containers-ssh'# '~/.ssh/meltano-containers-ssh.pub'
ssh-keygen -t rsa -b 4096 -f ~/.ssh/$SSH_KEYNAME-ssh -C "SSH Key for $SSH_KEYNAME" -q -N ""

Wrap in your own Dockerfile

If you are building a new image, you can wrap these tools as in the following example:

Dockerfile

FROM meltano/meltano
WORKDIR /
# Install the latest 'gitenv-init' scriptsRUN GITENV_REPO_ROOT=https://raw.githubusercontent.com/dataops-tk/gitenv-init/main && \
wget ${GITENV_REPO_ROOT}/gitenv-init.sh && \
wget ${GITENV_REPO_ROOT}/gitenv-bootstrap.sh && \
chmod +x /gitenv-bootstrap.sh && \
chmod +x /gitenv-init.sh
ENTRYPOINT [ "/gitenv-bootstrap.sh" ]
# Meltano-specific steps here:# Install the Meltano boostrap scriptCOPY ./bootstrap.sh /bootstrap.sh
RUN chmod +x /bootstrap.sh
WORKDIR /project
# Set our bootstrap script to run within gitenv-bootstrap.shENV BASE_BOOTSTRAP=/bootstrap.sh
CMD ["ui"]

Note that the gitenv-bootstrap.sh script will call any provided custom bootstrap script via the BASE_BOOTSTRAP environment variable.

About

A simple script to initialize git using provided environment variables. Designed for dockerized scenarios.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages