11 changed files with 22945 additions and 1 deletions
			
			
		@ -0,0 +1,16 @@ | 
				
			|||||||
 | 
					<p align="center"><img src="https://cdn.rawgit.com/arcticicestudio/nord-gnome-terminal/develop/assets/nord-gnome-terminal-banner.svg"/></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center"><img src="https://assets-cdn.github.com/favicon.ico" width=24 height=24/> <a href="https://github.com/arcticicestudio/nord-gnome-terminal/releases/latest"><img src="https://img.shields.io/github/release/arcticicestudio/nord-gnome-terminal.svg?style=flat-square"/></a> <a href="https://github.com/arcticicestudio/nord/releases/tag/v0.2.0"><img src="https://img.shields.io/badge/Nord-v0.2.0-88C0D0.svg?style=flat-square"/></a></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 0.1.0 (2016-12-24) | 
				
			||||||
 | 
					## Features | 
				
			||||||
 | 
					Implemented the main shell script theme file [`nord.sh`](https://github.com/arcticicestudio/nord-gnome-terminal/blob/develop/src/sh/nord.sh). (@arcticicestudio, #1, c2282cd9) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Detailed information about features and install instructions can be found in the [README](https://github.com/arcticicestudio/nord-gnome-terminal/blob/develop/README.md#installation) and in the [project wiki](https://github.com/arcticicestudio/nord-gnome-terminal/wiki). | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center"><img src="https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/assets/scrot-colortest.png"/><br><strong>htop</strong><br><img src="https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/assets/scrot-htop.png"/></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 0.0.0 (2016-12-22) | 
				
			||||||
 | 
					**Project Initialization** | 
				
			||||||
@ -0,0 +1,22 @@ | 
				
			|||||||
 | 
					MIT License (MIT) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2016-present Arctic Ice Studio <development@arcticicestudio.com> (http://arcticicestudio.com) | 
				
			||||||
 | 
					Copyright (c) 2016-present Sven Greb <code@svengreb.de> (http://svengreb.de) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permission is hereby granted, free of charge, to any person obtaining a copy | 
				
			||||||
 | 
					of this software and associated documentation files (the "Software"), to deal | 
				
			||||||
 | 
					in the Software without restriction, including without limitation the rights | 
				
			||||||
 | 
					to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | 
				
			||||||
 | 
					copies of the Software, and to permit persons to whom the Software is | 
				
			||||||
 | 
					furnished to do so, subject to the following conditions: | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above copyright notice and this permission notice shall be included in all | 
				
			||||||
 | 
					copies or substantial portions of the Software. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
				
			||||||
 | 
					IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
				
			||||||
 | 
					FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | 
				
			||||||
 | 
					AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 
				
			||||||
 | 
					LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | 
				
			||||||
 | 
					OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
				
			||||||
 | 
					SOFTWARE. | 
				
			||||||
@ -0,0 +1,129 @@ | 
				
			|||||||
 | 
					<p align="center"><img src="https://cdn.rawgit.com/arcticicestudio/nord-gnome-terminal/develop/assets/nord-gnome-terminal-banner.svg"/></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center"><a href="https://github.com/arcticicestudio/nord-gnome-terminal/releases/latest"><img src="https://img.shields.io/github/v/release/arcticicestudio/nord-gnome-terminal.svg?style=flat-square&color=88C0D0&label=Release"/></a> <a href="https://github.com/arcticicestudio/nord/releases/tag/v0.2.0"><img src="https://img.shields.io/badge/Nord-v0.2.0-88C0D0.svg?style=flat-square"/></a></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center">An arctic, north-bluish clean and elegant <a href="https://wiki.gnome.org/Apps/Terminal">GNOME Terminal</a> color theme.</p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center">Designed for a fluent and clear workflow.<br> | 
				
			||||||
 | 
					Based on the <a href="https://github.com/arcticicestudio/nord">Nord</a> color palette.</p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center"><img src="https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/assets/scrot-colortest.png"/><blockquote>Font: <a href="https://adobe-fonts.github.io/source-code-pro">Source Code Pro</a> 12px.</blockquote></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Getting started | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Requirements | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The installation script requires [`dconf`][dconf] and `uuidgen` ([`util-linux`][util-linux]) to be available on your *PATH* to create a new profile and generate a random profile UUID. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Some distributions may require additional package(s): | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* `dconf-tools` - transitional package for `dconf-cli` and `dconf-editor` ([Debian][debian-dconf-tools], [Mint][mint-dconf-tools], [Ubuntu][ubuntu-dconf-tools]) | 
				
			||||||
 | 
					* `dconf-gsettings-backend` to ensure *GSettings* compatibility ([Debian][debian-dconf-gsettings-backend], [Mint][mint-dconf-gsettings-backend], [Ubuntu][ubuntu-dconf-gsettings-backend]) | 
				
			||||||
 | 
					* `dconf-cli` to ensure full CLI support ([Debian][debian-dconf-cli], [Mint][mint-dconf-cli], [Ubuntu][ubuntu-dconf-cli]) | 
				
			||||||
 | 
					* `dconf-service`  to ensure D-Bus support for the *GSettings* backend ([Debian][debian-dconf-service], [Mint][mint-dconf-service], [Ubuntu][ubuntu-dconf-service]) | 
				
			||||||
 | 
					* `uuid-runtime` to provide runtime components for the Universally Unique ID library ([Debian][debian-uuid-runtime], [Mint][mint-uuid-runtime], [Ubuntu][ubuntu-uuid-runtime]) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The packages should be available for all distributions using the GNOME Terminal by default. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Installation | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Clone this repository  | 
				
			||||||
 | 
					    ```sh | 
				
			||||||
 | 
					    git clone https://github.com/arcticicestudio/nord-gnome-terminal.git | 
				
			||||||
 | 
					    cd nord-gnome-terminal/src | 
				
			||||||
 | 
					    ``` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. Run the [`nord.sh`](https://github.com/arcticicestudio/nord-gnome-terminal/blob/develop/src/nord.sh) shell script to start the automated installation. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A list of available options can be shown with `-h`, `--help`. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh | 
				
			||||||
 | 
					./nord.sh --help | 
				
			||||||
 | 
					``` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Usage**: `nord.sh [OPTIONS]` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* `-h`, `--help` - Shows the help | 
				
			||||||
 | 
					* `-l`, `--loglevel <LOG_LEVEL>`, `--loglevel=<LOG_LEVEL>` - Set the log level | 
				
			||||||
 | 
					  * `0` *ERROR* | 
				
			||||||
 | 
					  * `1` *WARNING* | 
				
			||||||
 | 
					  * `2` *SUCCESS* (default) | 
				
			||||||
 | 
					  * `3` *INFO* | 
				
			||||||
 | 
					  * `4` *DEBUG* | 
				
			||||||
 | 
					* `-p`, `--profile <PROFILE_NAME>`, `--profile=<PROFILE_NAME>` - The name of the profile to install the theme to. If not specified a new profile as clone of the *default* profile will be created. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!-- TODO: It will create a `Nord` GNOME Terminal profile. --> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Profile Handling | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The script detects available profiles and | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* **clones the default profile if no specific profile has been specified** - this ensures that no custom profile colors are overriden | 
				
			||||||
 | 
					* **allows to install the theme for a specific profile** - the name of the profile the theme should be installed to can be passed using the `-p`/`--profile` option | 
				
			||||||
 | 
					* **handles already existing Nord profiles via version comparison** - if the *Nord* profile already exists and the script version is less than the installed version a confirmation is shown whether to override the theme of abort the installation, otherwise the profile will be | 
				
			||||||
 | 
					  * **updated** if the script version is **greater than** the installed version | 
				
			||||||
 | 
					  * **reinstalled** if the installed version is **equal to** the script version | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Log Level | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The script provides a `-l`/`--loglevel` option to allow to define the log level. Available levels are | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* `0` *ERROR* - The script will run in *silent mode*, only error messages are shown | 
				
			||||||
 | 
					* `1` *WARNING* - Shows *warning* messages | 
				
			||||||
 | 
					* `2` *SUCCESS* (default) - Shows *success* messages | 
				
			||||||
 | 
					* `3` *INFO* - Shows additional *information* messages | 
				
			||||||
 | 
					* `4` *DEBUG* - Runs the script in *debug mode* showing additional debug messages | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Activation | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Set as default profile | 
				
			||||||
 | 
					  1. Open the *Preferences* | 
				
			||||||
 | 
					  2. Switch to the *Profiles* tab | 
				
			||||||
 | 
					  3. Select `Nord` from the drop-down menu labeled with *Profile used when launching a new terminal* | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					![][scrot-readme-default-profile] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Lazy profile change | 
				
			||||||
 | 
					  1. Right-click anywhere inside the terminal window to open the context menu | 
				
			||||||
 | 
					  2. Hover over *Profiles* and select `Nord` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					![][scrot-readme-lazy-profile-change] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Screenshots | 
				
			||||||
 | 
					<p align="center"><strong>htop</strong><br><img src="https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/assets/scrot-htop.png"/></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Development | 
				
			||||||
 | 
					[](https://github.com/arcticicestudio/nord-gnome-terminal/blob/v0.1.0/CHANGELOG.md) [](http://nvie.com/posts/a-successful-git-branching-model) [](https://github.com/arcticicestudio/arcver) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Contribution | 
				
			||||||
 | 
					Please report issues/bugs, feature requests and suggestions for improvements to the [issue tracker](https://github.com/arcticicestudio/nord-gnome-terminal/issues). | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center"><img src="https://raw.githubusercontent.com/arcticicestudio/nord-docs/develop/assets/images/nord/repository-footer-separator.svg?sanitize=true" /></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center">Copyright © 2016-present Arctic Ice Studio</p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p align="center"><a href="https://github.com/arcticicestudio/nord-gnome-terminal/blob/develop/LICENSE.md"><img src="https://img.shields.io/badge/License-MIT-5E81AC.svg?style=flat-square"/></a> <a href="https://creativecommons.org/licenses/by-sa/4.0"><img src="https://img.shields.io/badge/License-CC_BY--SA_4.0-5E81AC.svg?style=flat-square"/></a></p> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dconf]: https://wiki.gnome.org/Projects/dconf | 
				
			||||||
 | 
					[debian-dconf-cli]: https://packages.debian.org/search?keywords=dconf-cli | 
				
			||||||
 | 
					[debian-dconf-gsettings-backend]: https://packages.debian.org/search?keywords=dconf-gsettings-backend | 
				
			||||||
 | 
					[debian-dconf-service]: https://packages.debian.org/search?keywords=dconf-service | 
				
			||||||
 | 
					[debian-dconf-tools]: https://packages.debian.org/search?keywords=dconf-tools | 
				
			||||||
 | 
					[debian-uuid-runtime]: https://packages.debian.org/search?keywords=uuid-runtime | 
				
			||||||
 | 
					[mint-dconf-cli]: https://community.linuxmint.com/software/view/dconf-cli | 
				
			||||||
 | 
					[mint-dconf-gsettings-backend]: https://community.linuxmint.com/software/view/dconf-gsettings-backend | 
				
			||||||
 | 
					[mint-dconf-service]: https://community.linuxmint.com/software/view/dconf-service | 
				
			||||||
 | 
					[mint-dconf-tools]: https://community.linuxmint.com/software/view/dconf-tools | 
				
			||||||
 | 
					[mint-uuid-runtime]: https://community.linuxmint.com/software/view/uuid-runtime | 
				
			||||||
 | 
					[scrot-readme-default-profile]: https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/assets/scrot-readme-default-profile.png | 
				
			||||||
 | 
					[scrot-readme-lazy-profile-change]: https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/assets/scrot-readme-lazy-profile-change.png | 
				
			||||||
 | 
					[ubuntu-dconf-cli]: https://packages.ubuntu.com/search?keywords=dconf-cli | 
				
			||||||
 | 
					[ubuntu-dconf-gsettings-backend]: https://packages.ubuntu.com/search?keywords=dconf-gsettings-backend | 
				
			||||||
 | 
					[ubuntu-dconf-service]: https://packages.ubuntu.com/search?keywords=dconf-service | 
				
			||||||
 | 
					[ubuntu-dconf-tools]: https://packages.ubuntu.com/search?keywords=dconf-tools | 
				
			||||||
 | 
					[ubuntu-uuid-runtime]: https://packages.ubuntu.com/search?keywords=uuid-runtime | 
				
			||||||
 | 
					[util-linux]: https://www.kernel.org/pub/linux/utils/util-linux | 
				
			||||||
									
										
											File diff suppressed because one or more lines are too long
										
									
								
							
						| 
		 After Width: | Height: | Size: 3.9 KiB  | 
| 
		 After Width: | Height: | Size: 107 KiB  | 
| 
		 After Width: | Height: | Size: 330 KiB  | 
| 
		 After Width: | Height: | Size: 45 KiB  | 
| 
		 After Width: | Height: | Size: 36 KiB  | 
@ -0,0 +1,447 @@ | 
				
			|||||||
 | 
					#!/usr/bin/env bash | 
				
			||||||
 | 
					# Copyright (c) 2016-present Arctic Ice Studio <development@arcticicestudio.com> | 
				
			||||||
 | 
					# Copyright (c) 2016-present Sven Greb <code@svengreb.de> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Project:    Nord GNOME Terminal | 
				
			||||||
 | 
					# Repository: https://github.com/arcticicestudio/nord-gnome-terminal | 
				
			||||||
 | 
					# License:    MIT | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Appends the given profile UUID to the profile list. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @param $1 the UUID to be appended | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					append_profile_uuid_to_list() { | 
				
			||||||
 | 
					  local uuid list | 
				
			||||||
 | 
					  uuid="$1" | 
				
			||||||
 | 
					  list=$(gsettings get "$GSETTINGS_PROFILELIST_PATH" list) | 
				
			||||||
 | 
					  gsettings set "$GSETTINGS_PROFILELIST_PATH" list "${list%]*}, '$uuid']" | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Writes the Nord GNOME Terminal theme colors and configurations as dconf key-value pairs to the target profile. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globread profile_name | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					apply() { | 
				
			||||||
 | 
					  local \ | 
				
			||||||
 | 
					    nord0="#2E3440" \ | 
				
			||||||
 | 
					    nord1="#3B4252" \ | 
				
			||||||
 | 
					    nord3="#4C566A" \ | 
				
			||||||
 | 
					    nord4="#D8DEE9" \ | 
				
			||||||
 | 
					    nord5="#E5E9F0" \ | 
				
			||||||
 | 
					    nord6="#ECEFF4" \ | 
				
			||||||
 | 
					    nord7="#8FBCBB" \ | 
				
			||||||
 | 
					    nord8="#88C0D0" \ | 
				
			||||||
 | 
					    nord9="#81A1C1" \ | 
				
			||||||
 | 
					    nord11="#BF616A" \ | 
				
			||||||
 | 
					    nord13="#EBCB8B" \ | 
				
			||||||
 | 
					    nord14="#A3BE8C" \ | 
				
			||||||
 | 
					    nord15="#B48EAD" | 
				
			||||||
 | 
					  local \ | 
				
			||||||
 | 
					    nord0_rgb="rgb(46,52,64)" | 
				
			||||||
 | 
					    nord1_rgb="rgb(59,66,82)" | 
				
			||||||
 | 
					    nord4_rgb="rgb(216,222,233)" | 
				
			||||||
 | 
					    nord8_rgb="rgb(136,192,208)" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write palette "['$nord1', '$nord11', '$nord14', '$nord13', '$nord9', '$nord15', '$nord8', '$nord5', '$nord3', '$nord11', '$nord14', '$nord13', '$nord9', '$nord15', '$nord7', '$nord6']" | 
				
			||||||
 | 
					  log 4 "Applied Nord color palette" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write background-color "'$nord0'" | 
				
			||||||
 | 
					  _write foreground-color "'$nord4'" | 
				
			||||||
 | 
					  _write use-transparent-background "false" | 
				
			||||||
 | 
					  log 4 "Applied background- and foreground colors" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write bold-color "'$nord4'" | 
				
			||||||
 | 
					  _write bold-color-same-as-fg "true" | 
				
			||||||
 | 
					  log 4 "Applied bold color and configuration" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write use-theme-colors "false" | 
				
			||||||
 | 
					  _write use-theme-background "false" | 
				
			||||||
 | 
					  _write use-theme-transparency "false" | 
				
			||||||
 | 
					  log 4 "Applied system theme compability configuration" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write cursor-colors-set "true" | 
				
			||||||
 | 
					  _write cursor-foreground-color "'$nord1_rgb'" | 
				
			||||||
 | 
					  _write cursor-background-color "'$nord4_rgb'" | 
				
			||||||
 | 
					  log 4 "Applied cursor colors and configuration" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write highlight-colors-set "true" | 
				
			||||||
 | 
					  _write highlight-foreground-color "'$nord0_rgb'" | 
				
			||||||
 | 
					  _write highlight-background-color "'$nord8_rgb'" | 
				
			||||||
 | 
					  log 4 "Applied highlight colors and configuration" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _write "$NORD_GNOME_TERMINAL_VERSION_DCONF_KEY" "'$NORD_GNOME_TERMINAL_VERSION'" | 
				
			||||||
 | 
					  log 4 "Set Nord GNOME Terminal version key of the '$profile_name' profile" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  log 3 "Applied theme colors and configurations" | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Applies the Nord GNOME Terminal theme with version comparison. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @param $1 the version string to compare against | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					apply_version_compared() { | 
				
			||||||
 | 
					  local version | 
				
			||||||
 | 
					  version=$1 | 
				
			||||||
 | 
					  case "$(vercomp "$NORD_GNOME_TERMINAL_VERSION" "$version"; echo $?)" in | 
				
			||||||
 | 
					    0) | 
				
			||||||
 | 
					      log 3 "Reinstalling Nord GNOME Terminal since the version equaled the version of the '$profile_name' profile!"; | 
				
			||||||
 | 
					      apply; | 
				
			||||||
 | 
					      log 2 "Reinstalled Nord GNOME Terminal version $NORD_GNOME_TERMINAL_VERSION for the '$profile_name' profile!"; | 
				
			||||||
 | 
					      exit 0;; | 
				
			||||||
 | 
					    1) | 
				
			||||||
 | 
					      log 4 "The script version is newer than the currently installed theme ($NORD_GNOME_TERMINAL_VERSION > $version)" | 
				
			||||||
 | 
					      apply; | 
				
			||||||
 | 
					      log 2 "The '$profile_name' profile has been updated successfully from version $version to $NORD_GNOME_TERMINAL_VERSION"; | 
				
			||||||
 | 
					      exit 0;; | 
				
			||||||
 | 
					    2) | 
				
			||||||
 | 
					      log 1 "The detected Nord GNOME Terminal version $version of the '$profile_name' profile is greater than the version that will be applied!"; | 
				
			||||||
 | 
					      printf "${_ctb}> [?]${_ct} Override current profile version %s with script version %s? (${_ctb}y${_cr}/${_ctb}n${_cr})" "$version" "$NORD_GNOME_TERMINAL_VERSION" | 
				
			||||||
 | 
					      read -r -n 1 -s confirmation; | 
				
			||||||
 | 
					      echo | 
				
			||||||
 | 
					      case $confirmation in | 
				
			||||||
 | 
					        [Yy]* ) | 
				
			||||||
 | 
					          apply; | 
				
			||||||
 | 
					          log 2 "Nord GNOME Terminal version $NORD_GNOME_TERMINAL_VERSION has been successfully applied!"; | 
				
			||||||
 | 
					          exit 0;; | 
				
			||||||
 | 
					        [Nn]* ) | 
				
			||||||
 | 
					          log 0 "Installation canceled by user!"; | 
				
			||||||
 | 
					          exit 1;; | 
				
			||||||
 | 
					        * ) | 
				
			||||||
 | 
					          log 0 "'$confirmation' is not a valid input!"; | 
				
			||||||
 | 
					          exit 1;; | 
				
			||||||
 | 
					      esac | 
				
			||||||
 | 
					  esac | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Checks the GNOME Terminal version for the required migration compability (>= 3.8). | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globwrite gnome_terminal_version | 
				
			||||||
 | 
					# @return 0 if the version is compatible (>= 3.8), 1 otherwise | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					check_migrated_version_comp() { | 
				
			||||||
 | 
					  gnome_terminal_version="$(expr "$(LANGUAGE=en_US.UTF-8 gnome-terminal --version)" : '^[^[:digit:]]* \(\([[:digit:]]*\.*\)*\)')" | 
				
			||||||
 | 
					  if [[ ("$(echo "$gnome_terminal_version" | cut -d"." -f1)" = "3" && \ | 
				
			||||||
 | 
					         "$(echo "$gnome_terminal_version" | cut -d"." -f2)" -ge 8) || \ | 
				
			||||||
 | 
					         "$(echo "$gnome_terminal_version" | cut -d"." -f1)" -ge 4 ]]; then | 
				
			||||||
 | 
					    log 3 "Detected compatible GNOME Terminal version $gnome_terminal_version (>= 3.8 dconf migrated)" | 
				
			||||||
 | 
					    return 0 | 
				
			||||||
 | 
					  else | 
				
			||||||
 | 
					    log 1 "Detected incompatible GNOME Terminal version $gnome_terminal_version (< 3.8)" | 
				
			||||||
 | 
					    return 1 | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Cleans up the script execution by unsetting declared functions and variables. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					cleanup() { | 
				
			||||||
 | 
					  log 4 "Cleaning up script execution by unsetting declared functions and variables" | 
				
			||||||
 | 
					  unset -v _cr _ct _ctb _ct_highlight _ct_primary _ctb_error _ctb_highlight _ctb_primary _ctb_success _ctb_warning | 
				
			||||||
 | 
					  unset -v NORD_GNOME_TERMINAL_SCRIPT_OPTS NORD_GNOME_TERMINAL_VERSION NORD_GNOME_TERMINAL_VERSION_DCONF_KEY NORD_PROFILE_VISIBLE_NAME log_level DEPENDENCIES DCONF_PROFILE_BASE_PATH GSETTINGS_PROFILELIST_PATH gnome_terminal_version profile_name profile_uuid | 
				
			||||||
 | 
					  unset -f append_profile_uuid_to_list apply check_migrated_version_comp cleanup clone_default_profile get_profiles get_profile_uuid_by_name log print_help validate_dependencies vercomp _write | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Clones the default profile, generates and saves the new UUID and adds it to the profile list. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globwrite profile_uuid | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					clone_default_profile() { | 
				
			||||||
 | 
					  local uuid | 
				
			||||||
 | 
					  uuid="$(gsettings get "$GSETTINGS_PROFILELIST_PATH" default | tr -d \')" | 
				
			||||||
 | 
					  profile_uuid="$(uuidgen)" | 
				
			||||||
 | 
					  dconf dump "$DCONF_PROFILE_BASE_PATH"/:"$uuid"/ | dconf load "$DCONF_PROFILE_BASE_PATH"/:"$profile_uuid"/ | 
				
			||||||
 | 
					  dconf write "$DCONF_PROFILE_BASE_PATH"/:"$profile_uuid"/visible-name "'$NORD_PROFILE_VISIBLE_NAME'" | 
				
			||||||
 | 
					  append_profile_uuid_to_list "$profile_uuid" | 
				
			||||||
 | 
					  log 3 "Cloned the default profile '$uuid' with new UUID '$profile_uuid'" | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gets the current Nord GNOME Terminal version. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globread NORD_GNOME_TERMINAL_VERSION_DCONF_KEY DCONF_PROFILE_BASE_PATH | 
				
			||||||
 | 
					# @param $1 the UUID of the profile to check | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					get_current_version() { | 
				
			||||||
 | 
					  local uuid version | 
				
			||||||
 | 
					  uuid=$1 | 
				
			||||||
 | 
					  version= | 
				
			||||||
 | 
					  printf "$(dconf read $DCONF_PROFILE_BASE_PATH/:"$uuid"/$NORD_GNOME_TERMINAL_VERSION_DCONF_KEY | tr -d "'")" | 
				
			||||||
 | 
					  return 0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gets the available GNOME Terminal profiles. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globwrite profiles | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					get_profiles() { | 
				
			||||||
 | 
					  profiles=($(gsettings get "$GSETTINGS_PROFILELIST_PATH" list | tr -d "[]\',")) | 
				
			||||||
 | 
					  log 3 "Available profile UUIDs: ${profiles[*]}" | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gets the UUID for the given profile name. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @param $1 the name of the profile to get the UUID from | 
				
			||||||
 | 
					# @return the UUID of the profile, none otherwise | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					get_profile_uuid_by_name() { | 
				
			||||||
 | 
					  local name=$1 | 
				
			||||||
 | 
					  for idx in "${!profiles[@]}"; do | 
				
			||||||
 | 
					    if [[ "$(dconf read "$DCONF_PROFILE_BASE_PATH"/:"${profiles[idx]}"/visible-name)" == "'$name'" ]]; then | 
				
			||||||
 | 
					      printf "%s" "${profiles[idx]}" | 
				
			||||||
 | 
					      return 0 | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					  done | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Prints a message with a prefixed label to STDOUT/STDERR for the given log level. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# When no log level is specified, "DEFAULT" is used. | 
				
			||||||
 | 
					# The minimum log level is defined by the "log_level" global. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# Log Levels: | 
				
			||||||
 | 
					#   0 ERROR | 
				
			||||||
 | 
					#   1 WARNING | 
				
			||||||
 | 
					#   2 SUCCESS | 
				
			||||||
 | 
					#   3 INFO | 
				
			||||||
 | 
					#   4 DEBUG | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globread | 
				
			||||||
 | 
					#   log_level | 
				
			||||||
 | 
					#   _cr | 
				
			||||||
 | 
					#   _ct | 
				
			||||||
 | 
					#   _ctb | 
				
			||||||
 | 
					#   _ctb_error | 
				
			||||||
 | 
					#   _ctb_highlight | 
				
			||||||
 | 
					#   _ctb_primary | 
				
			||||||
 | 
					#   _ctb_success | 
				
			||||||
 | 
					#   _ctb_warning | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					log () { | 
				
			||||||
 | 
					  declare -a label color | 
				
			||||||
 | 
					  local num_regex='^[0-9]+$' | 
				
			||||||
 | 
					  local level=$1 | 
				
			||||||
 | 
					  label=([0]="[ERR]" [1]="[WARN]" [2]="[SUCCESS]" [3]="[INFO]" [4]="[DEBUG]") | 
				
			||||||
 | 
					  color=([0]="$_ctb_error" [1]="$_ctb_warning" [2]="$_ctb_success" [3]="$_ctb_primary" [4]="$_ctb_highlight") | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $level =~ $num_regex ]]; then | 
				
			||||||
 | 
					    shift | 
				
			||||||
 | 
					    if [[ -n ${log_level} && ${log_level} -ge ${level} ]]; then | 
				
			||||||
 | 
					      printf "${color[$level]}${label[$level]} ${_ct}%s${_cr}\n" "$@" | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					  else | 
				
			||||||
 | 
					    printf "${_ctb}> ${_ct}%s${_cr}\n" "$@" | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Prints the help- and usage information. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					print_help() { | 
				
			||||||
 | 
					  echo -e -n "\ | 
				
			||||||
 | 
					  \r${_ctb}Usage: ${_ct_primary}${0##*/} ${_ctb_subtle}[OPTIONS] | 
				
			||||||
 | 
					  ${_ctb_highlight}-h${_ct},${_ctb_highlight} --help ${_ct} | 
				
			||||||
 | 
					  Show the help | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ${_ctb_highlight}-l${_ct},${_ctb_highlight} --loglevel <LOG_LEVEL>${_ct},${_ctb_highlight} --loglevel=<LOG_LEVEL> ${_ct} | 
				
			||||||
 | 
					  Set the log level | 
				
			||||||
 | 
					    ${_ctb_primary}0 ${_ctb}ERROR${_cr} The script will run in silent mode, only error messages are shown | 
				
			||||||
 | 
					    ${_ctb_primary}1 ${_ctb}WARNING${_cr} Shows warning messages | 
				
			||||||
 | 
					    ${_ctb_primary}2 ${_ctb}SUCCESS${_cr} Shows success messages (default) | 
				
			||||||
 | 
					    ${_ctb_primary}3 ${_ctb}INFO${_cr} Shows additional information messages | 
				
			||||||
 | 
					    ${_ctb_primary}4 ${_ctb}DEBUG${_cr} Runs the script in debug mode showing additional debug messages | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ${_ctb_highlight}-p${_ct},${_ctb_highlight} --profile <PROFILE_NAME>${_ct},${_ctb_highlight} --profile=<PROFILE_NAME>${_ct} | 
				
			||||||
 | 
					  The name of the profile to install the theme to. If not specified a new profile as clone of the 'default' profile will be created.${_cr}\n" | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Validates all required dependencies. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @param $1 array of required dependencies to validate | 
				
			||||||
 | 
					# @return 0 if all required dependencies are validated, 1 otherwise | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					validate_dependencies() { | 
				
			||||||
 | 
					  declare -a missing_deps deps=("${!1}") | 
				
			||||||
 | 
					  for exec in "${deps[@]}"; do | 
				
			||||||
 | 
					    if ! command -v "${exec}" > /dev/null 2>&1; then | 
				
			||||||
 | 
					      missing_deps+=(${exec}) | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					  done | 
				
			||||||
 | 
					  if [ ${#missing_deps[*]} -eq 0 ]; then | 
				
			||||||
 | 
					    log 3 "Validated required dependencies: ${deps[*]}" | 
				
			||||||
 | 
					    return 0 | 
				
			||||||
 | 
					  else | 
				
			||||||
 | 
					    log 1 "Missing required dependencies: ${_ct_highlight}${missing_deps[*]}${_cr}" | 
				
			||||||
 | 
					    return 1 | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compares whether the given version string is greater than, equal to or less than the given comparative version string. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @param $1 the version string to be compared | 
				
			||||||
 | 
					# @param $2 the version string to compare against | 
				
			||||||
 | 
					# @return 0 if the versions are equal, 1 if the version is greater or 2 if the version is less than the comparative | 
				
			||||||
 | 
					# version | 
				
			||||||
 | 
					# @ since 0.2.0 | 
				
			||||||
 | 
					vercomp() { | 
				
			||||||
 | 
					  # v1 equals v2 | 
				
			||||||
 | 
					  if [[ "$1" == "$2" ]]; then | 
				
			||||||
 | 
					    return 0 | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local IFS=. | 
				
			||||||
 | 
					  local i v1=($1) v2=($2) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Fill empty fields with zeros | 
				
			||||||
 | 
					  for ((i=${#v1[@]}; i<${#v2[@]}; i++)); do | 
				
			||||||
 | 
					    v1[i]=0 | 
				
			||||||
 | 
					  done | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for ((i=0; i<${#v1[@]}; i++)); do | 
				
			||||||
 | 
					    if [[ -z ${v2[i]} ]]; then | 
				
			||||||
 | 
					     # Fill empty fields with zeros | 
				
			||||||
 | 
					      v2[i]=0 | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # v1 is greater than v2 | 
				
			||||||
 | 
					    if ((10#${v1[i]} > 10#${v2[i]})); then | 
				
			||||||
 | 
					      return 1 | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					    # v1 is less than v2 | 
				
			||||||
 | 
					    if ((10#${v1[i]} < 10#${v2[i]})); then | 
				
			||||||
 | 
					      return 2 | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					  done | 
				
			||||||
 | 
					  return 0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Shorthand function to write the given key-value pair to the profile. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @globread DCONF_PROFILE_BASE_PATH profile_uuid | 
				
			||||||
 | 
					# @param $1 the profile key to be written | 
				
			||||||
 | 
					# @param $2 the value to be assigned to the given profile key | 
				
			||||||
 | 
					# @return none | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					_write() { | 
				
			||||||
 | 
					  local key="$1" | 
				
			||||||
 | 
					  local value="$2" | 
				
			||||||
 | 
					  dconf write "$DCONF_PROFILE_BASE_PATH/:$profile_uuid/$key" "$value" | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Catches terminal interrupt- and termination signals and prints a message before exiting the script execution. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @return 1 | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					trap 'printf "${_ctb_error}User aborted.${_cr}\n" && exit 1' SIGINT SIGTERM | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Exit hook that runs the 'cleanup' function before exiting the script. | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# @since 0.2.0 | 
				
			||||||
 | 
					trap cleanup EXIT | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare -a DEPENDENCIES profiles | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_cr="\e[0m" | 
				
			||||||
 | 
					_ct="\e[0;37m" | 
				
			||||||
 | 
					_ctb="\e[1;37m" | 
				
			||||||
 | 
					_ct_highlight="\e[0;34m" | 
				
			||||||
 | 
					_ct_primary="\e[0;36m" | 
				
			||||||
 | 
					_ctb_error="\e[1;31m" | 
				
			||||||
 | 
					_ctb_highlight="\e[1;34m" | 
				
			||||||
 | 
					_ctb_primary="\e[1;36m" | 
				
			||||||
 | 
					_ctb_subtle="\e[1;30m" | 
				
			||||||
 | 
					_ctb_success="\e[1;32m" | 
				
			||||||
 | 
					_ctb_warning="\e[1;33m" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NORD_GNOME_TERMINAL_SCRIPT_OPTS=$(getopt -o hl:p: --long help,loglevel:,profile: -n 'nord.sh' -- "$@") | 
				
			||||||
 | 
					NORD_GNOME_TERMINAL_VERSION=0.1.0 | 
				
			||||||
 | 
					NORD_GNOME_TERMINAL_VERSION_DCONF_KEY=nord-gnome-terminal-version | 
				
			||||||
 | 
					NORD_PROFILE_VISIBLE_NAME="Nord" | 
				
			||||||
 | 
					log_level=2 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# List of required executable dependencies | 
				
			||||||
 | 
					DEPENDENCIES=(dconf expr gsettings uuidgen) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The dconf- and GSettings paths | 
				
			||||||
 | 
					DCONF_PROFILE_BASE_PATH=/org/gnome/terminal/legacy/profiles: | 
				
			||||||
 | 
					GSETTINGS_PROFILELIST_PATH=org.gnome.Terminal.ProfilesList | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The detected GNOME Terminal version | 
				
			||||||
 | 
					gnome_terminal_version= | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The profile name and UUID to apply the theme on | 
				
			||||||
 | 
					profile_name= | 
				
			||||||
 | 
					profile_uuid= | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					eval set -- "$NORD_GNOME_TERMINAL_SCRIPT_OPTS" | 
				
			||||||
 | 
					while true; do | 
				
			||||||
 | 
					  case "$1" in | 
				
			||||||
 | 
					    --loglevel=* ) log_level=${1#*=}; shift ;; | 
				
			||||||
 | 
					    -l | --loglevel ) log_level=$2; shift ;; | 
				
			||||||
 | 
					    -h | --help ) print_help; exit 0; break ;; | 
				
			||||||
 | 
					    --profile=* ) profile_name=${1#*=}; shift ;; | 
				
			||||||
 | 
					    -p | --profile ) profile_name=$2; shift ;; | 
				
			||||||
 | 
					    -- ) shift; break ;; | 
				
			||||||
 | 
					    * ) break ;; | 
				
			||||||
 | 
					  esac | 
				
			||||||
 | 
					  shift | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if validate_dependencies DEPENDENCIES[@]; then | 
				
			||||||
 | 
					   | 
				
			||||||
 | 
					  if ! check_migrated_version_comp; then | 
				
			||||||
 | 
					    log 0 "The installed GNOME Terminal version '$gnome_terminal_version' is not compatible with the required (dconf migrated) version >= 3.8!" | 
				
			||||||
 | 
					    exit 1 | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Check for available profiles and validate that at least the default profile is available | 
				
			||||||
 | 
					  get_profiles | 
				
			||||||
 | 
					  if [[ ${#profiles[*]} -eq 0 ]]; then | 
				
			||||||
 | 
					    log 1 "No profiles found!" | 
				
			||||||
 | 
					    log 0 "There must be at least one default profile!" | 
				
			||||||
 | 
					    exit 1 | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Validate- and resolve the UUID if a profile name has been passed | 
				
			||||||
 | 
					  if [[ -n $profile_name ]]; then | 
				
			||||||
 | 
					    profile_uuid="$(get_profile_uuid_by_name "$profile_name")" | 
				
			||||||
 | 
					    if [[ -n $profile_uuid ]]; then | 
				
			||||||
 | 
					      log 3 "Resolved profile '$profile_name' to UUID '$profile_uuid'" | 
				
			||||||
 | 
					      curr_ver="$(get_current_version "$profile_uuid")" | 
				
			||||||
 | 
					      if [[ -n $curr_ver ]]; then | 
				
			||||||
 | 
					        apply_version_compared "$curr_ver" | 
				
			||||||
 | 
					      else | 
				
			||||||
 | 
					        apply | 
				
			||||||
 | 
					        log 2 "Nord GNOME Terminal version $NORD_GNOME_TERMINAL_VERSION has been successfully applied to the '$profile_name' profile" | 
				
			||||||
 | 
					        exit 0 | 
				
			||||||
 | 
					      fi | 
				
			||||||
 | 
					    else | 
				
			||||||
 | 
					      log 0 "$profile_name is not a valid profile name!"; | 
				
			||||||
 | 
					      exit 1 | 
				
			||||||
 | 
					    fi | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Check for an already existing 'Nord' profile and update it | 
				
			||||||
 | 
					  profile_uuid="$(get_profile_uuid_by_name $NORD_PROFILE_VISIBLE_NAME)" | 
				
			||||||
 | 
					  if [[ -n $profile_uuid ]]; then | 
				
			||||||
 | 
					    profile_name="$NORD_PROFILE_VISIBLE_NAME" | 
				
			||||||
 | 
					    log 4 "Found already existing '$NORD_PROFILE_VISIBLE_NAME' profile with UUID '$profile_uuid'" | 
				
			||||||
 | 
					    log "Updating already existing '$NORD_PROFILE_VISIBLE_NAME' profile" | 
				
			||||||
 | 
					    apply_version_compared "$(get_current_version $profile_uuid)" | 
				
			||||||
 | 
					  fi | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  clone_default_profile | 
				
			||||||
 | 
					  apply | 
				
			||||||
 | 
					  log 2 "Nord GNOME Terminal version $NORD_GNOME_TERMINAL_VERSION has been successfully applied to the newly created '$NORD_PROFILE_VISIBLE_NAME' profile" | 
				
			||||||
 | 
					  exit 0 | 
				
			||||||
 | 
					else | 
				
			||||||
 | 
					  log 0 "Required dependencies were not fulfilled: ${DEPENDENCIES[*]}" | 
				
			||||||
 | 
					  exit 1 | 
				
			||||||
 | 
					fi | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue