@@ -20,6 +20,7 @@ import (
20
20
"flag"
21
21
"fmt"
22
22
"os"
23
+ "os/exec"
23
24
24
25
"github.com/Juniper/junos-terraform/Internal/cfg"
25
26
"github.com/Juniper/junos-terraform/Internal/processYang"
@@ -34,6 +35,35 @@ func check(e error) {
34
35
}
35
36
}
36
37
38
+ // Check if running from venv
39
+ func check_venv_exists () {
40
+ app := "python3"
41
+ script := "checkVenv.py"
42
+ cmd := exec .Command (app , script )
43
+ stdout , err := cmd .Output ()
44
+
45
+ if err != nil {
46
+ fmt .Println (err .Error ())
47
+ panic (err )
48
+ }
49
+ if string (stdout ) == "false\n " {
50
+ fmt .Println ("ERROR: Please run this in a python3 virtual environment.\n " )
51
+ os .Exit (1 )
52
+ }
53
+ }
54
+
55
+ func check_pyang_installed () {
56
+ app := "pyang"
57
+ ver := "-v"
58
+ cmd := exec .Command (app , ver )
59
+ _ , err := cmd .Output ()
60
+
61
+ if err != nil {
62
+ fmt .Println ("ERROR: Please install pyang in the virtual environment.\n " )
63
+ os .Exit (1 )
64
+ }
65
+ }
66
+
37
67
func PrintLogo () {
38
68
const jtafLogo = `
39
69
___ _____ ___ ______
@@ -79,6 +109,8 @@ func main() {
79
109
80
110
PrintLogo ()
81
111
112
+ check_venv_exists ()
113
+ check_pyang_installed ()
82
114
check (processYang .CreateYinFileAndXpath (jcfg ))
83
115
} else if * flagYang != "" || * flagFileType != "" {
84
116
// If config file path is not present then check for individual elements.
@@ -87,6 +119,8 @@ func main() {
87
119
88
120
PrintLogo ()
89
121
122
+ check_venv_exists ()
123
+ check_pyang_installed ()
90
124
check (processYang .CreateYinFileAndXpath (jcfg ))
91
125
} else {
92
126
fmt .Println ("One or more mandatory inputs are missing, exiting..." )
0 commit comments