Merge branch 'master' of ssh://git.cz0.cz:2222/czoczo/BetterBash

main
czoczo 7 months ago
commit e2f76ef77e
  1. 3
      getbb.sh
  2. 30
      webpage/BetterBash/src/App.vue

@ -4,7 +4,8 @@ get_file() {
HOST="git.cz0.cz" HOST="git.cz0.cz"
echo -e "GET /czoczo/BetterBash/raw/branch/master/$1 HTTP/1.1\r\nHost: $HOST\r\nConnection: close\r\n\r\n" \ echo -e "GET /czoczo/BetterBash/raw/branch/master/$1 HTTP/1.1\r\nHost: $HOST\r\nConnection: close\r\n\r\n" \
| openssl s_client -quiet -connect $HOST:443 2>/dev/null \ | openssl s_client -quiet -connect $HOST:443 2>/dev/null \
| sed '1,/^\r$/d' | sed '1,/^\r$/d' \
| sed -E ':a;N;$!ba;s/(\r\n)?[a-f0-9]+\r\n//g'
} }
handle_inputrc() { handle_inputrc() {

@ -154,6 +154,13 @@
</div> </div>
<div class="share-section"> <div class="share-section">
<h3>Quick install</h3>
<div class="share-url-container">
<input type="text" :value="installUrl" readonly id="installUrlInput" @click="selectUrlText" />
<button @click="copyCmdToClipboard">Copy command</button>
</div>
<p v-if="copyCmdSuccess" class="copy-success-message">Copied to clipboard!</p>
<h3>Share Your Theme</h3> <h3>Share Your Theme</h3>
<div class="share-url-container"> <div class="share-url-container">
<input type="text" :value="shareableUrl" readonly id="shareUrlInput" @click="selectUrlText" /> <input type="text" :value="shareableUrl" readonly id="shareUrlInput" @click="selectUrlText" />
@ -161,13 +168,13 @@
</div> </div>
<p v-if="copySuccess" class="copy-success-message">Copied to clipboard!</p> <p v-if="copySuccess" class="copy-success-message">Copied to clipboard!</p>
<h3>Load Theme from URL</h3> <!---<h3>Load Theme from URL</h3>
<div class="share-url-container"> <div class="share-url-container">
<input type="text" v-model="loadUrlInput" placeholder="Paste theme URL here..." id="loadUrlInput" /> <input type="text" v-model="loadUrlInput" placeholder="Paste theme URL here..." id="loadUrlInput" />
<button @click="loadThemeFromUrl">Load Theme</button> <button @click="loadThemeFromUrl">Load Theme</button>
</div> </div>
<p v-if="loadError" class="load-error-message">{{ loadError }}</p> <p v-if="loadError" class="load-error-message">{{ loadError }}</p>
<p v-if="loadSuccess" class="load-success-message">Theme loaded successfully!</p> <p v-if="loadSuccess" class="load-success-message">Theme loaded successfully!</p>-->
</div> </div>
</div> </div>
</div> </div>
@ -463,6 +470,11 @@ function parseShareCode(code) {
} }
} }
const installUrl = computed(() => {
const code = generateShareCode(selectedColorAttributes.value, showAvatar.value);
return `curl -sL https://betterbash.cz0.cz/${code}/getbb.sh`;
});
const shareableUrl = computed(() => { const shareableUrl = computed(() => {
const code = generateShareCode(selectedColorAttributes.value, showAvatar.value); const code = generateShareCode(selectedColorAttributes.value, showAvatar.value);
return `${window.location.origin}${window.location.pathname}#${code}`; return `${window.location.origin}${window.location.pathname}#${code}`;
@ -482,6 +494,20 @@ async function copyUrlToClipboard() {
} }
} }
const copyCmdSuccess = ref(false);
async function copyCmdToClipboard() {
try {
await navigator.clipboard.writeText(installUrl.value);
copyCmdSuccess.value = true;
setTimeout(() => {
copyCmdSuccess.value = false;
}, 2000);
} catch (err) {
console.error('Failed to copy install command: ', err);
alert('Failed to copy install command. Please copy it manually.');
}
}
function selectUrlText() { function selectUrlText() {
const inputElement = document.getElementById('shareUrlInput'); const inputElement = document.getElementById('shareUrlInput');
if (inputElement) { if (inputElement) {

Loading…
Cancel
Save