Initial commit
This commit is contained in:
		
							
								
								
									
										20
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| # dig | ||||
|  | ||||
| Dig is a simple package manager for Ground. At this point in time it is quite basic. | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| You'll need to manually install Ground, and the "request", "file", and "exec" libraries yourself. This will be automated in future. | ||||
|  | ||||
| Once that is done, you can install the dig package manager wherever you need it. | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| `digpkg install pkgname`: Installs the package specified to /usr/lib/ground. Requires root permissions. | ||||
|  | ||||
| `digpkg help`: Shows help. | ||||
|  | ||||
| ## Package list | ||||
|  | ||||
| Go to https://ground.chookspace.com/pkgs to see the list. If you've made a Ground library and would like it packaged, please send me an email (max at chookspace dot com). | ||||
|  | ||||
							
								
								
									
										79
									
								
								digpkg
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								digpkg
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| #!/usr/bin/env ground | ||||
|  | ||||
| # dig package manager | ||||
| # this is a simple package manager for the Ground programming language | ||||
|  | ||||
| extern "request" | ||||
| extern "file" | ||||
| extern "exec" | ||||
|  | ||||
| set &rootURL "https://ground.chookspace.com/pkgs/" | ||||
|  | ||||
| getlistsize *args &size | ||||
| greater $size 0 &cond | ||||
| if $cond %checkArgs | ||||
|  | ||||
| stdlnout "Dig package manager" | ||||
| stdlnout "Type 'dig install pkgname' to install a package or 'dig help' for more information" | ||||
| end 1 | ||||
|  | ||||
| @checkArgs | ||||
|  | ||||
| getlistat *args 0 &instruction | ||||
|  | ||||
| equal $instruction "install" &cond | ||||
| if $cond %install | ||||
|  | ||||
| equal $instruction "help" &cond | ||||
| if $cond %help | ||||
|  | ||||
| @install | ||||
| greater $size 1 &cond | ||||
| if $cond %installcontinue | ||||
| stdlnout "Usage: dig install pkgname" | ||||
| end 1 | ||||
|  | ||||
| @installcontinue | ||||
|  | ||||
| # Download the package | ||||
| getlistat *args 1 &pkgname | ||||
| stdout "Downloading " | ||||
| stdlnout $pkgname | ||||
|  | ||||
| add $pkgname ".tar" &pkgfile | ||||
| add $rootURL $pkgfile &url | ||||
| add "/tmp/" $pkgfile &tmpstorage | ||||
|  | ||||
| pusharg $url | ||||
| pusharg $tmpstorage | ||||
| call !saveContents &status | ||||
|  | ||||
| if $status %downloadSuccess | ||||
| stdlnout "Download not successful" | ||||
| end 1 | ||||
|  | ||||
| @downloadSuccess | ||||
|  | ||||
| # Extract using tar on the system | ||||
| stdout "Extrating " | ||||
| stdlnout $pkgname | ||||
| add "tar -xf " $tmpstorage &cmd | ||||
| add $cmd " -C /usr/lib/ground" &cmd | ||||
|  | ||||
| pusharg $cmd | ||||
| call !exec &status | ||||
| equal 0 $status &cond | ||||
|  | ||||
| if $cond %extractSuccess | ||||
| stdlnout "Extraction not successful" | ||||
| end 1 | ||||
|  | ||||
| @extractSuccess | ||||
|  | ||||
| # Report success to the user | ||||
| stdlnout "Success!" | ||||
| end 0 | ||||
|  | ||||
| @help | ||||
| stdlnout "" | ||||
| end 0 | ||||
		Reference in New Issue
	
	Block a user