mirror of
https://github.com/fleschutz/PowerShell.git
synced 2025-08-08 20:54:38 +02:00
Merge branch 'main' of github.com:fleschutz/PowerShell
This commit is contained in:
@ -20,34 +20,32 @@
|
||||
param([int]$port = 8099, [string]$mediaFolder = "$HOME/Calibre Library", [string]$userDB = "$HOME/CalibreUsers.sqlite", [string]$logfile = "$HOME/CalibreServer.log")
|
||||
|
||||
try {
|
||||
if ($IsLinux) {
|
||||
$stopWatch = [system.diagnostics.stopwatch]::startNew()
|
||||
if (-not $IsLinux) { throw "Sorry, currently only supported on Linux" }
|
||||
|
||||
"⏳ (1/5) Updating package infos..."
|
||||
& sudo apt update -y
|
||||
if ($lastExitCode -ne "0") { throw "'apt update' failed" }
|
||||
$stopWatch = [system.diagnostics.stopwatch]::startNew()
|
||||
|
||||
"⏳ (2/5) Installing Calibre..."
|
||||
& sudo apt install calibre -y
|
||||
if ($lastExitCode -ne "0") { throw "'apt install calibre' failed" }
|
||||
"⏳ (1/5) Updating package infos..."
|
||||
& sudo apt update -y
|
||||
if ($lastExitCode -ne "0") { throw "'apt update' failed" }
|
||||
|
||||
"⏳ (3/5) Searching for Calibre server executable..."
|
||||
& calibre-server --version
|
||||
if ($lastExitCode -ne "0") { throw "Can't execute 'calibre-server' - make sure Calibre server is installed and available" }
|
||||
"⏳ (2/5) Installing Calibre package..."
|
||||
& sudo apt install calibre -y
|
||||
if ($lastExitCode -ne "0") { throw "'apt install calibre' failed" }
|
||||
|
||||
"⏳ (4/5) Creating media folder at: $mediaFolder ... (if non-existent)"
|
||||
mkdir $mediaFolder
|
||||
Write-Host "⏳ (3/5) Searching for Calibre server executable... " -noNewline
|
||||
& calibre-server --version
|
||||
if ($lastExitCode -ne "0") { throw "Can't execute 'calibre-server' - make sure Calibre server is installed and available" }
|
||||
|
||||
"⏳ (5/5) Starting Calibre server as background process..."
|
||||
& calibre-server --port $port --num-per-page 100 --userdb $userDB --log $logfile --daemonize $HOME/'Calibre Library'
|
||||
"⏳ (4/5) Creating media folder at: $mediaFolder ... (if non-existent)"
|
||||
mkdir $mediaFolder
|
||||
|
||||
[int]$elapsed = $stopWatch.Elapsed.TotalSeconds
|
||||
"✔️ Installed Calibre server on Web port $port in $elapsed sec (media folder: $mediaFolder, user database: $userDB, log file: $logfile)"
|
||||
exit 0 # success
|
||||
} else {
|
||||
throw "Currently only supported on Linux"
|
||||
}
|
||||
"⏳ (5/5) Starting Calibre server as background process..."
|
||||
& calibre-server --port $port --num-per-page 100 --userdb $userDB --log $logfile --daemonize $HOME/'Calibre Library'
|
||||
|
||||
[int]$elapsed = $stopWatch.Elapsed.TotalSeconds
|
||||
"✔️ Installed Calibre server on port $port in $($elapsed)s (media at: $mediaFolder, user DB: $userDB, log to: $logfile)"
|
||||
exit 0 # success
|
||||
} catch {
|
||||
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
||||
exit 1
|
||||
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
||||
exit 1
|
||||
}
|
||||
|
@ -13,7 +13,8 @@
|
||||
#>
|
||||
|
||||
try {
|
||||
"📋 $(get-clipboard)"
|
||||
[string]$text = (Get-Clipboard)
|
||||
Write-Output "📋 `“ $text `„"
|
||||
exit 0 # success
|
||||
} catch {
|
||||
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
||||
|
@ -2,7 +2,7 @@
|
||||
.SYNOPSIS
|
||||
Lists Git repositories
|
||||
.DESCRIPTION
|
||||
This PowerShell script lists all Git repositories in a folder with details such as tag/branch/status/URL.
|
||||
This PowerShell script lists all Git repositories in a folder with details such as latest tag/branch/status/URL.
|
||||
.PARAMETER parentDir
|
||||
Specifies the path to the parent directory (current working directory by default)
|
||||
.EXAMPLE
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||
Local Repo Latest Tag Branch Status Remote Repo
|
||||
---------- ---------- ------ ------ -----------
|
||||
📂cmake v3.23.0 main ✔️clean git@github.com:Kitware/CMake ↓0
|
||||
📂cmake v3.23.0 main ✔️clean ↓0 git@github.com:Kitware/CMake
|
||||
...
|
||||
.LINK
|
||||
https://github.com/fleschutz/PowerShell
|
||||
@ -35,8 +35,8 @@ function ListRepos {
|
||||
$numCommits = (git -C "$folder" rev-list HEAD...origin/$branch --count)
|
||||
$status = (git -C "$folder" status --short)
|
||||
if ("$status" -eq "") { $status = "✔️clean" }
|
||||
elseif ("$status" -like " M *") { $status = "⚠️modified" }
|
||||
New-Object PSObject -property @{'Local Repo'="📂$folderName";'Latest Tag'="$latestTag";'Branch'="$branch";'Remote Repo'="$remoteURL";'Status'="$status ↓$numCommits"}
|
||||
elseif ("$status" -like " M *") { $status = "⚠️changed" }
|
||||
New-Object PSObject -property @{'Local Repo'="📂$folderName";'Latest Tag'="$latestTag";'Branch'="$branch";'Status'="$status";'Remote Repo'="↓$numCommits $remoteURL"}
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ try {
|
||||
$null = (git --version)
|
||||
if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" }
|
||||
|
||||
ListRepos | Format-Table -property @{e='Local Repo';width=19},@{e='Latest Tag';width=18},@{e='Branch';width=15},'Remote Repo',@{e='Status';width=14}
|
||||
ListRepos | Format-Table -property @{e='Local Repo';width=19},@{e='Latest Tag';width=16},@{e='Branch';width=19},@{e='Status';width=10},'Remote Repo'
|
||||
exit 0 # success
|
||||
} catch {
|
||||
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
||||
|
@ -59,7 +59,8 @@ function GetDescription { param([string]$text)
|
||||
"Patchy snow possible" { return "❄️ patchy snow possible" }
|
||||
"Sunny" { return "☀️ sunny" }
|
||||
"Thundery outbreaks possible" { return "⚡️thundery outbreaks possible" }
|
||||
default { return "$Text" }
|
||||
"Thundery outbreaks in nearby" { return "⚡️thundery outbreaks in nearby" }
|
||||
default { return $text }
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,7 +108,7 @@ try {
|
||||
$Desc = GetDescription $Hourly.weatherDesc.value
|
||||
if ($Hour -eq 0) {
|
||||
if ($Day -eq 0) {
|
||||
Write-Host -foregroundColor green "TODAY 🌡°C ☂️mm 💧 💨km/h ☀️UV ☁️ 👁km at $Area ($Region, $Country)"
|
||||
Write-Host -foregroundColor green "TODAY 🌡°C ☂️mm 💧 💨km/h ☀️UV ☁️ 👁km at $Area ($Region, $Country)"
|
||||
} elseif ($Day -eq 1) {
|
||||
$Date = (Get-Date).AddDays(1)
|
||||
[string]$Weekday = $Date.DayOfWeek
|
||||
@ -119,7 +120,7 @@ try {
|
||||
}
|
||||
$Day++
|
||||
}
|
||||
"$(($Hour.toString()).PadLeft(2))°° $Temp° $Precip $Humidity% $($WindDir)$WindSpeed $UV $Clouds% $Visib $Desc"
|
||||
"$(($Hour.toString()).PadLeft(2))h $Temp° $Precip $Humidity% $($WindDir)$WindSpeed $UV $Clouds% $Visib $Desc"
|
||||
}
|
||||
exit 0 # success
|
||||
} catch {
|
||||
|
@ -6,12 +6,12 @@
|
||||
.PARAMETER pathToRepo
|
||||
Specifies the file path to the local Git repository (default is working directory)
|
||||
.EXAMPLE
|
||||
PS> ./pull-repo.ps1 C:\Repos\rust
|
||||
PS> ./pull-repo.ps1
|
||||
⏳ (1/4) Searching for Git executable... git version 2.44.0.windows.1
|
||||
⏳ (2/4) Checking local repository...
|
||||
⏳ (2/4) Checking local repository... 📂C:\Repos\rust
|
||||
⏳ (3/4) Pulling remote updates...
|
||||
⏳ (4/4) Updating submodules...
|
||||
✔️ Pulled updates into 📂rust repository in 14 sec.
|
||||
✔️ Pulled remote updates into 📂rust repo in 14s.
|
||||
.LINK
|
||||
https://github.com/fleschutz/PowerShell
|
||||
.NOTES
|
||||
@ -27,10 +27,10 @@ try {
|
||||
& git --version
|
||||
if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" }
|
||||
|
||||
Write-Host "⏳ (2/4) Checking local repository..."
|
||||
Write-Host "⏳ (2/4) Checking local repository... 📂$pathToRepo"
|
||||
if (-not(Test-Path "$pathToRepo" -pathType container)) { throw "Can't access folder: $pathToRepo" }
|
||||
$result = (git -C "$pathToRepo" status)
|
||||
if ("$result" -match "HEAD detached at ") { throw "Currently in detached HEAD state (not on a branch!), so nothing to pull" }
|
||||
if ("$result" -match "HEAD detached at ") { throw "Nothing to pull due to detached HEAD state (not on a branch!)" }
|
||||
$pathToRepoName = (Get-Item "$pathToRepo").Name
|
||||
|
||||
Write-Host "⏳ (3/4) Pulling remote updates..."
|
||||
@ -42,7 +42,7 @@ try {
|
||||
if ($lastExitCode -ne "0") { throw "'git submodule update' failed with exit code $lastExitCode" }
|
||||
|
||||
[int]$elapsed = $stopWatch.Elapsed.TotalSeconds
|
||||
"✔️ Pulled updates into 📂$pathToRepoName repository in $elapsed sec."
|
||||
"✔️ Pulled remote updates into 📂$pathToRepoName repo in $($elapsed)s."
|
||||
exit 0 # success
|
||||
} catch {
|
||||
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
||||
|
Reference in New Issue
Block a user