mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	On nix platforms, patch jpm with path information.
This means we no longer need to guess paths after install. Custom directory layouts can now be better supported at install time without need for environment variables.
This commit is contained in:
		
							
								
								
									
										33
									
								
								tools/patch-jpm.janet
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tools/patch-jpm.janet
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| # Patch jpm to have the correct paths for the current install. | ||||
| # usage: janet patch-jpm.janet output --libdir=/usr/local/lib/x64-linux/ --binpath | ||||
|  | ||||
| (def- argpeg | ||||
|   (peg/compile | ||||
|     '(* "--" '(to "=") "=" '(any 1)))) | ||||
|  | ||||
| (def- args (tuple/slice (dyn :args) 3)) | ||||
| (def- len (length args)) | ||||
| (var i :private 0) | ||||
|  | ||||
| (def install-paths @{}) | ||||
|  | ||||
| # Get flags | ||||
| (each a args | ||||
|   (if-let [m (peg/match argpeg a)] | ||||
|     (let [[key value] m] | ||||
|       (put install-paths (keyword key) value)))) | ||||
|  | ||||
| (def- replace-peg | ||||
|   (peg/compile | ||||
|     ~(% (* '(to "###START###") | ||||
|            (constant ,(string/format "# Inserted by tools/patch-jpm.janet\n(def install-paths %j)" install-paths)) | ||||
|            (thru "###END###") | ||||
|            '(any 1))))) | ||||
|  | ||||
| (def source (slurp ((dyn :args) 1))) | ||||
| (def newsource (0 (peg/match replace-peg source))) | ||||
|  | ||||
| (spit ((dyn :args) 2) newsource) | ||||
|  | ||||
| (unless (= :windows (os/which)) | ||||
|   (os/shell (string `chmod +x "` ((dyn :args) 2) `"`))) | ||||
		Reference in New Issue
	
	Block a user
	 Calvin Rose
					Calvin Rose