Skip to content

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - jisantuc/cliffs: Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA). · GitHub
Skip to content

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - jisantuc/cliffs: Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA). · GitHub
Skip to content

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - jisantuc/cliffs: Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA). · GitHub
Skip to content

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - jisantuc/cliffs: Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA). · GitHub
Skip to content

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

cliffs

cliffs is a small CLI built on brick that makes interacting with scripts to rule them all (STRTA) easier.

It is oriented around three features that should alleviate some common pain points:

Pain Pointcliffs help
Remembering what script does whatRendering script descriptions next to names
Remembering what arguments scripts takeRendering --help output with a hotkey
Separating help from where you run the commandProviding a small terminal for command submission with the table

You can see an example by running cliffs in this directory. Running the executable will get you an interactive table of scripts like:

┏━━━━━━━━━━━━━━━━━━━━━━━Scripts━━━━━━━━━━━━━━━━━━━━━━┓
┃ bootstrap ┃ Set stuff up ┃
┃ server ┃ Start servers ┃
┃ update ┃ Update dependencies and containers ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

You can press the up / down arrow to select different scripts, which will update the Help output box (not shown in paste above).

Script descriptions

Scripts can have short descriptions as well as their help text. You can include such information in a table in a README. Your README must live in a file called README.md. cliffs will show the description from the table in the README for any scripts that have them. To detect the short descriptions automatically, your README must have a table with two columns named "Script Name" and "Description" somewhere in the README.

An example table is below:

Script NameDescription
releaseCreate tags and CHANGELOG entries for a new release
bootstrapSet stuff up
serverStart servers
updateUpdate dependencies and containers

If you have a similar table but with different names, you can specify those at runtime! You can use the --script-name-column / -s option to control the name of the column where script names can be found, and the --description-column / -d option to control the name of the column where the descriptions are found. Both have defaults in case your names match "Script Name" and "Description" already.

Releases

Relases are handled by chan and GitHub Actions. To create a new release:

  • rotate the changelog: chan release v<VERSION>
  • bump versions in package.yaml and cliffs.cabal (the second with hpack)
  • commit the release: git commit -am "Update changelog for <VERSION>
  • tag the release: git tag -S -a v<VERSION> -m "Release v<VERSION>"
  • push the tag: git push origin --tags v<VERSION>
  • create the GitHub release after the build completes

Everything up to creating the GitHub release after the build is handled by the scripts/release script. The GitHub action will create the release itself.

After the release exists, you should:

  • paste the changelog for this release
  • add an installation command like: nix-env -i -f https://github.com/jisantuc/cliffs/archive/refs/tags/VERSION.zip. This command will work across platforms where nix is installed, so MacOS / Linux / NixOS / anyone else with nix should be able to call the install command and get a working executable.

About

Cliffs. are a nice way to view geologic strata. `cliffs` the CLI tool is a nice way to view your scripts-to-rule-them-all (STRTA).

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages