Skip to content

Commit 2d55850

Browse files
committed
Adjusted valet default behaviour that removes unmounted parked paths
1 parent 9f2c38c commit 2d55850

File tree

5 files changed

+58
-25
lines changed

5 files changed

+58
-25
lines changed

extension.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,24 @@ const ExtensionUtils = imports.misc.extensionUtils;
88
const Me = ExtensionUtils.getCurrentExtension();
99
const Utils = Me.imports.utils;
1010

11-
const Valet = GObject.registerClass(
12-
class Valet extends PanelMenu.Button {
11+
const PhpLaravelValet = GObject.registerClass(
12+
class PhpLaravelValet extends PanelMenu.Button {
1313
_init() {
1414
super._init(0.0, null, false);
1515

16+
this._settings = ExtensionUtils.getSettings('org.gnome.shell.extensions.php-laravel-valet');
17+
1618
this._indicatorText = new St.Label({text: 'Loading...', y_align: Clutter.ActorAlign.CENTER});
1719
this.add_actor(this._indicatorText);
1820

19-
this.menu.connect('open-state-changed', (menu, open) => {
20-
if (open) this._refreshMenu()
21-
});
21+
// Initialising the menu with demo item
22+
this.menu.addMenuItem(new PopupMenu.PopupMenuItem('Loading...'));
2223

2324
this._refreshIndicator();
2425

25-
this._refreshMenu();
26+
this.menu.connect('open-state-changed', (menu, open) => {
27+
if (open) this._refreshMenu()
28+
});
2629
}
2730

2831
_refreshIndicator() {
@@ -76,9 +79,10 @@ const Valet = GObject.registerClass(
7679
}
7780

7881
_switchPhp(version) {
82+
const terminal = this._settings.get_string('default-shell').split(' ');
7983
try {
8084
let proc = Gio.Subprocess.new(
81-
['x-terminal-emulator', '-e', 'valet', 'use', version],
85+
terminal.concat(['valet', 'use', version]),
8286
Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE
8387
);
8488

@@ -92,14 +96,14 @@ const Valet = GObject.registerClass(
9296
}
9397
)
9498

95-
let valetIndicator = null;
99+
let phpLaravelValet = null;
96100

97101
function enable() {
98-
valetIndicator = new Valet();
99-
Main.panel.addToStatusArea('valet', valetIndicator);
102+
phpLaravelValet = new PhpLaravelValet();
103+
Main.panel.addToStatusArea('php-laravel-valet', phpLaravelValet);
100104
}
101105

102106
function disable() {
103-
valetIndicator.destroy();
104-
valetIndicator = null;
107+
phpLaravelValet.destroy();
108+
phpLaravelValet = null;
105109
}

metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
"41",
88
"42"
99
],
10-
"version": 2,
10+
"version": 3,
1111
"url": "https://github.com/rahulhaque/php-laravel-valet-gnome-shell-extension"
1212
}

schemas/gschemas.compiled

464 Bytes
Binary file not shown.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<schemalist>
3+
<schema id="org.gnome.shell.extensions.php-laravel-valet" path="/org/gnome/shell/extensions/php-laravel-valet/">
4+
<key type="s" name="position-in-panel">
5+
<default>'right'</default>
6+
<summary>Position in Panel</summary>
7+
<description>Position in Panel ('left', 'center', 'right')</description>
8+
</key>
9+
<key type="i" name="panel-box-index">
10+
<default>0</default>
11+
<summary>Index in panel box</summary>
12+
<description>Index within the selected panel box (0: first, 1: second, ..., -1: last)</description>
13+
</key>
14+
<key type="s" name="default-shell">
15+
<default>'x-terminal-emulator -e'</default>
16+
<summary>Default shell to execute extension commands</summary>
17+
<description>Default shell to execute extension commands</description>
18+
</key>
19+
</schema>
20+
</schemalist>

utils.js

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
const Bytes = imports.byteArray;
44
const GLib = imports.gi.GLib;
5+
const ExtensionUtils = imports.misc.extensionUtils;
6+
const Me = ExtensionUtils.getCurrentExtension();
7+
8+
const _settings = ExtensionUtils.getSettings('org.gnome.shell.extensions.php-laravel-valet');
59

610
function safeSpawn(cmd) {
711
try {
@@ -11,18 +15,9 @@ function safeSpawn(cmd) {
1115
}
1216
}
1317

14-
function valetStatus() {
15-
const res = safeSpawn('/bin/bash -c "valet --version && valet status"');
16-
if (res[3] == 0) return Bytes.toString(res[1]).split('\n').filter(item => !!item);
17-
return false;
18-
}
19-
20-
function valetRestart() {
21-
GLib.spawn_command_line_async('x-terminal-emulator -e valet restart');
22-
}
23-
24-
function valetStop() {
25-
GLib.spawn_command_line_async('x-terminal-emulator -e valet stop');
18+
function shellSpawn(cmd) {
19+
const terminal = _settings.get_string('default-shell');
20+
GLib.spawn_command_line_async(`${terminal} ${cmd}`);
2621
}
2722

2823
function phpVersion() {
@@ -36,3 +31,17 @@ function phpList() {
3631
if (res[3] == 0) return Bytes.toString(res[1]).split('\n').filter(item => !!item).reverse();
3732
return false;
3833
}
34+
35+
function valetStatus() {
36+
const res = safeSpawn('/bin/bash -c "valet --version && valet status"');
37+
if (res[3] == 0) return Bytes.toString(res[1]).split('\n').filter(item => !!item);
38+
return false;
39+
}
40+
41+
function valetRestart() {
42+
shellSpawn('valet restart');
43+
}
44+
45+
function valetStop() {
46+
shellSpawn('valet stop');
47+
}

0 commit comments

Comments
 (0)